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}/streamTworzy 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. |