Mit der Dynamic Ad Insertion API kannst du Video-on-Demand-Streams (VOD) mit dynamischer Anzeigenbereitstellung anfordern und erfassen. HLS- und DASH-Streams werden unterstützt.
Dienst: dai.google.com
Der Pfad der stream-Methode ist relativ zu https://dai.google.com
Methode: stream
| Methoden | |
|---|---|
stream |
POST /ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream
Erstellt einen HLS-DAI-Stream für die angegebene Contentquelle und Video-ID.
Erstellt einen DASH-DAI-Stream für die angegebene Contentquelle und Video-ID. |
HTTP-Anfrage
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
Anfrageheader
| Parameter | |
|---|---|
api‑key |
stringDer API-Schlüssel, der beim Erstellen eines Streams angegeben wird, muss für das Netzwerk des Publishers gültig sein. Anstatt ihn im Anfragetext anzugeben, kann der API-Schlüssel im HTTP-Autorisierungsheader mit dem folgenden Format übergeben werden: Authorization: DCLKDAI key="<api-key>" |
Pfadparameter
| Parameter | |
|---|---|
content-source |
stringDie CMS-ID des Streams. |
video-id |
stringDie Video-ID des Streams. |
Anfragetext
Der Anfragetext hat den Typ application/x-www-form-urlencoded und enthält die folgenden Parameter:
| Parameter | ||
|---|---|---|
dai-ssb |
Optional | Legen Sie den Wert auf |
| DFP-Targeting-Parameter | Optional | Zusätzliche Targeting-Parameter |
| Streamparameter überschreiben | Optional | Standardwerte eines Parameters für die Streamerstellung überschreiben. |
| HMAC-Authentifizierung | Optional | Mit einem HMAC-basierten Token authentifizieren. |
Antworttext
Bei Erfolg enthält der Antworttext eine neue Stream. Bei serverseitigen Beaconing-Streams enthält Stream nur die Felder stream_id und stream_manifest.
Open Measurement
Das Feld Verifications enthält Informationen zur Überprüfung von Open Measurement-Streams ohne serverseitiges Beaconing.
Verifications enthält ein oder mehrere Verification-Elemente mit den Ressourcen und Metadaten, die Sie zur Überprüfung der Creative-Wiedergabe mit dem Messcode eines Drittanbieters benötigen.
Es wird nur JavaScriptResource unterstützt. Weitere Informationen finden Sie im IAB Tech Lab und in der VAST 4.1-Spezifikation.
Methode: Medienüberprüfung
Wenn du während der Wiedergabe eine Anzeigenmedien-ID siehst, sende sofort eine Anfrage mit der media_verification_url vom Endpunkt stream. media_verification_url ist ein absoluter Pfad.
Anfragen zur Medienüberprüfung sind für serverseitige Beaconing-Streams nicht erforderlich, da die Medienüberprüfung vom Server initiiert wird.
Anfragen an den media verification-Endpunkt sind idempotent.
| Methoden | |
|---|---|
media verification |
GET {media_verification_url}/{ad_media_id}
Benachrichtigt die API über ein Ereignis der Medienüberprüfung. |
HTTP-Anfrage
GET {media-verification-url}/{ad-media-id}
Antworttext
media verification gibt die folgenden Antworten zurück:
HTTP/1.1 204 No Content, wenn die Medienüberprüfung erfolgreich war und alle Pings gesendet wurden.HTTP/1.1 404 Not Found, wenn die Medien aufgrund einer falschen URL-Formatierung oder eines Ablaufdatums nicht bestätigt werden können.HTTP/1.1 404 Not Found, wenn eine vorherige Bestätigungsanfrage für diesen Ausweis erfolgreich war.HTTP/1.1 409 Conflict, wenn zu diesem Zeitpunkt bereits Pings für eine andere Anfrage gesendet werden.
Anzeigen-Media-IDs (HLS)
Anzeigenmedien-IDs werden in HLS-zeitbasierten Metadaten mit dem Schlüssel TXXX codiert, der für Frames mit „nutzerdefinierten Textinformationen“ reserviert ist. Der Inhalt des Frames ist unverschlüsselt und beginnt immer mit dem Text "google_".
Der gesamte Textinhalt des Frames muss für jede Anfrage zur Anzeigenüberprüfung an media_verification_url angehängt werden.
Anzeigenmedien-IDs (DASH)
Anzeigenmedien-IDs werden über das DASH-Element EventStream in das Manifest eingefügt.
Jeder EventStream hat einen Scheme-ID-URI von urn:google:dai:2018.
Sie enthalten Ereignisse mit dem Attribut messageData, das eine Anzeigenmedien-ID enthält, die mit “google_” beginnt. Der gesamte Inhalt des Attributs messageData muss für jede Anfrage zur Anzeigenüberprüfung an media_verification_url angehängt werden.
Antwortdaten
Stream
Mit „stream“ wird eine Liste aller Ressourcen für einen neu erstellten Stream im JSON-Format gerendert .| JSON-Darstellung |
|---|
{
"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)],
} |
| Felder | |
|---|---|
stream_id |
stringStream-ID |
total_duration |
numberStreamdauer in Sekunden. |
content_duration |
numberDauer der Inhalte ohne Anzeigen in Sekunden. |
valid_for |
stringDer Dauerstream ist im Format „00:00:00“ gültig. |
valid_until |
stringDatum, bis zu dem der Stream gültig ist, im RFC 3339-Format. |
subtitles |
[object(Subtitle)]Eine Liste mit Untertiteln. Wird weggelassen, wenn es leer ist. Nur HLS. |
hls_master_playlist |
string(VERSCHUSSELT) URL der HLS-Masterplaylist. Verwende „stream_manifest“. Nur HLS. |
stream_manifest |
stringDas Manifest des Streams. Entspricht der Masterplaylist in HLS und der MPD in DASH. Dieses Feld ist neben „stream_id“ das einzige Feld, das in der Antwort enthalten ist, wenn ein serverseitiger Beaconing-Stream erstellt wird. |
media_verification_url |
stringURL für die Medienüberprüfung |
apple_tv |
object(AppleTV)Optionale Informationen speziell für AppleTV-Geräte. Nur HLS. |
ad_breaks |
[object(AdBreak)]Eine Liste von Werbeunterbrechungen. Wird weggelassen, wenn es leer ist. |
AppleTV
„AppleTV“ enthält Informationen zu Apple TV-Geräten.| JSON-Darstellung |
|---|
{
"interstitials_url": string,
} |
| Felder | |
|---|---|
interstitials_url |
stringURL des Interstitials |
AdBreak
„AdBreak“ beschreibt eine einzelne Werbeunterbrechung im Stream. Sie enthält eine Position, eine Dauer, einen Typ (Mid-/Pre-/Post-Roll) und eine Liste mit Anzeigen.| JSON-Darstellung |
|---|
{ "type": string, "start": number, "duration": number, "ads": [object(Ad)], } |
| Felder | |
|---|---|
type |
stringGültige Werbeunterbrechungstypen sind „mid“, „pre“ und „post“. |
start |
numberPosition im Stream, an der die Werbeunterbrechung beginnt, in Sekunden. |
duration |
numberDauer der Werbeunterbrechung in Sekunden. |
ads |
[object(Ad)]Eine Liste von Anzeigen. Wird weggelassen, wenn es leer ist. |
Anzeige
„Anzeige“ beschreibt eine Anzeige im Stream. Sie enthält die Position der Anzeige in der Werbeunterbrechung, die Dauer der Anzeige und einige optionale Metadaten.| JSON-Darstellung |
|---|
{
"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": [],
} |
| Felder | |
|---|---|
seq |
numberPosition der Anzeige in der Werbeunterbrechung. |
start |
numberPosition im Stream, an der die Anzeige beginnt, in Sekunden. |
duration |
numberDauer der Anzeige in Sekunden. |
title |
stringOptionaler Titel der Anzeige. |
description |
stringOptionale Beschreibung der Anzeige. |
advertiser |
stringOptionale Werbetreibenden-ID. |
ad_system |
stringOptionales Anzeigensystem |
ad_id |
stringOptionale Anzeigen-ID. |
creative_id |
stringOptionale Creative-ID. |
creative_ad_id |
stringOptionale Creative-Anzeigen-ID. |
deal_id |
stringOptionale Deal-ID. |
clickthrough_url |
stringOptionale Klick-URL |
icons |
[object(Icon)]Eine Liste von Symbolen, die bei leerem Wert weggelassen wird. |
wrappers |
[object(Wrapper)]Eine Liste der Wrapper. Wird weggelassen, wenn es leer ist. |
events |
[object(Event)]Eine Liste der Ereignisse in der Anzeige. |
verifications |
[object(Verification)]Optionale Open Measurement-Bestätigungseinträge, die die Ressourcen und Metadaten enthalten, die zum Ausführen des Messcodes von Drittanbietern zur Überprüfung der Creative-Wiedergabe erforderlich sind. |
universal_ad_id |
object(UniversalAdID)Optionale universelle Anzeigen-ID. |
companions |
[object(Companion)]Optionale Companion-Creatives, die zusammen mit dieser Anzeige ausgeliefert werden können. |
interactive_file |
object(InteractiveFile)Optionales interaktives Creative (SIMID), das während der Anzeigenwiedergabe eingeblendet werden soll. |
skip_metadata |
object(SkipMetadata)Optionale Metadaten für überspringbare Anzeigen. Wenn diese Option festgelegt ist, gibt sie an, dass die Anzeige übersprungen werden kann. Außerdem enthält sie eine Anleitung zum Umgang mit der Benutzeroberfläche zum Überspringen und dem Tracking-Ereignis. |
extensions |
stringOptionale Liste aller <Extension>-Knoten im VAST. |
Ereignis
„Ereignis“ enthält einen Ereignistyp und eine Präsentationszeit eines Ereignisses.| JSON-Darstellung |
|---|
{ "time": number, "type": string, } |
| Felder | |
|---|---|
time |
numberDie Präsentationszeit dieses Ereignisses. |
type |
stringDer Typ dieses Ereignisses. |
Untertitel
„Subtitle“ beschreibt einen Sidecar-Untertiteltrack für den Videostream. Es werden zwei Untertitelformate gespeichert: TTML und WebVTT. Das Attribut „TTMLPath“ enthält die URL zur TTML-Sidecar-Datei und das Attribut „WebVTTPath“ enthält eine URL zur WebVTT-Sidecar-Datei.| JSON-Darstellung |
|---|
{
"language": string,
"language_name": string,
"ttml": string,
"webvtt": string,
} |
| Felder | |
|---|---|
language |
stringEin Sprachcode wie „en“ oder „de“. |
language_name |
stringBeschreibender Name der Sprache. Er unterscheidet die einzelnen Untertitel, wenn für dieselbe Sprache mehrere vorhanden sind. |
ttml |
stringOptionale URL zur TTML-Sidecar-Datei. |
webvtt |
stringOptionale URL zur WebVTT-Sidecar-Datei. |
SkipMetadata
SkipMetadata enthält Informationen, die Clients zum Bearbeiten von Überspringe-Ereignissen für überspringbare Anzeigen benötigen.| JSON-Darstellung |
|---|
{
"offset": number,
"tracking_url": string,
} |
| Felder | |
|---|---|
offset |
numberDer Versatz gibt an, wie viele Sekunden nach Beginn der Anzeige der Player warten soll, bevor die Schaltfläche „Überspringen“ gerendert wird. Wird ausgelassen, wenn sie nicht im VAST-Dokument angegeben ist. |
tracking_url |
stringDie TrackingURL enthält eine URL, die beim Überspringen eines Videos angepingt werden soll. |
Symbol
Das Symbol enthält Informationen zu einem VAST-Symbol.| JSON-Darstellung |
|---|
{ "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, } |
| Felder | |
|---|---|
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“ enthält Informationen zu einem Klick auf ein Symbol.| JSON-Darstellung |
|---|
{
"url": string,
} |
| Felder | |
|---|---|
url |
string |
FallbackImage
FallbackImage enthält Informationen zu einem VAST-Fallback-Bild.| JSON-Darstellung |
|---|
{ "creative_type": string, "height": int32, "width": int32, "resource": string, "alt_text": string, } |
| Felder | |
|---|---|
creative_type |
string |
height |
int32 |
width |
int32 |
resource |
string |
alt_text |
string |
Wrapper
Der Wrapper enthält Informationen zu einer Wrapper-Anzeige. Eine Deal-ID ist nicht enthalten, wenn keine vorhanden ist.| JSON-Darstellung |
|---|
{
"system": string,
"ad_id": string,
"creative_id": string,
"creative_ad_id": string,
"deal_id": string,
} |
| Felder | |
|---|---|
system |
stringID des Anzeigensystems. |
ad_id |
stringDie Anzeigen-ID, die für die Wrapper-Anzeige verwendet wird. |
creative_id |
stringCreative-ID, die für die Wrapper-Anzeige verwendet wird. |
creative_ad_id |
stringCreative-Anzeigen-ID, die für die Wrapper-Anzeige verwendet wird. |
deal_id |
stringOptionale Deal-ID für die Wrapper-Anzeige. |
Überprüfung
Die Bestätigung enthält Informationen für Open Measurement, die die Sichtbarkeits- und Überprüfungsmessung durch Drittanbieter erleichtern. Derzeit werden nur JavaScript-Ressourcen unterstützt. Weitere Informationen finden Sie unter https://iabtechlab.com/standards/open-measurement-sdk/.| JSON-Darstellung |
|---|
{
"vendor": string,
"java_script_resources": [object(JavaScriptResource)],
"tracking_events": [object(TrackingEvent)],
"parameters": string,
} |
| Felder | |
|---|---|
vendor |
stringDer Überprüfungsanbieter. |
java_script_resources |
[object(JavaScriptResource)]Liste der JavaScript-Ressourcen für die Überprüfung. |
tracking_events |
[object(TrackingEvent)]Liste der Tracking-Ereignisse für die Bestätigung. |
parameters |
stringEin undurchsichtiger String, der an den Bootstrap-Bestätigungscode übergeben wird. |
JavaScriptResource
„JavaScriptResource“ enthält Informationen zur Überprüfung über JavaScript.| JSON-Darstellung |
|---|
{
"script_url": string,
"api_framework": string,
"browser_optional": boolean,
} |
| Felder | |
|---|---|
script_url |
stringURI zum JavaScript-Nutzlast |
api_framework |
stringAPIFramework ist der Name des Video-Frameworks, das den Bestätigungscode verwendet. |
browser_optional |
booleanOb dieses Script außerhalb eines Browsers ausgeführt werden kann. |
TrackingEvent
„TrackingEvent“ enthält URLs, die in bestimmten Situationen vom Client gepingt werden sollen.| JSON-Darstellung |
|---|
{
"event": string,
"uri": string,
} |
| Felder | |
|---|---|
event |
stringDer Typ des Tracking-Ereignisses. |
uri |
stringDas Tracking-Ereignis, an das ein Ping gesendet werden soll. |
UniversalAdID
Mit der UniversalAdID wird eine eindeutige Creative-ID bereitgestellt, die in allen Werbesystemen verwendet wird.| JSON-Darstellung |
|---|
{ "id_value": string, "id_registry": string, } |
| Felder | |
|---|---|
id_value |
stringDie universelle Anzeigen-ID des ausgewählten Creatives für die Anzeige. |
id_registry |
stringEin String, der die URL für die Registrierungswebsite angibt, auf der die Universal-Anzeigen-ID des ausgewählten Creatives katalogisiert wird. |
Companion
„Companion“ enthält Informationen zu Companion-Anzeigen, die zusammen mit der Anzeige ausgeliefert werden können.| JSON-Darstellung |
|---|
{ "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)], } |
| Felder | |
|---|---|
click_data |
object(ClickData)Die Klickdaten für dieses Companion-Creative. |
creative_type |
stringDas CreativeType-Attribut im <StaticResource>-Knoten im VAST-Tag, wenn es sich um ein Companion-Creative vom Typ „static“ handelt. |
height |
int32Die Höhe dieses Companion-Elements in Pixeln. |
width |
int32Die Breite dieses Companion-Elements in Pixeln. |
resource |
stringBei statischen und iFrame-Anzeigen ist dies die URL, die geladen und angezeigt wird. Bei HTML-Companions ist dies das HTML-Snippet, das als Companion angezeigt werden soll. |
type |
stringTyp dieses Companion. Sie kann entweder statisch, iFrame oder HTML sein. |
ad_slot_id |
stringDie Slot-ID für diesen Companion. |
api_framework |
stringDas API-Framework für diesen Companion. |
tracking_events |
[object(TrackingEvent)]Liste der Tracking-Ereignisse für diesen Companion. |
InteractiveFile
„InteractiveFile“ enthält Informationen für interaktive Creatives (z.B. SIMID), die während der Wiedergabe der Anzeige angezeigt werden sollen.| JSON-Darstellung |
|---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
| Felder | |
|---|---|
resource |
stringDie URL zum interaktiven Creative. |
type |
stringDer MIME-Typ der als Ressource bereitgestellten Datei. |
variable_duration |
booleanOb für dieses Creative die Dauer verlängert werden kann. |
ad_parameters |
stringDer Wert des Knotens <AdParameters> im VAST-Tag. |