Interfejs API dynamicznego wstawiania reklam umożliwia wysyłanie żądań i śledzenie strumieni wideo na żądanie (VOD) z dynamicznym wstawianiem reklam. Strumienie HLS i DASH są obsługiwane.
Usługa: dai.google.com
Ścieżka metody stream
jest względna wobec elementu https://dai.google.com
Metoda: stream
Metody | |
---|---|
stream |
POST /ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream
Tworzy strumień HLS z dynamicznym wstawianiem reklam dla danego źródła treści i identyfikatora filmu.
Tworzy strumień DAI w postaci strumienia DASH 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 |
string Klucz interfejsu API podany podczas tworzenia strumienia musi być prawidłowy w sieci wydawcy. Zamiast podawać go w treści żądania, klucz interfejsu API można przekazać w nagłówku autoryzacji HTTP w następującym formacie: Authorization: DCLKDAI key="<api-key>" |
Parametry ścieżki
Parametry | |
---|---|
content-source |
string Identyfikator CMS strumienia. |
video-id |
string Identyfikator wideo strumienia. |
Treść żądania
Treść żądania jest typu application/x-www-form-urlencoded
i zawiera te parametry:
Parametry | ||
---|---|---|
dai-ssb |
Opcjonalny | Ustaw wartość |
Parametry kierowania DFP | Opcjonalny | Dodatkowe parametry kierowania. |
Zastąp parametry strumienia | Opcjonalny | Zastąp domyślne wartości parametru tworzenia strumienia. |
Uwierzytelnianie HMAC | Opcjonalny | Uwierzytelnij się za pomocą tokena opartego na HMAC. |
Treść odpowiedzi
Jeśli operacja się uda, treść odpowiedzi będzie zawierała nowy element Stream
. W przypadku strumieni z sygnalizowaniem po stronie serwera ta wartość Stream
zawiera tylko pola stream_id
i stream_manifest
.
Open Measurement
Pole Verifications
zawiera informacje na temat weryfikacji Open Measurement w przypadku strumieni spoza serwera.
Element Verifications
zawiera co najmniej 1 element Verification
, który zawiera listę zasobów i metadanych potrzebnych do zweryfikowania odtwarzania kreacji za pomocą kodu pomiarowego firmy zewnętrznej.
Obsługiwana jest tylko wartość JavaScriptResource
. Więcej informacji znajdziesz w IAB Tech Lab i w specyfikacji VAST 4.1.
Metoda: weryfikacja mediów
Gdy podczas odtwarzania zobaczysz identyfikator multimediów reklamy, natychmiast wyślij żądanie, korzystając z metody media_verification_url
z punktu końcowego stream
. media_verification_url
jest ścieżką bezwzględną.
Żądania weryfikacji mediów nie są konieczne w przypadku strumieni sygnalizowania po stronie serwera, gdy serwer inicjuje weryfikację.
Żądania do punktu końcowego media verification
są idempotentne.
Metody | |
---|---|
media verification |
GET {media_verification_url}/{ad_media_id}
Informuje interfejs API o zdarzeniu weryfikacji multimediów. |
Żądanie HTTP
GET {media-verification-url}/{ad-media-id}
Treść odpowiedzi
media verification
zwraca te odpowiedzi:
HTTP/1.1 204 No Content
, jeśli weryfikacja multimediów się powiedzie, a wszystkie pingi zostaną wysłane.HTTP/1.1 404 Not Found
, jeśli żądanie nie może zweryfikować mediów z powodu nieprawidłowego formatowania adresu URL lub jego daty ważności.HTTP/1.1 404 Not Found
, jeśli poprzednia prośba o weryfikację dotyczącą tego dokumentu została zrealizowana.HTTP/1.1 409 Conflict
, jeśli inne żądanie wysyła już pingi w tym samym czasie.
Identyfikatory mediów reklam (HLS)
Identyfikatory multimediów reklam będą kodowane w metadanych czasowych HLS za pomocą klucza TXXX
, zarezerwowane dla ramek „informacji tekstowych zdefiniowanych przez użytkownika”. Zawartość ramki będzie niezaszyfrowana i zawsze będzie zaczynać się od tekstu "google_"
.
Cała zawartość ramki powinna być dołączana do parametru media_verification_url w przypadku każdego żądania weryfikacji reklam.
Identyfikatory mediów reklam (DASH)
Identyfikatory mediów reklam są wstawiane do pliku manifestu za pomocą elementu EventStream
DASH.
Każdy element EventStream
będzie miał identyfikator URI identyfikatora schematu o wartości urn:google:dai:2018
.
Będą one zawierać zdarzenia z atrybutem messageData
i identyfikatorem mediów reklamy zaczynającym się od “google_”
. Cała zawartość atrybutu messageData
powinna być dołączana do elementu media_verification_url w przypadku każdego żądania weryfikacji reklam.
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 |
string Identyfikator strumienia. |
total_duration |
number Czas trwania transmisji w sekundach. |
content_duration |
number Czas trwania treści bez reklam (w sekundach). |
valid_for |
string Czas trwania strumienia jest prawidłowy dla formatu „00h00m00s”. |
valid_until |
string Data ważności strumienia do dnia, w formacie RFC 3339. |
subtitles |
[object(Subtitle)] Lista napisów. Pomiń, jeśli pole jest puste. Tylko HLS. |
hls_master_playlist |
string (WYCOFANY) URL playlisty reklamy nadrzędnej HLS. Użyj parametru stream_manifest. Tylko HLS. |
stream_manifest |
string Plik manifestu strumienia. Odpowiada playliście reklamy nadrzędnej w HLS i MPD w DASH. Jest to jedyne pole oprócz „stream_id”, które znajduje się w odpowiedzi podczas tworzenia strumienia z sygnalizowaniem po stronie serwera. |
media_verification_url |
string URL do 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ę. Pomiń, jeśli pole jest puste. |
AppleTV
AppleTV zawiera informacje dotyczące urządzeń Apple TV.Zapis JSON |
---|
{ "interstitials_url": string, } |
Pola | |
---|---|
interstitials_url |
string Adres URL reklam pełnoekranowych. |
AdBreak
Przerwa na reklamę opisuje pojedynczą przerwę w strumieniu. Zawiera ona pozycję, czas trwania, typ (w trakcie/przed/po) oraz listę reklam.Zapis JSON |
---|
{ "type": string, "start": number, "duration": number, "ads": [object(Ad)], } |
Pola | |
---|---|
type |
string Prawidłowe typy przerw: w trakcie filmu, przed i po. |
start |
number Pozycja w strumieniu, w której rozpoczyna się przerwa (w sekundach). |
duration |
number Czas trwania przerwy na reklamę w sekundach. |
ads |
[object(Ad)] Lista reklam. Pomiń, jeśli pole jest puste. |
Reklama
Reklama opisuje reklamę w strumieniu. Zawiera on pozycję reklamy w przerwie, czas jej trwania i 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), } |
Pola | |
---|---|
seq |
number Pozycja reklamy w przerwie. |
start |
number Pozycja w strumieniu, na której reklama się uruchamia, (w sekundach). |
duration |
number Czas trwania reklamy w sekundach. |
title |
string Opcjonalny tytuł reklamy. |
description |
string Opcjonalny opis reklamy. |
advertiser |
string Opcjonalny identyfikator reklamodawcy. |
ad_system |
string Opcjonalny system reklamowy. |
ad_id |
string Opcjonalny identyfikator reklamy. |
creative_id |
string Opcjonalny identyfikator kreacji. |
creative_ad_id |
string Opcjonalny identyfikator reklamy kreacji. |
deal_id |
string Opcjonalny identyfikator umowy. |
clickthrough_url |
string Opcjonalny docelowy URL. |
icons |
[object(Icon)] Lista ikon, pomijana, jeśli jest pusta. |
wrappers |
[object(Wrapper)] Lista kodów towarzyszących Pomiń, jeśli pole jest puste. |
events |
[object(Event)] Lista zdarzeń występujących w reklamie. |
verifications |
[object(Verification)] Opcjonalne wpisy weryfikacyjne Open Measurement, które zawierają listę zasobów i metadanych wymaganych do wykonania zewnętrznego kodu pomiarowego w celu weryfikacji odtwarzania kreacji. |
universal_ad_id |
object(UniversalAdID) Opcjonalny uniwersalny identyfikator reklamy. |
companions |
[object(Companion)] Opcjonalne elementy towarzyszące, które mogą się wyświetlać razem z tą reklamą. |
interactive_file |
object(InteractiveFile) Opcjonalna kreacja interaktywna (SIMID), która powinna się wyświetlać podczas odtwarzania reklamy. |
skip_metadata |
object(SkipMetadata) Opcjonalne metadane reklam możliwych do pominięcia. Jeśli jest skonfigurowana, wskazuje, że reklama jest możliwą do pominięcia oraz zawiera instrukcje obsługi interfejsu pominięcia i zdarzenia śledzenia. |
Zdarzenie
Wydarzenie zawiera typ wydarzenia oraz czas jego prezentacji.Zapis JSON |
---|
{ "time": number, "type": string, } |
Pola | |
---|---|
time |
number Czas prezentacji tego wydarzenia. |
type |
string Typ tego wydarzenia. |
Podtytuł
Napisy opisują ścieżkę napisów dla strumienia wideo. Przechowuje 2 formaty napisów: TTML i WebVTT. Atrybut TTMLPath zawiera adres URL pliku pomocniczego TTML, a atrybut WebVTTPath zawiera adres URL podobny do pliku pomocniczego WebVTT.Zapis JSON |
---|
{ "language": string, "language_name": string, "ttml": string, "webvtt": string, } |
Pola | |
---|---|
language |
string Kod języka, np. „pl” lub „de”. |
language_name |
string Opisowa nazwa języka. Rozróżnia on konkretny zestaw napisów, jeśli dla tego samego języka istnieje wiele zestawów. |
ttml |
string Opcjonalny adres URL pliku pomocniczego TTML. |
webvtt |
string Opcjonalny adres URL pliku pomocniczego WebVTT. |
SkipMetadata
Parametr PomińMetadata dostarcza informacji potrzebnych klientom do obsługi zdarzeń pominięcia w reklamach możliwych do pominięcia.Zapis JSON |
---|
{ "offset": number, "tracking_url": string, } |
Pola | |
---|---|
offset |
number Przesunięcie wskazuje czas (w sekundach), przez jaki odtwarzacz powinien czekać na wyrenderowanie przycisku pominięcia. Parametr pomijany, jeśli nie został podany w szablonie VAST. |
tracking_url |
string TrackingURL zawiera adres URL, który powinien zostać wywołany pingiem 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
Obraz zastępczy zawiera informacje o obrazie zastępczym 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
Kod zawiera informacje o reklamie towarzyszącej. Nie zawiera identyfikatora umowy, jeśli nie istnieje.Zapis JSON |
---|
{ "system": string, "ad_id": string, "creative_id": string, "creative_ad_id": string, "deal_id": string, } |
Pola | |
---|---|
system |
string Identyfikator systemu reklamowego. |
ad_id |
string Identyfikator reklamy użyty na potrzeby reklamy z kodem. |
creative_id |
string Identyfikator kreacji używany na potrzeby reklamy towarzyszącej. |
creative_ad_id |
string Identyfikator reklamy z kreacją używaną na potrzeby reklamy z kodem. |
deal_id |
string Opcjonalny identyfikator umowy dla reklamy z kodem. |
Weryfikacja
Funkcja Weryfikacja zawiera informacje na potrzeby Open Measurement, które ułatwiają zewnętrznym pomiarom widoczność i weryfikację. Obecnie obsługiwane są tylko zasoby JavaScript. Więcej informacji: https://iabtechlab.com/standards/open-measurement-sdk/Zapis JSON |
---|
{ "vendor": string, "java_script_resources": [object(JavaScriptResource)], "tracking_events": [object(TrackingEvent)], "parameters": string, } |
Pola | |
---|---|
vendor |
string Dostawca weryfikacji. |
java_script_resources |
[object(JavaScriptResource)] Lista zasobów JavaScript do weryfikacji. |
tracking_events |
[object(TrackingEvent)] Lista zdarzeń śledzenia do weryfikacji. |
parameters |
string Nieprzejrzysty ciąg znaków przekazany do kodu weryfikacyjnego wczytywania. |
JavaScriptResource
JavaScriptResource zawiera informacje do weryfikacji za pomocą JavaScriptu.Zapis JSON |
---|
{ "script_url": string, "api_framework": string, "browser_optional": boolean, } |
Pola | |
---|---|
script_url |
string Identyfikator URI do ładunku JavaScript. |
api_framework |
string APIFramework to nazwa platformy wideo, w której jest wykorzystywany kod weryfikacyjny. |
browser_optional |
boolean Określa, czy ten skrypt może być uruchamiany poza przeglądarką. |
TrackingEvent
Tag TrackingEvent zawiera adresy URL, które w określonych sytuacjach powinny zostać wysłane przez klienta za pomocą polecenia ping.Zapis JSON |
---|
{ "event": string, "uri": string, } |
Pola | |
---|---|
event |
string Typ zdarzenia śledzenia. |
uri |
string Zdarzenie śledzenia do sprawdzenia. |
UniversalAdID
Unikalny identyfikator kreacji jest używany w różnych systemach reklamowych.Zapis JSON |
---|
{ "id_value": string, "id_registry": string, } |
Pola | |
---|---|
id_value |
string Uniwersalny identyfikator wybranej kreacji w reklamie |
id_registry |
string Ciąg znaków określający adres URL witryny rejestru, w której znajduje się uniwersalny identyfikator reklamy wybranej kreacji. |
Reklama towarzysząca
Zawiera informacje o reklamach towarzyszących, które mogą się wyświetlać 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 związane z tą reklamą towarzyszącą. |
creative_type |
string Atrybut CreativeType w węźle <StaticResource> w tagu VAST, jeśli jest to reklama towarzysząca typu statycznego. |
height |
int32 Wysokość w pikselach kreacji towarzyszącej. |
width |
int32 Szerokość reklamy towarzyszącej w pikselach. |
resource |
string W przypadku elementów towarzyszących w elementach statycznych i elementów iframe będzie to adres URL do wczytania i wyświetlenia. W przypadku elementów towarzyszących HTML jest to fragment kodu HTML, który powinien być wyświetlany jako reklama towarzysząca. |
type |
string Typ kreacji towarzyszącej. Może być statyczny, iframe lub HTML. |
ad_slot_id |
string Identyfikator boksu kreacji towarzyszącej. |
api_framework |
string Platforma API dla tej aplikacji towarzyszącej. |
tracking_events |
[object(TrackingEvent)] Lista zdarzeń śledzenia dla tej kreacji towarzyszącej. |
InteractiveFile
Plik InteractiveFile zawiera informacje o kreacji interaktywnej (np. SIMID), które powinny się wyświetlać podczas odtwarzania reklamy.Zapis JSON |
---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
Pola | |
---|---|
resource |
string Adres URL kreacji interaktywnej. |
type |
string Typ MIME pliku dostarczonego jako zasób. |
variable_duration |
boolean Określa, czy kreacja może poprosić o wydłużenie czasu trwania. |
ad_parameters |
string Wartość węzła <AdParameters> w tagu VAST. |