Interfejs Dynamic Ad Insertion API umożliwia zgłaszanie żądań związanych z DAI i ich śledzenie strumieni wideo na żądanie (VOD). Obsługiwane są strumienie HLS i DASH.
Usługa: dai.google.com
Ścieżka metody stream
jest podawana w kierunku https://dai.google.com
Metoda: strumień
Metody | |
---|---|
stream |
POST /ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream
Tworzy strumień HLS DAI dla podanego źródła treści i identyfikatora filmu.
Tworzy strumień DASH DAI dla podanego ź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 przy tworzeniu strumienia musi być prawidłowy w sieci wydawcy. Zamiast podawać go w treści żądania, klucz interfejsu API można przekazać w Nagłówek autoryzacji HTTP w następującym formacie: Authorization: DCLKDAI key="<api-key>" |
Parametry ścieżki
Parametry | |
---|---|
content-source |
string Identyfikator CMS transmisji. |
video-id |
string Identyfikator filmu w strumieniu. |
Treść żądania
Treść żądania jest typu application/x-www-form-urlencoded
i zawiera
następujące parametry:
Parametry | ||
---|---|---|
dai-ssb |
Opcjonalnie | Ustaw jako |
Parametry kierowania w DFP | Opcjonalnie | Dodatkowe parametry kierowania. |
Zastąp parametry strumienia | Opcjonalnie | Zastąp wartości domyślne parametru tworzenia strumienia. |
Uwierzytelnianie HMAC | Opcjonalnie | Uwierzytelnij przy użyciu tokena opartego na HMAC. |
Treść odpowiedzi
Jeśli operacja się uda, treść odpowiedzi będzie zawierała nowy
Stream
W przypadku strumieni z sygnalizowaniem po stronie serwera Stream
zawiera tylko pola stream_id
i stream_manifest
.
Open Measurement
Pole Verifications
zawiera informacje o polu Otwórz
Weryfikacja pomiarów w przypadku strumieni z sygnalizowaniem innym niż po stronie serwera.
Verifications
zawiera co najmniej 1 element Verification
z listą zasobów
i metadanych, które są potrzebne do zweryfikowania odtwarzania kreacji za pomocą kodu pomiarowego firmy zewnętrznej.
Obsługiwana jest tylko wartość JavaScriptResource
. Aby dowiedzieć się więcej,
odwiedź IAB Tech Lab
i specyfikacja VAST 4.1.
Metoda: weryfikacja multimediów
Gdy natrafisz na identyfikator multimediów podczas odtwarzania, od razu wykonaj
za pomocą żądania media_verification_url
z stream
punktu końcowego. media_verification_url
jest ścieżką bezwzględną.
W przypadku strumieni
beaconing po stronie serwera żądania weryfikacji mediów nie są konieczne.
gdy serwer rozpoczyna weryfikację multimediów.
Żądania do punktu końcowego media verification
są idempotentne.
Metody | |
---|---|
media verification |
GET {media_verification_url}/{ad_media_id}
Powiadamia API o zdarzeniu weryfikacji multimediów. |
Żądanie HTTP
GET {media-verification-url}/{ad-media-id}
Treść odpowiedzi
media verification
zwraca następujące odpowiedzi:
HTTP/1.1 204 No Content
, jeśli weryfikacja mediów się uda i wysłane zostaną wszystkie pingi.HTTP/1.1 404 Not Found
, jeśli nie można zweryfikować multimediów z powodu nieprawidłowego formatowania adresu URL lub wygaśnięcia ważności.HTTP/1.1 404 Not Found
, jeśli wcześniejsza prośba o weryfikację została zrealizowana.HTTP/1.1 409 Conflict
, jeśli inne żądanie wysyła w tej chwili pingi.
Identyfikatory mediów reklamowych (HLS)
Identyfikatory mediów reklamowych będą kodowane w metadanych czasowych HLS za pomocą klucza TXXX
,
zarezerwowane na „informacje tekstowe zdefiniowane przez użytkownika” ramki. Zawartość ramki
nie będą zaszyfrowane i zawsze będą się zaczynać od tekstu "google_"
.
Cała zawartość tekstowa ramki powinna być dodana do sekcji media_verification_url do każdego żądania weryfikacji reklam.
Identyfikatory mediów reklamowych (DASH)
Identyfikatory mediów reklam będą wstawiane do pliku manifestu za pomocą polecenia
Element EventStream
na stronie 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
zawierającym
identyfikator multimediów reklamy zaczynający się od “google_”
. Cała treść pliku messageData
należy dołączyć atrybut media_verification_url do każdej reklamy
o weryfikację.
Dane odpowiedzi
Strumień
Strumień jest używany do renderowania listy wszystkich zasobów nowo utworzonych zasobów 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 Strumień czasu trwania jest prawidłowy dla zakresu „00h00m00s” . |
valid_until |
string Data ważności strumienia do dnia podana w formacie RFC 3339. |
subtitles |
[object(Subtitle)] Lista napisów. Pomijany, jeśli pole jest puste. Dotyczy tylko HLS. |
hls_master_playlist |
string (WYCOFANO) URL playlisty reklamy nadrzędnej HLS. Użyj parametru stream_manifest. Dotyczy tylko HLS. |
stream_manifest |
string Plik manifestu strumienia. Odpowiada playlisty reklamy nadrzędnej w HLS i MPD w DASH. To jest jedyne pole oprócz „stream_id” znajduje się w odpowiedzi, gdy przez utworzenie strumienia sygnalizowania po stronie serwera. |
media_verification_url |
string URL do weryfikacji multimediów. |
apple_tv |
object(AppleTV) Opcjonalne informacje dotyczące urządzeń AppleTV. Dotyczy tylko HLS. |
ad_breaks |
[object(AdBreak)] Lista przerw na reklamy. Pomijany, jeśli pole jest puste. |
AppleTV
AppleTV zawiera informacje dotyczące urządzeń Apple TV.Zapis JSON |
---|
{ "interstitials_url": string, } |
Pola | |
---|---|
interstitials_url |
string URL reklam pełnoekranowych. |
AdBreak
AdBreak opisuje pojedynczą przerwę na reklamę w strumieniu. Zawiera ona pozycję, czas trwania, rodzaj (połowa/przed/po) i lista reklam.Zapis JSON |
---|
{ "type": string, "start": number, "duration": number, "ads": [object(Ad)], } |
Pola | |
---|---|
type |
string Prawidłowe typy przerw na reklamy to: w trakcie, przed i po. |
start |
number Pozycja (w sekundach) w strumieniu, od której zaczyna się przerwa. |
duration |
number Czas trwania przerwy na reklamę w sekundach. |
ads |
[object(Ad)] Lista reklam. Pomijany, jeśli pole jest puste. |
Reklama
Reklama opisuje reklamę w strumieniu. Zawiera ona pozycję reklamy na przerwę, czas trwania reklamy i kilka opcjonalnych metadanych.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 sekundach) w strumieniu, w której rozpoczyna się reklama. |
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. Pomijany, jeśli pole jest puste. |
events |
[object(Event)] Lista zdarzeń w reklamie. |
verifications |
[object(Verification)] Opcjonalne wpisy weryfikacyjne Open Measurement zawierające listę zasobów i metadane wymagane 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 elementy towarzyszące, które mogą być wyświetlane z tą reklamą. |
interactive_file |
object(InteractiveFile) Opcjonalna kreacja interaktywna (SIMID), która powinna wyświetlać się podczas odtwarzania reklamy. |
skip_metadata |
object(SkipMetadata) Opcjonalne metadane reklam możliwych do pominięcia. Jeśli jest ustawiony, oznacza, że reklama jest możliwy do pominięcia i zawiera instrukcje dotyczące obsługi tego interfejsu. i śledzenie zdarzenia. |
Zdarzenie
Wydarzenie zawiera typ wydarzenia i godzinę jego prezentacji.Zapis JSON |
---|
{ "time": number, "type": string, } |
Pola | |
---|---|
time |
number Czas prezentacji tego wydarzenia. |
type |
string Typ tego wydarzenia. |
Podtytuł
Podtytuł opisuje dodatkową ścieżkę napisów do strumienia wideo. Magazyny w dwóch formatach: TTML i WebVTT. Atrybut TTMLPath zawiera adres URL do pliku pomocniczego TTML, a atrybut WebVTTPath ma podobnie do pliku pomocniczego WebVTT.Zapis JSON |
---|
{ "language": string, "language_name": string, "ttml": string, "webvtt": string, } |
Pola | |
---|---|
language |
string Kod języka, np. „en” lub „de”. |
language_name |
string Opisowa nazwa języka. Wyróżnia on określony zestaw napisy w przypadku kilku zestawów wersji dla tego samego języka. |
ttml |
string Opcjonalny adres URL pliku pomocniczego TTML. |
webvtt |
string Opcjonalny adres URL pliku pomocniczego WebVTT. |
SkipMetadata
SkipMetadata zawiera informacje potrzebne 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) odtwarzania reklamy przez odtwarzacz. powinien poczekać na wyrenderowanie przycisku pominięcia. Pomijany, jeśli nie podano go w VAST. |
tracking_url |
string Link monitorujący zawiera adres URL, który należy wysłać pingowi do 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
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
Paczka zawiera informacje o reklamie z kodem. Nie zawiera ona Identyfikator 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żywany w reklamie z kodem. |
creative_id |
string Identyfikator kreacji używany na potrzeby reklamy z kodem. |
creative_ad_id |
string Identyfikator reklamy z kreacją używany na potrzeby reklamy z kodem. |
deal_id |
string Opcjonalny identyfikator umowy dotyczącej reklamy z kodem towarzyszącym. |
Weryfikacja
Weryfikacja zawiera informacje do Open Measurement, zewnętrzne pomiary widoczności i weryfikacji. Obecnie obsługiwane są tylko zasoby JavaScript. Więcej informacji znajdziesz na 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 usługi weryfikacyjnej. |
java_script_resources |
[object(JavaScriptResource)] Lista zasobów JavaScript na potrzeby weryfikacji. |
tracking_events |
[object(TrackingEvent)] Lista zdarzeń śledzenia na potrzeby weryfikacji. |
parameters |
string Nieprzejrzysty ciąg znaków przekazany do kodu weryfikacyjnego wczytywania. |
JavaScriptResource
JavaScriptResource zawiera informacje potrzebne do weryfikacji przez JavaScript.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 działa kod weryfikacyjny. |
browser_optional |
boolean Czy ten skrypt można uruchomić poza w przeglądarce. |
TrackingEvent
TrackingEvent zawiera adresy URL, które klient powinien wysłać ping na określonych w różnych sytuacjach.Zapis JSON |
---|
{ "event": string, "uri": string, } |
Pola | |
---|---|
event |
string Typ zdarzenia śledzenia. |
uri |
string Zdarzenie śledzenia do sprawdzenia. |
UniversalAdID
UniversalAdID jest używany do przekazywania unikalnego identyfikatora kreacji, który jest i zachowane w różnych systemach reklamowych.Zapis JSON |
---|
{ "id_value": string, "id_registry": string, } |
Pola | |
---|---|
id_value |
string Uniwersalny identyfikator reklamy wybranej dla reklamy. |
id_registry |
string Ciąg znaków identyfikujący adres URL witryny rejestru, w której znajduje się parametr uniwersalnego identyfikatora reklamy wybranej kreacji. |
Reklama towarzysząca
Kreacja towarzysząca zawiera informacje o reklamach towarzyszących, które mogą być wyświetlane 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 reklamy towarzyszącej. |
creative_type |
string Atrybut CreativeType w elemencie <StaticResource> węzła w VAST, jeśli jest to reklama towarzysząca typu statycznego. |
height |
int32 Wysokość reklamy towarzyszącej w pikselach. |
width |
int32 Szerokość w pikselach reklamy towarzyszącej. |
resource |
string W przypadku statycznych i towarzyszących elementów iframe będzie to URL do załadowania wyświetlenie. W przypadku reklam towarzyszących HTML jest to fragment kodu HTML, który powinien będzie wyświetlana jako kreacja towarzysząca. |
type |
string Typ elementu towarzyszącego. Może to być statyczny, iframe lub HTML. |
ad_slot_id |
string Identyfikator boksu towarzyszącego. |
api_framework |
string Platforma interfejsu API tej aplikacji towarzyszącej. |
tracking_events |
[object(TrackingEvent)] Lista zdarzeń śledzenia tej reklamy towarzyszącej. |
InteractiveFile
Element InteractiveFile zawiera informacje o kreacji interaktywnej (np.identyfikator 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 Czy ta kreacja może prosić o wydłużenie czasu trwania. |
ad_parameters |
string Wartość parametru <AdParameters> w tagu VAST. |