Interfejs API dynamicznego wstawiania reklam w strumieniach VOD

Interfejs Google DAI API pozwala wdrażać strumienie z włączoną usługą Google DAI w różnych środowiskach w przypadku których implementacja pakietu IMA SDK nie jest obsługiwana. Zalecamy użycie parametru IMA na platformach, na których obsługiwany jest ten pakiet.

Zalecamy korzystanie z interfejsu DAI API na tych platformach:

  • Telewizor smart TV firmy Samsung (Tizen)
  • LG TV
  • HbbTV
  • Xbox (aplikacje w języku JavaScript)
  • KaiOS

Interfejs API obsługuje podstawowe funkcje zapewniane przez pakiet IMA DAI SDK. Konkretne masz pytania dotyczące zgodności lub obsługiwanych funkcji, skontaktuj się ze swoim menedżera konta.

Wdrażanie interfejsu DAI API w strumieniach VOD

Interfejs DAI API obsługuje strumienie VOD z użyciem protokołów HLS i DASH. Czynności opisane w tym przewodniku mają zastosowanie do obu protokołów.

Aby zintegrować ten interfejs API z aplikacją do obsługi strumieni VOD, następujące kroki:

  1. Wyślij żądanie strumienia, wykonując wywołanie POST do punktu końcowego strumienia:

    Przykładowa treść żą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 kodu JSON. treść odpowiedzi.

  2. Przeanalizuj odpowiedź JSON i zapisz te wartości:

    • stream_id
    • stream_manifest
    • media_verification_url
    • ad_breaks
  3. Aby przeprowadzić weryfikację multimediów, nasłuchuj zdarzeń ID3:

    1. Zdarzenia multimediów zapisuj w kolejce, zapisując każdy identyfikator multimediów wraz z ich sygnatura czasowa (jeśli wyświetli się przez odtwarzacz);
    2. Za każdym razem, gdy informacje są przekazywane przez odtwarzacz lub w ustalonej częstotliwości (zalecane 500 ms), sprawdź kolejkę zdarzeń multimediów pod kątem ostatnio odtwarzanych zdarzeń przez porównanie sygnatur czasowych zdarzeń z suwakiem odtwarzania.
    3. W przypadku zdarzeń związanych z multimediami, co do których masz pewność, że zostały odtworzone, możesz śledzić odtwarzanie według dodając identyfikator mediów do punktu końcowego weryfikacji multimediów Żądanie GET.

    Przykładowa treść żą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ć na stronie Aktywność w strumieniu Monitorowanie.

  4. Opcjonalnie: użyj danych ad_breaks ze strumienia, aby utworzyć odpowiedź jakie typy zdarzeń zostały wywołane.

  5. Usuń zdarzenie multimedialne z kolejki.

Ograniczenia

W przypadku korzystania z interfejsu API w komponentach WebView mają następujące ograniczenia do kierowania:

  • UserAgent: parametr klienta użytkownika jest przekazywany jako wartość specyficzna dla przeglądarki. a nie na platformie bazowej.
  • rdid idtype, is_lat: identyfikator urządzenia to nie został prawidłowo zaliczony, co ogranicza następujące funkcje:
    • Ograniczenie liczby wyświetleń
    • Sekwencyjna rotacja reklam
    • Segmentacja i kierowanie odbiorców

Sprawdzone metody

Mapowanie tagów ID3 do odpowiedniego typu zdarzenia jest uciążliwe w przypadku filmów na żądanie. Użyj zwróciło informacje ad_breaks w pliku JSON, aby bezpośrednio wyszukać zdarzenie, na przykład niż w przypadku transmisji na żywo.

Dodatkowe materiały