Hinweise
In diesem Dokument werden nur die Wiedergabeanleitungen ohne das IMA DAI SDK behandelt.
Stellen Sie sicher, dass Sie die Schritte in VOD-Assets in Google Ad Manager (GAM) einbinden .
Wenn das IMA SDK für die gewünschte Plattform nicht verfügbar ist, benötigen Sie Anwendung zum Aufrufen der erforderlichen APIs und zum Auslösen der Überprüfungen der Anzeigenmedien selbst.
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, in dem die Video Stitcher API verwendet wird:
PROJECT_NUMBER
|
OAuth-Token |
Das kurzlebige OAuth-Token eines Dienstkontos mit der Rolle „Video Stitcher“:
OAUTH_TOKEN Weitere Informationen zu kurzlebige OAuth-Tokens erstellen |
Netzwerkcode |
Ad Manager-Netzwerkcode für die Anzeigenanfrage:
NETWORK_CODE
|
VOD-Konfigurations-ID |
Die VOD-Konfigurations-ID, die du beim Erstellen des VOD-Streams angegeben hast:
VOD_CONFIG_ID
|
Streamregistrierungsanfrage an Ad Manager senden
Stelle eine POST-Anfrage an den Endpunkt zur Streamregistrierung. Im Gegenzug erhalten Sie Eine JSON-Antwort mit der Stream-ID, die an die Manifestbearbeitung gesendet werden soll und zugehörige Pod Serving API-Endpunkte.
API-Endpunkt
POST: /ondemand/pods/api/v1/network/NETWORK_CODE/stream_registration
Host: dai.google.com
Content-Type: application/json
Pfadparameter
NETWORK_CODE |
Ihr Google Ad Manager 360-Netzwerkcode |
JSON-codierte Textparameter
targeting_parameters
- Eine Reihe optionaler JSON-codierter Targeting-Parameter an.
Antwort (JSON)
media_verification_url |
Die Basis-URL, an die Wiedergabe-Tracking-Ereignisse gesendet werden. 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, unter der Metadaten für Anzeigen-Pods angefordert werden.
METADATA_URL
|
stream_id |
Der String, mit dem die aktuelle Streamsitzung identifiziert wird.
STREAM_ID
|
valid_for |
Die verbleibende Zeit bis zum Ablauf der aktuellen Stream-Sitzung im Format dhms (Tage, Stunden, Minuten, Sekunden). Beispiel:
2h0m0.000s steht für eine Dauer von 2 Stunden.
|
valid_until |
Die Zeit, zu der die aktuelle Stream-Sitzung abläuft, als ISO 8601-Datum/Uhrzeit-String im yyyy-MM-dd'T'hh:mm:ss.sssssssss[+|-]hh:mm -Format.
|
Beispielanfrage (cURL)
curl -X POST \
-H "Content-Type: application/json" \
-d '@request.json' \
https://dai.google.com/ondemand/pods/api/v1/network/21775744923/stream_registration
request.json
{
"targeting_parameters": {
"cust_params": "sport%3Dfootball%26city%3Dnewyork"
}
}
Beispielantwort
{
"media_verification_url": "https://dai.google.com/.../media/",
"metadata_url": "https://dai.google.com/.../metadata",
"stream_id": "6e69425c-0ac5-43ef-b070-c5143ba68541:CHS",
"valid_for": "8h0m0s",
"valid_until": "2023-03-24T08:30:26.839717986-07:00"
}
Bei Fehlern werden Standard-HTTP-Fehlercodes ohne JSON-Antworttext zurückgegeben.
Parsen Sie die JSON-Antwort und speichern Sie die relevanten Werte.
Cloud Video Stitcher-VOD-Sitzung generieren
Stellen Sie eine POST-Anfrage an den Registrierungsendpunkt der VOD-Sitzung. Im Gegenzug eine JSON-Antwort erhalten, die den URI des Streammanifests und die Metadaten enthält, zu Werbeunterbrechungen, Anzeigen und Werbeereignissen.
API-Endpunkt
POST: /v1/projects/PROJECT_NUMBER/locations/LOCATION/vodSessions/
Host: videostitcher.googleapis.com
Authorization: Bearer OAUTH_TOKEN
Content-Type: application/json
Pfadparameter
PROJECT_NUMBER |
Ihre Google Cloud-Projektnummer. |
LOCATION |
Ihre Google Cloud-Region. |
NETWORK CODE |
Ihren Google Ad Manager 360-Netzwerkcode |
JSON-codierte Textparameter
vodConfig |
Ein String mit deiner Projektnummer, deinem Speicherort und der VOD-Konfigurations-ID im folgenden Format:
projects/PROJECT_NUMBER/locations/LOCATION/vodConfigs/VOD_CONFIG_ID
|
adTracking |
Setzen Sie den Wert auf "CLIENT" , um das clientseitige Tracking zu aktivieren. |
gamSettings |
Ein Objekt, das den Netzwerkcode und
stream id mit folgendem Format:
{ "networkCode":"NETWORK_CODE", "streamId":"STREAM_ID" } |
Antwort (JSON)
name |
Der Name der VOD-Sitzung, der die Sitzungs-ID enthält. |
playUri |
Der URI des zusammengefügten Stream-Manifests, das zur Wiedergabe in deinen Videoplayer geladen werden soll.
SESSION_PLAYBACK_URI
|
adTracking |
Derselbe adTracking -Wert, der in der Anfrage an die API gesendet wird
Textkörper.
|
vodConfig |
Derselbe vodConfig -String, der in der Anfrage an die API gesendet wird
Textkörper.
|
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/vodSessions/
request.json
{
"vod_config": "projects/PROJECT_NUMBER/locations/LOCATION/vodConfigs/VOD_CONFIG_ID",
"ad_tracking": "CLIENT",
"gam_settings": {
"network_code": "NETWORK_CODE",
"stream_id": "STREAM_ID"
}
}
Beispielantwort
{
"name": "projects/.../vodSessions/4a703a1f-5f48-4147-9738-c7d4c7b70e7f",
"playUri": "https://videostitcher.googleapis.com/.../manifest.m3u8",
"sourceUri": "https://storage.googleapis.com/.../hls.m3u8",
"adTagUri": "https://pubads.g.doubleclick.net/gampad/ads?...",
"vodConfig": "projects/...",
"assetId": "63b94af2767e17e5c975f8d7d2b15c0d0b0320a17c3d7ac8a3f6d4e0c165b9e5",
"adTracking": "CLIENT",
"gam_settings": {
"network_code": "21775744923",
"stream_id": "6e69425c-0ac5-43ef-b070-c5143ba68541:CHS"
}
}
Nachdem die Antwort empfangen wurde, kannst du den mit Anzeigen zusammengefügten Livestream abspielen, indem du auf den URI aus dem Feld playUri
des Antwortobjekts verweist.
Metadaten für Anzeigen-Pods von Ad Manager anfordern
Sende eine GET-Anfrage an die metadata_url
, die du bei der Registrierung deines Streams in Ad Manager erhalten hast. Dieser Schritt muss erfolgen, nachdem Sie das Dokument
Manifest aus Wiedergabe-URI angehängt.
Du erhältst ein JSON-Objekt, das die Werbeunterbrechungen, Anzeigen und Anzeigenereignisse des Streams beschreibt.
API-Endpunkt
GET: METADATA_URL
Host: dai.google.com
Antwort (JSON)
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 einer Anzeigenmedium-ID, die in den ID3-Metadaten des Streams enthalten ist, oder, im Fall von Fortschrittsereignissen, aus der gesamten Anzeigenmedium-ID. Jeder Wert ist ein
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
Eigenschaften:
|
ad_breaks |
Eine Reihe von Schlüssel/Wert-Paaren, die auftretende Werbeunterbrechungen beschreiben
im Stream erscheinen können. Jeder Schlüssel ist eine Werbeunterbrechungs-ID. Jeder Wert ist ein Objekt mit den folgenden Properties:
|
Beispielanfrage (cURL)
curl METADATA_URL
Beispiel für eine JSON-Antwort
{
"tags":{
"google_5555555555":{
"ad":"0000229834_ad1",
"ad_break_id":"0000229834",
"type":"firstquartile"
},
"google_1234567890123456789":{
"ad":"0000229834_ad1",
"ad_break_id":"0000229834",
"type":"progress"
},
...
},
"ads":{
"0000229834_ad1":{
"ad_break_id":"0000229834",
"position":1,
"duration":15,
"clickthrough_url":"https://.../",
...
},
...
},
"ad_breaks":{
"0000229834":{
"type":"mid",
"duration":15,
"ads":1
},
...
}
}
Speichere diese Werte, um sie mit getakteten Metadatenereignissen in deinem Videostream zu verknüpfen.
ID3-Ereignisse erfassen und Wiedergabeereignisse protokollieren
So überprüfen Sie, ob bestimmte Ereignisse in einem Videostream aufgetreten sind: Schritte zur Verarbeitung von ID3-Ereignissen:
- Speichere die Medienereignisse in einer Warteschlange und speichere jede Medien-ID zusammen mit ihrem Zeitstempel, sofern sie vom Player angezeigt wird.
- Prüfe bei jeder Aktualisierung durch den Player oder in einem festgelegten Intervall (500 ms empfohlen) die Warteschlange der Medienereignisse auf kürzlich wiedergegebene Ereignisse, indem du die Ereigniszeitstempel mit der Wiedergabeposition vergleichst.
- 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. Damit möchten wir Verhindern, dass vor dem ID3-Ereignis Pings zur Überprüfung von Ereignissen gesendet werden kommt. 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. Senden Sie diese Ereignisse nicht an den Endpunkt der Medienüberprüfung, um HTTP-Anfragen zu vermeiden. Fehlercode angezeigt. 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 ID des Anzeigenmediums, wie sie in den ID3-Metadaten des Streams angezeigt wird:
AD_MEDIA_ID
|
Erwartete Rückgabewerte
HTTP/1.1 204 No Content |
Erfolgreiche leere Antwort. |
HTTP/1.1 404 Not Found |
Die Bestätigungs-ID für Medien 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
Bei Verwendung der API in WebViews gelten die folgenden Einschränkungen in Bezug auf Ausrichtung hinzufügen:
- UserAgent: Der User-Agent-Parameter wird als browserspezifischer Wert übergeben. statt auf die zugrunde liegende Plattform.
- 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