Dynamic Ad Insertion API für Livestreams

Mit der Google DAI API können Sie Streams, die für die dynamische Anzeigenbereitstellung von Google aktiviert sind, in Umgebungen implementieren, in denen die Implementierung des IMA SDK nicht unterstützt wird. Wir empfehlen Ihnen, weiterhin IMA auf Plattformen, auf denen das IMA SDK unterstützt wird.

Wir empfehlen die Verwendung der DAI API auf den folgenden Plattformen:

  • Samsung Smart-TV (Tizen)
  • LG TV
  • HbbTV
  • Xbox (JavaScript-Apps)
  • KaiOS

Die API unterstützt die grundlegenden Funktionen, die vom IMA DAI SDK bereitgestellt werden. Für zur Kompatibilität oder zu unterstützten Funktionen, Ihren Google Account Manager.

DAI API für Livestreams implementieren

Die DAI API unterstützt lineare (LIVE-)Streams, für die sowohl HLS- als auch DASH-Protokolle verwendet werden. Die in diesem Leitfaden beschriebenen Schritte gelten für beide Protokolle.

Um die API in deine App für Livestreams zu integrieren, musst du Folgendes tun: Schritte:

1. Stream anfordern

Wenn Sie einen Livestream von der DAI API anfordern möchten, führen Sie einen POST-Aufruf an den Stream aus Endpunkt. Die JSON-Antwort enthält das Streammanifest sowie zugehörige DAI API-Endpunkte und -Werte.

Beispiel für einen Anfragetext

https://dai.google.com/linear/v1/dash/event/0ndl1dJcRmKDUPxTRjvdog/stream

{
  key1 : "value1",
  stream_parameter1 : "value2"
}

Beispiel für einen Antworttext

{
"stream_id":"c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL",
"stream_manifest":"https://dai.google.com/linear/dash/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/manifest.mpd",
"media_verification_url":"https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/",
"metadata_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata",
"session_update_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session",
"polling_frequency":10
}

Fehlerantwort

Bei Fehlern werden Standard-HTTP-Fehlercodes ohne JSON-Antwort zurückgegeben Textkörper.

Parsen Sie die JSON-Antwort und speichern Sie die folgenden Werte:

stream_id
Mit diesem Wert kann der zurückgegebene Stream identifiziert werden.
stream_manifest
Diese URL wird zur Streamwiedergabe an Ihren Mediaplayer übergeben.
media_verification_url
Diese URL ist der Basisendpunkt für das Tracking von Wiedergabeereignissen.
metadata_url
Mit dieser URL werden regelmäßig Informationen zum anstehenden Stream abgerufen Ereignisse zu erfassen.
session_update_url
Diese URL wird verwendet, um Streamanfrageparameter zu aktualisieren, die während der ersten Streamanfrage aufzurufen. Beachten Sie, dass die Parameter dieser Anfrage alle Parameter ersetzen, für den vorherigen Stream festgelegt haben.
polling_frequency
Die Häufigkeit in Sekunden, mit der aktualisierte AdBreak-Metadaten vom DAI API verwenden.

2. Neue Metadaten für Werbeunterbrechungen abfragen

Stellen Sie einen Timer ein, um neue AdBreak-Metadaten mit der Häufigkeitsabfrage abzufragen. Metadaten-URL. Falls in der Streamantwort nicht angegeben, wird die empfohlene Standardeinstellung Intervall beträgt 10 Sekunden.

Beispiel für einen Anfragetext

https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata

Beispiel für einen Antworttext

{
   "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/pcs/click?xai=AKAO...\u0026adurl=http://google.com",
         "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
      },....
   }
}

3. 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 (falls vom Player angezeigt)
  2. Bei jedem Update über den Player oder in einer bestimmten Häufigkeit (empfohlen) 500 ms), suchen Sie in der Medienereignis-Warteschlange nach kürzlich wiedergegebenen Ereignissen 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 gespeicherten Tags nur ein Präfix der Medien-ID enthalten, sodass eine genaue Übereinstimmung nicht möglich ist.
  4. „Fortschritt“ verwenden um festzustellen, ob sich ein Nutzer in einer Werbeunterbrechung befindet. Senden Sie diese Ereignisse nicht an den Endpunkt der Medienüberprüfung. Anderes Ereignis die Medien-ID an den Endpunkt der Medienüberprüfung anhängen und eine GET-Anfrage Anfrage zur Verfolgung der Wiedergabe.
  5. Entferne das Medienereignis aus der Warteschlange.

Beispiel für einen Anfragetext

https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/

Beispielantworten

Accepted for asynchronous verification - HTTP/1.1 202 Accepted
Successful empty response - HTTP/1.1 204 No Content
Media verification not found - HTTP/1.1 404 Not Found
Media verification sent by someone else - HTTP/1.1 409 Conflict

Sie können Tracking-Ereignisse unter Stream-Aktivitäten Monitoring:

4. Livestream-Sitzungsparameter aktualisieren

Sie können Ihre Sitzungsparameter anpassen, nachdem ein Stream erstellt. Senden Sie dazu eine Anfrage an die URL für die Sitzungsaktualisierung.

Beispiel für einen Anfragetext

https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session

{
  key1 : "value1",
  stream_parameter1 : "value2"
}

Beispiel für einen Antworttext

Successful response would be to look for - HTTP/1.1 200

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 ordnungsgemäß übergeben, was die Funktionen des die folgenden Funktionen:
    • Frequency Capping
    • Sequenzielle Anzeigenrotation
    • Zielgruppensegmentierung und -ausrichtung

Best Practices

Beachten Sie, dass der Metadatenendpunkt für Livestream-Indexe auf dem des entsprechenden ID3-Tags an. Dies ist so konzipiert, dass die Verwendung des Metadatenendpunkt, um alle Verifizierungsknoten sofort anzupingen.

Zusätzliche Ressourcen