Interfejs Google DAI API umożliwia implementowanie strumieni z funkcją DAI w środowiskach, w których implementacja pakietu IMA SDK nie jest obsługiwana. Zalecamy dalsze korzystanie z IMA SDK na platformach, które obsługują pakiet IMA SDK.
Interfejsu DAI API zalecamy na tych platformach:
- Samsung Smart TV (Tizen)
- LG TV
- HbbTV
- Xbox (aplikacje JavaScript)
- KaiOS
Obsługuje on podstawowe funkcje pakietu IMA DAI SDK. Jeśli masz konkretne pytania na temat zgodności lub obsługiwanych funkcji, skontaktuj się ze swoim opiekunem klienta w Google.
Implementowanie interfejsu DAI API w strumieniach VOD
Interfejs DAI API obsługuje strumienie VOD z użyciem protokołów HLS i DASH. Kroki opisane w tym przewodniku dotyczą obu protokołów.
Aby zintegrować interfejs API z aplikacją do obsługi strumieni VOD, wykonaj te czynności:
Żądanie strumienia, wywołując metodę POST do punktu końcowego strumienia:
Przykładowy tekst żądania:
https://dai.google.com/ondemand/v1/dash/content/2559737/vid/tos-dash/stream { key1 : "value1", stream_parameter1 : "value2" }
Przykładowa treść odpowiedzi:
{ "stream_id":"d32f8920-612a-4d46-8bc7-d73fd6c17c85", "total_duration":636.458, "content_duration":596.458, "valid_for":"8h0m0s", "valid_until":"2020-06-04T20:39:41.274707306-07:00", "stream_manifest":"https://dai.google.com/ondemand/dash/content/2559737/vid/tos-dash/ATL/streams/d32f8920-612a-4d46-8bc7-d73fd6c17c85/manifest.mpd", "media_verification_url":"https://dai.google.com/view/p/service/vod/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/loc/ATL/network/124319096/content/2559737/vid/tos-dash/media/", "ad_breaks":[ { "type":"pre", "start":0, "duration":10, "ads":[ { "seq":1, "duration":10, "title":"External NCA1C1L1 Preroll", "description":"External NCA1C1L1 Preroll ad", "clickthrough_url":"https://dai.google.com/ondemand/v1/dash/content/2474148/vid/bbb-clear/location/ATL/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/videoclick/5489259204425938365", "events":[ { "time":0.1, "type":"start" }, { "time":2.5, "type":"firstquartile" }, { "time":4.75, "type":"midpoint" }, { "time":7.5, "type":"thirdquartile" }, { "time":9, "type":"complete" } ] } ] }, { "type":"mid", "start":45, "duration":10, "ads":[ {.... } ] } ] }, { "type":"post", "start":626.458, "duration":10, "ads":[...] } ] }
Odpowiedź na błąd
W przypadku błędów zwracane są standardowe kody błędów HTTP bez treści odpowiedzi JSON.
Przeanalizuj odpowiedź JSON i zapisz te wartości:
stream_id
stream_manifest
media_verification_url
ad_breaks
Aby przeprowadzić weryfikację multimediów, nasłuchuj zdarzeń identyfikatora 3:
- Zdarzenia multimedialne możesz zapisywać w kolejce, zapisując każdy identyfikator multimediów wraz z sygnaturą czasową (jeśli zostaną wyświetlone przez odtwarzacz).
- Przy każdej aktualizacji z odtwarzacza lub z określoną częstotliwością (zalecane 500 ms) sprawdź kolejkę zdarzeń multimedialnych pod kątem ostatnio odtwarzanych zdarzeń, porównując sygnatury czasowe zdarzeń z suwakiem odtwarzania.
- W przypadku zdarzeń związanych z multimediami, które zostały potwierdzone, możesz śledzić odtwarzanie, dołączając identyfikator multimediów do punktu końcowego weryfikacji multimediów i wysyłając żądanie GET.
Przykładowy tekst żądania:
https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/
Przykładowe odpowiedzi:
Accepted for asynchronous verification - HTTP/1.1 202 Accepted Successful empty response - HTTP/1.1 204 No Content Media verification not found - HTTP/1.1 404 Not Found Media verification sent by someone else - HTTP/1.1 409 Conflict
Zdarzenia śledzenia możesz zweryfikować w Monitorze aktywności w strumieniu.
Opcjonalnie: użyj danych
ad_breaks
ze strumienia podczas tworzenia odpowiedzi, aby sprawdzić, jakiego typu zdarzenie zostało wywołane.Usuń zdarzenie multimediów z kolejki.
Ograniczenia
Jeśli używasz interfejsu API w komponencie WebView, kierowanie podlega tym ograniczeniom:
- Klient użytkownika: parametr klienta użytkownika jest przekazywany jako wartość specyficzna dla przeglądarki, a nie jako bazowa platforma.
rdid
,idtype
,is_lat
: identyfikator urządzenia nie jest prawidłowo przekazywany, co ogranicza te funkcje:- ograniczenia liczby wyświetleń,
- sekwencyjna rotacja reklam;
- Segmentacja odbiorców i kierowanie reklam
Sprawdzone metody
Mapowanie tagów ID3 do odpowiedniego typu zdarzenia w przypadku VOD jest żmudne. Użyj zwróconych informacji ad_breaks
w pliku JSON, aby bezpośrednio wyszukać wydarzenie, tak jak w przypadku treści na żywo.