Interfejs Dynamic Ad Insertion API umożliwia żądanie i śledzenie strumieni wideo na żądanie (VOD) z dynamicznym wstawianiem reklam. Obsługiwane są strumienie HLS i DASH.
Usługa: dai.google.com
Ścieżka metody stream jest względna do https://dai.google.com
Metoda: strumień
| Metody | |
|---|---|
stream | 
    
      POST /ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream
      Tworzy strumień HLS DAI dla danego źródła treści i identyfikatora filmu. 
 Tworzy strumień DASH DAI dla danego źródła treści i identyfikatora filmu.  | 
Żądanie HTTP
POST https://dai.google.com/ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream
POST https://dai.google.com/ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream
Nagłówek żądania
| Parametry | |
|---|---|
api‑key | 
    
      stringKlucz interfejsu API podany podczas tworzenia strumienia musi być prawidłowy w przypadku sieci wydawcy. Zamiast podawać go w treści żądania, możesz przekazać klucz interfejsu API w nagłówku HTTP Authorization w takim formacie: Authorization: DCLKDAI key="<api-key>"  | 
  
Parametry ścieżki
| Parametry | |
|---|---|
content-source | 
    
      stringIdentyfikator CMS strumienia.  | 
video-id | 
    
      stringIdentyfikator filmu strumienia.  | 
Treść żądania
Treść żądania ma typ application/x-www-form-urlencoded i zawiera te parametry:
| Parametry | ||
|---|---|---|
dai-ssb | 
    Opcjonalny | Ustaw na   | 
  
| Parametry kierowania DFP | Opcjonalny | Dodatkowe parametry kierowania. | 
| Zastępowanie parametrów strumienia | Opcjonalny | Zastępowanie domyślnych wartości parametru tworzenia strumienia. | 
| Uwierzytelnianie HMAC | Opcjonalny | Uwierzytelnianie za pomocą tokena opartego na HMAC. | 
Treść odpowiedzi
Jeśli operacja się powiedzie, treść odpowiedzi będzie zawierać nowy obiekt Stream. W przypadku strumieni z beaconami po stronie serwera pole Stream zawiera tylko pola stream_id i stream_manifest.
Open Measurement
Pole Verifications zawiera informacje o weryfikacji Open Measurement w przypadku strumieni danych, które nie korzystają z beaconów po stronie serwera.
Verifications zawiera co najmniej 1 element Verification, który zawiera listę zasobów
i metadanych, których potrzebujesz do weryfikacji odtwarzania kreacji za pomocą kodu pomiarowego innej firmy.
Obsługiwana jest tylko wartość JavaScriptResource. Więcej informacji znajdziesz w IAB Tech Lab i specyfikacji VAST 4.1.
Metoda: weryfikacja mediów
Gdy podczas odtwarzania pojawi się identyfikator mediów reklamy, natychmiast wyślij żądanie za pomocą media_verification_url z urządzenia końcowego stream. media_verification_url to ścieżka bezwzględna.
W przypadku strumieniowania z beaconami po stronie serwera, gdzie weryfikację multimediów inicjuje serwer, nie trzeba wysyłać próśb o weryfikację multimediów.
Żądania wysyłane do punktu końcowego media verification są idempotentne.
| Metody | |
|---|---|
media verification | 
    
      GET {media_verification_url}/{ad_media_id}
      powiadamia interfejs API o zdarzeniu weryfikacji mediów;  | 
Żądanie HTTP
GET {media-verification-url}/{ad-media-id}
Treść odpowiedzi
media verificationzwraca te odpowiedzi:
HTTP/1.1 204 No Contentjeśli weryfikacja mediów się powiedzie i wszystkie pingi zostaną wysłane.HTTP/1.1 404 Not Found, jeśli nie można zweryfikować mediów z powodu nieprawidłowego formatowania lub wygaśnięcia adresu URL.HTTP/1.1 404 Not Found, jeśli poprzednia prośba o weryfikację tego dokumentu została zrealizowana;HTTP/1.1 409 Conflictjeśli w tym samym czasie jest już wysyłana inna prośba.
Identyfikatory mediów reklamowych (HLS)
Identyfikatory multimediów reklamowych zostaną zakodowane w metadanych HLS z użyciem klucza TXXX zarezerwowanego dla klatek „zdefiniowanych przez użytkownika informacji tekstowych”. Zawartość ramki będzie niezaszyfrowana i zawsze rozpocznie się od tekstu "google_".
Cały tekst w ramce powinien zostać dołączony do parametru media_verification_url w przypadku każdego żądania weryfikacji reklamy.
Identyfikatory mediów reklamy (DASH)
Identyfikatory multimediów reklamy zostaną wstawione do pliku manifestu za pomocą elementu EventStream w DASH.
Każdy element EventStream będzie mieć identyfikator URI schematu o postaci urn:google:dai:2018.
Będą one zawierać zdarzenia z atrybutem messageData, w którym podany jest identyfikator reklamy zawierający ciąg znaków zaczynający się od “google_”.  Cała zawartość atrybutu messageData powinna zostać dołączona do parametru media_verification_url w przypadku każdego żądania weryfikacji reklamy.
Dane odpowiedzi
Strumień
Strumień służy do renderowania listy wszystkich zasobów nowo utworzonego strumienia w formacie JSON .| Zapis JSON | 
|---|
{
  "stream_id": string,
  "total_duration": number,
  "content_duration": number,
  "valid_for": string,
  "valid_until": string,
  "subtitles": [object(Subtitle)],
  "hls_master_playlist": string,
  "stream_manifest": string,
  "media_verification_url": string,
  "apple_tv": object(AppleTV),
  "ad_breaks": [object(AdBreak)],
} | 
| Pola | |
|---|---|
    stream_id | 
    stringIdentyfikator strumienia.  | 
    total_duration | 
    numberCzas trwania strumienia w sekundach.  | 
    content_duration | 
    numberCzas trwania treści bez reklam (w sekundach).  | 
    valid_for | 
    stringCzas trwania strumienia jest prawidłowy w formacie „00h00m00s”.  | 
    valid_until | 
    stringData ważności strumienia w formacie RFC 3339.  | 
    subtitles | 
    [object(Subtitle)]Lista napisów. Jeśli jest puste, pomiń. Tylko HLS.  | 
    hls_master_playlist | 
    string(WYCOFANE) URL listy odtwarzania głównej HLS. Użyj pliku stream_manifest. Tylko HLS.  | 
    stream_manifest | 
    stringPlik manifestu strumienia. Odpowiada głównej playlistzie w HLS i MPD w DASH. To jedyne pole oprócz pola „stream_id”, które jest obecne w odpowiedzi podczas tworzenia strumienia z beaconem po stronie serwera.  | 
    media_verification_url | 
    stringURL weryfikacji mediów  | 
    apple_tv | 
    object(AppleTV)Opcjonalne informacje dotyczące urządzeń Apple TV. Tylko HLS.  | 
    ad_breaks | 
    [object(AdBreak)]Lista przerw na reklamę. Jeśli jest puste, pomiń.  | 
AppleTV
AppleTV zawiera informacje dotyczące urządzeń Apple TV.| Zapis JSON | 
|---|
{
  "interstitials_url": string,
} | 
| Pola | |
|---|---|
    interstitials_url | 
    stringAdres URL kreacji interstii.  | 
AdBreak
AdBreak opisuje pojedynczą przerwę na reklamę w strumieniu. Zawiera on pozycję, czas trwania, typ (w trakcie, przed lub po) oraz listę reklam.| Zapis JSON | 
|---|
{ "type": string, "start": number, "duration": number, "ads": [object(Ad)], }  | 
| Pola | |
|---|---|
    type | 
    stringDozwolone typy przerw to: w środku, przed i po.  | 
    start | 
    numberPozycja w strumieniu, w której zaczyna się przerwa (w sekundach).  | 
    duration | 
    numberCzas trwania przerwy na reklamę (w sekundach).  | 
    ads | 
    [object(Ad)]Lista reklam. Jeśli jest puste, pomiń.  | 
Reklama
Reklama – opis reklamy w strumieniu. Zawiera on pozycję reklamy w przerwie, czas trwania reklamy i niektóre opcjonalne metadane.| Zapis JSON | 
|---|
{
  "seq": number,
  "start": number,
  "duration": number,
  "title": string,
  "description": string,
  "advertiser": string,
  "ad_system": string,
  "ad_id": string,
  "creative_id": string,
  "creative_ad_id": string,
  "deal_id": string,
  "clickthrough_url": string,
  "icons": [object(Icon)],
  "wrappers": [object(Wrapper)],
  "events": [object(Event)],
  "verifications": [object(Verification)],
  "universal_ad_id": object(UniversalAdID),
  "companions": [object(Companion)],
  "interactive_file": object(InteractiveFile),
  "skip_metadata": object(SkipMetadata),
  "extensions": [],
} | 
| Pola | |
|---|---|
    seq | 
    numberPozycja reklamy w przerwie.  | 
    start | 
    numberPozycja w strumieniu, w której rozpoczyna się reklama (w sekundach).  | 
    duration | 
    numberCzas trwania reklamy w sekundach.  | 
    title | 
    stringOpcjonalny tytuł reklamy.  | 
    description | 
    stringOpcjonalny opis reklamy.  | 
    advertiser | 
    stringOpcjonalny identyfikator reklamodawcy.  | 
    ad_system | 
    stringOpcjonalny system reklamowy.  | 
    ad_id | 
    stringOpcjonalny identyfikator reklamy.  | 
    creative_id | 
    stringIdentyfikator kreacji (opcjonalnie).  | 
    creative_ad_id | 
    stringOpcjonalny identyfikator reklamy powiązanej z kreacją.  | 
    deal_id | 
    stringOpcjonalny identyfikator umowy.  | 
    clickthrough_url | 
    stringOpcjonalny docelowy URL  | 
    icons | 
    [object(Icon)]Lista ikon, pomijana, jeśli jest pusta.  | 
    wrappers | 
    [object(Wrapper)]Lista Wrappers. Jeśli jest puste, pomiń.  | 
    events | 
    [object(Event)]Lista zdarzeń w reklamie  | 
    verifications | 
    [object(Verification)]Opcjonalne wpisy weryfikacji Open Measurement, które zawierają listę zasobów i metadanych wymaganych do wykonania kodu pomiarowego firmy zewnętrznej w celu weryfikacji odtwarzania kreacji.  | 
    universal_ad_id | 
    object(UniversalAdID)Opcjonalny uniwersalny identyfikator reklamy.  | 
    companions | 
    [object(Companion)]Opcjonalne kreacje towarzyszące, które mogą być wyświetlane razem z tą reklamą.  | 
    interactive_file | 
    object(InteractiveFile)Opcjonalna interaktywna kreacja (SIMID), która powinna być wyświetlana podczas odtwarzania reklamy.  | 
    skip_metadata | 
    object(SkipMetadata)Opcjonalne metadane w przypadku reklam możliwych do pominięcia. Jeśli jest ustawiona, oznacza to, że reklama jest możliwa do pominięcia i zawiera instrukcje dotyczące obsługi interfejsu pominięcia oraz zdarzenia śledzenia.  | 
    extensions | 
    stringOpcjonalna lista wszystkich węzłów <Extension> w pliku VAST.  | 
Zdarzenie
Zdarzenie zawiera typ zdarzenia i czas jego wyświetlania.| Zapis JSON | 
|---|
{ "time": number, "type": string, }  | 
| Pola | |
|---|---|
    time | 
    numberCzas prezentacji tego wydarzenia.  | 
    type | 
    stringTyp tego zdarzenia.  | 
Podtytuł
Napisy – opisują ścieżkę z napisami do filmu. Przechowuje ona 2 formaty napisów: TTML i WebVTT. Atrybut TTMLPath zawiera adres URL pliku TTML, a atrybut WebVTTPath zawiera adres URL pliku dodatkowego WebVTT.| Zapis JSON | 
|---|
{
  "language": string,
  "language_name": string,
  "ttml": string,
  "webvtt": string,
} | 
| Pola | |
|---|---|
    language | 
    stringKod języka, np. 'pl' lub 'en'.  | 
    language_name | 
    stringNazwa opisowa języka. pozwala odróżnić konkretny zestaw napisów, jeśli w przypadku tego samego języka istnieje ich więcej;  | 
    ttml | 
    stringOpcjonalny URL do pliku pomocniczego TTML.  | 
    webvtt | 
    stringOpcjonalny URL do pliku pomocniczego WebVTT.  | 
SkipMetadata
SkipMetadata zawiera informacje potrzebne klientom do obsługi zdarzeń pominięcia w przypadku reklam możliwych do pominięcia.| Zapis JSON | 
|---|
{
  "offset": number,
  "tracking_url": string,
} | 
| Pola | |
|---|---|
    offset | 
    numberOpóźnienie wskazuje czas w sekundach, przez jaki odtwarzacz powinien czekać na renderowanie przycisku pomijania. Pomijany, jeśli nie został podany w pliku VAST.  | 
    tracking_url | 
    stringTrackingURL zawiera adres URL, pod który należy wysłać ping w przypadku zdarzenia pominięcia.  | 
Ikona
Ikona zawiera informacje o ikonie VAST.| Zapis JSON | 
|---|
{ "click_data": object(ClickData), "creative_type": string, "click_fallback_images": [object(FallbackImage)], "height": int32, "width": int32, "resource": string, "type": string, "x_position": string, "y_position": string, "program": string, "alt_text": string, }  | 
| Pola | |
|---|---|
    click_data | 
    object(ClickData) | 
    creative_type | 
    string | 
    click_fallback_images | 
    [object(FallbackImage)] | 
    height | 
    int32 | 
    width | 
    int32 | 
    resource | 
    string | 
    type | 
    string | 
    x_position | 
    string | 
    y_position | 
    string | 
    program | 
    string | 
    alt_text | 
    string | 
ClickData
ClickData zawiera informacje o kliknięciu ikony.| Zapis JSON | 
|---|
{
  "url": string,
} | 
| Pola | |
|---|---|
    url | 
    string | 
FallbackImage
FallbackImage zawiera informacje o zastępczym obrazie VAST.| Zapis JSON | 
|---|
{ "creative_type": string, "height": int32, "width": int32, "resource": string, "alt_text": string, }  | 
| Pola | |
|---|---|
    creative_type | 
    string | 
    height | 
    int32 | 
    width | 
    int32 | 
    resource | 
    string | 
    alt_text | 
    string | 
Wrapper
Element wrapper zawiera informacje o reklamie typu wrapper. Nie zawiera identyfikatora oferty, jeśli nie istnieje.| Zapis JSON | 
|---|
{
  "system": string,
  "ad_id": string,
  "creative_id": string,
  "creative_ad_id": string,
  "deal_id": string,
} | 
| Pola | |
|---|---|
    system | 
    stringIdentyfikator systemu reklamowego.  | 
    ad_id | 
    stringIdentyfikator reklamy używany w reklamie opakowującej.  | 
    creative_id | 
    stringIdentyfikator kreacji użytej w reklamie w ramce.  | 
    creative_ad_id | 
    stringIdentyfikator reklamy kreacji użytej w reklamie z kodem towarzyszącym  | 
    deal_id | 
    stringOpcjonalny identyfikator umowy dla reklamy opakowującej.  | 
Weryfikacja
Weryfikacja zawiera informacje dotyczące Open Measurement, które ułatwiają pomiar widoczności i weryfikację przez zewnętrznych dostawców. Obecnie obsługiwane są tylko zasoby JavaScript. Informacje znajdziesz na stronie https://iabtechlab.com/standards/open-measurement-sdk/| Zapis JSON | 
|---|
{
  "vendor": string,
  "java_script_resources": [object(JavaScriptResource)],
  "tracking_events": [object(TrackingEvent)],
  "parameters": string,
} | 
| Pola | |
|---|---|
    vendor | 
    stringDostawca systemu weryfikacji.  | 
    java_script_resources | 
    [object(JavaScriptResource)]Lista zasobów JavaScript do weryfikacji.  | 
    tracking_events | 
    [object(TrackingEvent)]Lista zdarzeń śledzenia służących do weryfikacji  | 
    parameters | 
    stringNieprzezroczysty ciąg znaków przekazany do kodu weryfikacyjnego bootstrapa.  | 
JavaScriptResource
JavaScriptResource zawiera informacje do weryfikacji za pomocą kodu JavaScript.| Zapis JSON | 
|---|
{
  "script_url": string,
  "api_framework": string,
  "browser_optional": boolean,
} | 
| Pola | |
|---|---|
    script_url | 
    stringIdentyfikator URI ładunku JavaScript.  | 
    api_framework | 
    stringAPIFramework to nazwa platformy wideo, która wykonuje kod weryfikacyjny.  | 
    browser_optional | 
    booleanCzy skrypt można uruchomić poza przeglądarką.  | 
TrackingEvent
TrackingEvent zawiera adresy URL, które w określonych sytuacjach powinny być pingowane przez klienta.| Zapis JSON | 
|---|
{
  "event": string,
  "uri": string,
} | 
| Pola | |
|---|---|
    event | 
    stringTyp zdarzenia śledzenia.  | 
    uri | 
    stringZdarzenie śledzenia, które ma być pingowane.  | 
UniversalAdID
UniversalAdID służy do podawania unikalnego identyfikatora kreacji, który jest utrzymywany w różnych systemach reklamowych.| Zapis JSON | 
|---|
{ "id_value": string, "id_registry": string, }  | 
| Pola | |
|---|---|
    id_value | 
    stringUniwersalny identyfikator reklamy wybranej kreacji.  | 
    id_registry | 
    stringCiąg znaków służący do identyfikacji adresu URL witryny rejestru, w której katalogowany jest uniwersalny identyfikator reklamy wybranej kreacji.  | 
Reklama towarzysząca
Element towarzyszący zawiera informacje o reklamach towarzyszących, które mogą wyświetlać się razem z reklamą.| Zapis JSON | 
|---|
{ "click_data": object(ClickData), "creative_type": string, "height": int32, "width": int32, "resource": string, "type": string, "ad_slot_id": string, "api_framework": string, "tracking_events": [object(TrackingEvent)], }  | 
| Pola | |
|---|---|
    click_data | 
    object(ClickData)Dane o kliknięciach tej kreacji towarzyszącej.  | 
    creative_type | 
    stringAtrybut CreativeType w węźle <StaticResource> w pliku VAST, jeśli jest to kreacja towarzysząca typu static.  | 
    height | 
    int32Wysokość tego elementu w pikselach.  | 
    width | 
    int32Szerokość tego elementu w pikselach.  | 
    resource | 
    stringW przypadku elementów towarzyszących statycznych i iframe będzie to adres URL, który ma być wczytywany i wyświetlany. W przypadku elementów towarzyszących w formacie HTML będzie to fragment kodu HTML, który powinien być wyświetlany jako element towarzyszący.  | 
    type | 
    stringTyp tego elementu towarzyszącego. Może być statyczny, iframe lub HTML.  | 
    ad_slot_id | 
    stringIdentyfikator slotu dla tego urządzenia towarzyszącego.  | 
    api_framework | 
    stringPlatforma interfejsu API dla tego urządzenia.  | 
    tracking_events | 
    [object(TrackingEvent)]Lista zdarzeń śledzenia dla tego urządzenia towarzyszącego.  | 
InteractiveFile
Plik InteractiveFile zawiera informacje o interaktywnych kreacjach (np. identyfikator SIMID), które powinny być wyświetlane podczas odtwarzania reklamy.| Zapis JSON | 
|---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, }  | 
| Pola | |
|---|---|
    resource | 
    stringAdres URL interaktywnej kreacji.  | 
    type | 
    stringTyp MIME pliku podawanego jako zasób.  | 
    variable_duration | 
    booleanCzy ta kreacja może poprosić o przedłużenie czasu trwania.  | 
    ad_parameters | 
    stringWartość węzła <AdParameters> w pliku VAST.  |