Hinweise
Dieses Handbuch deckt nur die Wiedergabeanweisungen ab, wenn keine IMA DAI SDK
Stellen Sie sicher, dass Sie die Schritte in Google Ad Manager (GAM) in Livestreams einbinden .
Wenn das IMA SDK für die gewünschte Plattform nicht verfügbar ist, benötigen Sie um die erforderlichen APIs aufzurufen und die Anzeigenimpressionen selbst auszulösen.
Dazu benötigen Sie die folgenden Informationen:
Standort |
Die
Google Cloud-Region
, wo die Live-Konfiguration erstellt wurde:
LOCATION
|
Projektnummer |
Die Projektnummer des Google Cloud-Projekts, für das Video Stitcher verwendet wird
API:
PROJECT_NUMBER
|
OAuth-Token |
Das kurzlebige OAuth-Token eines Dienstkontos mit dem Video Stitcher-Nutzer
Rolle:
OAUTH_TOKEN Weitere Informationen zu kurzlebige OAuth-Tokens erstellen |
Netzwerkcode |
Ad Manager-Netzwerkcode für die Anzeigenanfrage:
NETWORK_CODE
|
Live-Konfigurations-ID |
Die Live-Konfigurations-ID, die du beim Erstellen des Livestream-Ereignisses angegeben hast:
LIVE_CONFIG_ID
|
Benutzerdefinierter Asset-Schlüssel |
Der benutzerdefinierte Ad Manager-Asset-Schlüssel, der beim Erstellen einer Konfiguration für ein Livestream-Ereignis mit der Video Stitcher API generiert wurde:
CUSTOM_ASSET_KEY
|
Anfrage für eine Streamregistrierung an Ad Manager senden
Stellen Sie eine POST-Anfrage an den Endpunkt der Streamregistrierung. Im Gegenzug erhalten Sie Eine JSON-Antwort mit der Stream-ID, die an die Video Stitching API gesendet werden soll.
API-Endpunkt
POST: /ssai/pods/api/v1/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/stream
Host: dai.google.com
Content-Type: application/x-www-form-urlencoded
Pfadparameter
NETWORK_CODE |
Ihr Google Ad Manager 360-Netzwerkcode:
NETWORK_CODE
|
CUSTOM_ASSET_KEY |
Die benutzerdefinierte Kennung, die diesem Ereignis in Google Ad Manager zugewiesen ist:
CUSTOM_ASSET_KEY
|
Formularcodierte Textparameter
Optionaler Satz formularcodierter Targeting-Parameter
Antwort (JSON)
media_verification_url |
Die Basis-URL zum Pingen von Wiedergabe-Tracking-Ereignissen. Eine vollständige Medienüberprüfung
URL wird gebildet, indem eine Anzeigenereignis-ID an diese Basis-URL angehängt wird.
MEDIA_VERIFICATION_URL
|
metadata_url |
Die URL, um Metadaten des Anzeigen-Pods anzufordern.
METADATA_URL
|
polling_frequency |
die empfohlene Häufigkeit in Millisekunden für die Abfrage von „metadata_url“.
POLLING_FREQUENCY
|
stream_id |
Der String, mit dem die aktuelle Streamsitzung identifiziert wird.
STREAM_ID
|
valid_for |
Die verbleibende Zeit bis zum Ablauf der aktuellen Streamsitzung in
dhms (Tage, Stunden, Minuten, Sekunden). Beispiel:
2h0m0.000s steht für eine Dauer von 2 Stunden.
|
valid_until |
Der Zeitpunkt, zu dem die aktuelle Streamsitzung abläuft, angegeben gemäß ISO 8601.
Datum/Uhrzeit-String in yyyy-MM-dd'T'hh:mm:ss.sssssssss[+|-]hh:mm
Format.
|
Beispielanfrage (cURL)
curl -X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "cust_params=\"section%3Dsports%26page%3Dgolf%2Ctennis\"" \
https://dai.google.com/ssai/pods/api/v1/network/51636543/custom_asset/ext-doc-ps-redirect-hls/stream
Beispielantwort
{
"stream_id":"9fe8fe4f-f12e-4fed-b509-0ca269bb1668:TUL",
"media_verification_url":"https://dai.google.com/.../media/",
"metadata_url":"https://dai.google.com/.../metadata",
"session_update_url":"https://dai.google.com/.../session",
"polling_frequency":10
}
Bei Fehlern werden Standard-HTTP-Fehlercodes ohne JSON-Antworttext zurückgegeben.
Parsen Sie die JSON-Antwort und speichern Sie die relevanten Werte.
URI für die Wiedergabe der Sitzung generieren
Stelle eine POST-Anfrage an den Endpunkt /livesessions
der Video Stitcher API, um eine neue Live-Sitzung zu erstellen. Im Gegenzug erhalten Sie eine JSON-Antwort,
das Stream-Manifest in deinen Videoplayer laden.
API-Endpunkt
POST: /v1/projects/PROJECT_NUMBER/locations/LOCATION/liveSessions
Host: videostitcher.googleapis.com
Authorization: Bearer OAUTH_TOKEN
Content-Type: application/json
Pfadparameter
PROJECT_NUMBER |
Die Projektnummer des Google Cloud-Projekts, in dem die Video Stitcher API verwendet wird:
PROJECT_NUMBER
|
LOCATION |
Die Google Cloud-Region, in der Ihre Livekonfiguration erstellt wurde:
LOCATION
|
Autorisierungsheaderparameter
OAUTH_TOKEN |
Das kurzlebige OAuth-Token eines Dienstkontos mit der Rolle „Video Stitcher“:
OAUTH_TOKEN |
JSON-codierte Textparameter
liveConfig |
Ein String mit Ihrer Projektnummer, Ihrem Standort und der Live-Konfigurations-ID im folgenden Format:
projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID
|
adTracking |
Legen Sie "CLIENT" fest, um das clientseitige Tracking zu aktivieren. |
gamSettings |
Ein Objekt mit der Stream-ID im folgenden Format:
{"streamId":"STREAM_ID"}
|
Antwort (JSON)
name |
Der Name der Livesitzung, der die Sitzungs-ID enthält. |
playUri |
Der URI des zusammengefügten Stream-Manifests, das zur Wiedergabe in deinen Videoplayer geladen werden soll.
PLAY_URI
|
liveConfig |
Derselbe liveConfig -String, der im Anfragetext an die API gesendet wurde.
|
gamSettings |
Das gamSettings -Objekt, das im Anfragetext an die API gesendet wurde.
|
Beispielanfrage (cURL)
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer OAUTH_TOKEN" \
-d '@request.json' \
https://videostitcher.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/liveSessions
request.json
{
"liveConfig": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID",
"adTracking": "CLIENT",
"gamSettings": {
"streamId": "STREAM_ID"
}
}
Beispielantwort
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/liveSessions/SESSION_ID",
"playUri": PLAY_URI,
"liveConfig": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID"
"gamSettings": {
"streamId": STREAM_ID
}
}
Nachdem die Antwort eingegangen ist, kannst du den Livestream aus der eingeblendeten Werbeanzeige abspielen, indem du
Verweist auf den URI der Sitzungswiedergabe aus dem Feld playUri
des
-Antwortobjekt.
Die Video Stitcher API generiert eine eindeutige Sitzungs-ID für
jede Anfrage, die aus dem letzten Abschnitt des Felds name
abgerufen werden kann
des Antwortobjekts.
Eine inaktive Sitzung läuft nach 5 Minuten ab. Eine Sitzung ist als inaktiv angesehen, wenn innerhalb eines bestimmten Zeitraums .
Neue AdBreak-Metadaten abfragen
Die Anwendung ist für den Abruf
der Metadaten für jede Werbeunterbrechung zuständig,
weiß, welche Impressionen ausgelöst werden müssen. Um dies zu erreichen, legen Sie
Timer für die regelmäßige Abfrage neuer Anzeigen von den APIs für die dynamische Anzeigenbereitstellung metadata_url
Informationen. Das Intervall für die Abfrage wird in polling_frequency
angegeben
in der Antwort auf die Streamregistrierung.
Als Antwort erhalten Sie ein JSON-Objekt mit den folgenden Parametern:
tags |
Eine Reihe von Schlüssel/Wert-Paaren, die Ereignisse für Anzeigenmedien beschreiben, die im Stream auftreten. Jeder Schlüssel besteht entweder aus den ersten 17 Zeichen
eine Werbemedien-ID, die in den ID3-Metadaten des Streams oder in der
die gesamte Media-ID der Anzeige. Jeder Wert ist ein Objekt mit den folgenden Eigenschaften:
|
ads |
Eine Reihe von Schlüssel/Wert-Paaren, die Anzeigen beschreiben, die im Stream erscheinen. Jeder Schlüssel ist eine Anzeigen-ID. Jeder Wert ist ein Objekt mit den folgenden Properties:
|
ad_breaks |
Eine Reihe von Schlüssel/Wert-Paaren, die Werbeunterbrechungen beschreiben, die im Stream vorkommen. Jeder Schlüssel ist eine Werbeunterbrechungs-ID. Jeder Wert ist ein
mit den folgenden Eigenschaften:
|
Speichere diese Werte nach jeder Umfrage, um getaktete Metadatenereignisse in deinem Videostream zu verknüpfen.
Beispielanfrage (cURL)
curl https://dai.google.com/.../metadata/
Beispielantwort
{
"tags":{
"google_0492266569":{
"ad":"0000229836_ad1",
"ad_break_id":"0000229836",
"type":"firstquartile"
},
"google_1560331148":{
"ad":"0000229836_ad1",
"ad_break_id":"0000229836",
"type":"thirdquartile"
},
"google_1877686714378797835":{
"ad":"0000229836_slate",
"ad_break_id":"0000229836",
"type":"progress"
},
"google_1vRyQBYPw_7Gg3MrZ6S5EjmV9aLje-YpW8QHed1DSlU":{
"ad":"0000229835_ad1",
"ad_break_id":"0000229835",
"type":"progress"
},
"google_2032765498":{
"ad":"0000229835_ad1",
"ad_break_id":"0000229835",
"type":"midpoint"
},
...
"google_5646900623":{
"ad":"0000229837_ad1",
"ad_break_id":"0000229837",
"type":"complete"
}
},
"ads":{
"0000229834_ad1":{
"ad_break_id":"0000229834",
"position":1,
"duration":15.01,
"title":"truman-e2e-creativeset4",
"description":"truman-e2e-creativeset4 ad",
"ad_system":"GDFP",
"ad_id":"39066884",
"creative_id":"58092079124",
"clickthrough_url":"https://pubads.g.doubleclick.net/...",
"universal_ad_id":{
"id_value":"58092079124",
"id_registry":"GDFP"
}
},
"0000229834_slate":{
"ad_break_id":"0000229834",
"position":-1,
"duration":14.974977777,
"slate":true
},
...
},
"ad_breaks":{
"0000229834":{
"type":"mid",
"duration":15.01,
"expected_duration":29.984977776999997,
"ads":1
},
...
}
}
ID3-Ereignisse überwachen und Wiedergabeereignisse verfolgen
So überprüfen Sie, ob bestimmte Ereignisse in einem Videostream aufgetreten sind: Schritte zur Verarbeitung von ID3-Ereignissen:
- Speichern Sie die Medienereignisse in einer Warteschlange und speichern Sie jede Medien-ID samt ihrer Zeitstempel, sofern vom Player angezeigt.
- Bei jeder Aktualisierung über den Player oder mit einer festgelegten Frequenz (500 ms) angezeigt werden, suchen Sie in der Medienereignis-Warteschlange nach kürzlich abgespielten Ereignissen, indem Sie die Ereigniszeitstempel mit dem Abspielkopf vergleichen.
- Bei Medienereignissen, deren Wiedergabe Sie bestätigen, können Sie den Typ prüfen, indem Sie Media-ID in den gespeicherten Tags für Werbeunterbrechungen Die Tags für Werbeunterbrechungen enthält nur eine verkürzte Version der Medien-ID, die auf das Attribut die ersten zehn Ziffern nach dem Präfix „google_“ stehen, sodass es keine direkte Übereinstimmung gibt. zwischen ID3-Medienüberprüfungs-IDs und -Schlüsseln im Tag-Objekt. So wird verhindert, dass Pings zur Ereignisbestätigung gesendet werden, bevor das ID3-Ereignis eintrifft. Wenn du die vollständige URL für die Mediaüberprüfung eines Anzeigenereignisses generieren möchtest, füge dem Wert „media_verification_url“ aus der Antwort auf die Streamerstellung die vollständige Anzeigenereignis-ID an.
- Mit „progress“-Ereignissen kannst du verfolgen, ob sich ein Nutzer in einer Werbeunterbrechung befindet. Sende diese Ereignisse nicht an den Endpunkt für die Medienüberprüfung, um einen HTTP-Fehlercode zu vermeiden. Fügen Sie bei anderen Ereignistypen die Medien-ID an die URL für die Medienüberprüfung an und senden Sie einen GET-Aufruf, um die Wiedergabe zu erfassen.
- Entferne das Medienereignis aus der Warteschlange.
API-Endpunkt
GET: MEDIA_VERIFICATION_URLAD_MEDIA_ID
Host: dai.google.com
Pfadparameter
MEDIA_VERIFICATION_URL |
Der vom Streamregistrierungsendpunkt zurückgegebene Wert in der
Feld media_verification_url :
MEDIA_VERIFICATION_URL
|
AD_MEDIA_ID |
Die vollständige Media-ID der Anzeige, wie sie in den ID3-Metadaten des Streams zu sehen ist:
AD_MEDIA_ID
|
Erwartete Rückgabewerte
HTTP/1.1 204 No Content |
Erfolgreiche leere Antwort. |
HTTP/1.1 404 Not Found |
Die ID für die Medienüberprüfung wurde nicht erkannt. |
HTTP/1.1 409 Conflict |
Die Media-Bestätigungs-ID wurde bereits gesendet. |
Beispielanfrage (cURL)
curl MEDIA_VERIFICATION_URLAD_MEDIA_ID
Beispielantwort
HTTP/1.1 204 No Content
Beschränkungen
Wenn Sie die API in Webviews verwenden, gelten für das Targeting die folgenden Einschränkungen:
- User-Agent: Der User-Agent-Parameter wird anstelle der zugrunde liegenden Plattform als browserspezifischer Wert übergeben.
- rdid, idtype, is_lat: Die Geräte-ID wird nicht korrekt übergeben.
schränkt die Funktionalität der folgenden Funktionen ein:
- Frequency Capping
- Sequenzielle Anzeigenrotation
- Zielgruppensegmentierung und -ausrichtung