Benutzerdefinierte Integration verwenden

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:
  • ad: Die ID der Anzeige, die das Medienereignis der Anzeige enthält.
  • ad_break_id: Die ID der Werbeunterbrechung, die das Anzeigen-Medienereignis enthält.
  • type: Der Typ des Anzeigenmedienereignisses. Werte können einen der folgenden Werte haben:
    • start: Die Anzeige wurde gestartet.
    • firstquartile – Die Anzeige ist zu 25 % fertig.
    • midpoint: Die Anzeige ist zu 50% fertig.
    • thirdquartile – Die Anzeige ist zu 75 % fertig.
    • complete – Die Anzeige ist zu Ende.
    • progress: Wird jede Sekunde ausgelöst, während eine Anzeige wiedergegeben wird.
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_break_id: Die ID der Werbeunterbrechung, die das Anzeigen-Medienereignis enthält.
  • position: Position der Anzeige innerhalb der Werbeunterbrechung. hat die erste Anzeige in einer Werbeunterbrechung 1
  • duration: Dauer der Anzeige als Gleitkommazahl Sekunden.
  • title: der Titel der Anzeige gemäß Definition in VAST.
  • description: die Beschreibung der Anzeige, wie im VAST-Dokument definiert.
  • ad_system: das in der VAST-Definition definierte Anzeigensystem
  • ad_system: die Anzeigen-ID, wie im VAST-Dokument definiert.
  • ad_system: Die Creative-ID, wie im VAST-Dokument definiert.
  • clickthrough_url: Die URL, die geöffnet werden soll, wenn ein Nutzer interagiert mit der Anzeige.
  • universal_ad_id: ein Objekt, das das universelle Anzeigen-ID, wie in der VAST-Definition definiert.
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:
  • type: Der Typ der Werbeunterbrechung. Die Werte sind einer der folgenden: Folgendes:
    • pre: Stellt eine Pre-Roll-Anzeige dar.
    • mid: Stellt eine Mid-Roll-Anzeige dar.
    • post: Steht für eine Post-Roll-Anzeige.
  • duration: Dauer der Werbeunterbrechung in eine Gleitkommazahl in Sekunden.
  • expected_duration: Die erwartete Dauer der Werbeunterbrechung in Gleitkommasekunden.
  • ads: Die Anzahl der Anzeigen in der Werbeunterbrechung.

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:

  1. Speichern Sie die Medienereignisse in einer Warteschlange und speichern Sie jede Medien-ID samt ihrer Zeitstempel, sofern vom Player angezeigt.
  2. 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.
  3. 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.
  4. 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.
  5. 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