Dynamic Ad Inserting API für VOD-Streams

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

Wir empfehlen, die DAI API auf den folgenden Plattformen zu verwenden:

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

Die API unterstützt die grundlegenden Funktionen des IMA DAI SDK. Bei konkreten Fragen zur Kompatibilität oder zu unterstützten Funktionen wenden Sie sich bitte an Ihren Google Account Manager.

DAI API für VOD-Streams implementieren

Die DAI API unterstützt VOD-Streams mit HLS- und DASH-Protokollen. Die in diesem Leitfaden beschriebenen Schritte gelten für beide Protokolle.

Führe die folgenden Schritte aus, um die API in deine Anwendung für VOD-Streams zu integrieren:

  1. Fordern Sie einen Stream mit einem POST-Aufruf an den Stream-Endpunkt an:

    Beispiel für einen Anfragetext:

    https://dai.google.com/ondemand/v1/dash/content/2559737/vid/tos-dash/stream
    
      {
        key1 : "value1",
        stream_parameter1 : "value2"
      }
    

    Beispiel für Antworttext:

    {
       "stream_id":"d32f8920-612a-4d46-8bc7-d73fd6c17c85",
       "total_duration":636.458,
       "content_duration":596.458,
       "valid_for":"8h0m0s",
       "valid_until":"2020-06-04T20:39:41.274707306-07:00",
       "stream_manifest":"https://dai.google.com/ondemand/dash/content/2559737/vid/tos-dash/ATL/streams/d32f8920-612a-4d46-8bc7-d73fd6c17c85/manifest.mpd",
       "media_verification_url":"https://dai.google.com/view/p/service/vod/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/loc/ATL/network/124319096/content/2559737/vid/tos-dash/media/",
       "ad_breaks":[
          {
             "type":"pre",
             "start":0,
             "duration":10,
             "ads":[
                {
                   "seq":1,
                   "duration":10,
                   "title":"External NCA1C1L1 Preroll",
                   "description":"External NCA1C1L1 Preroll ad",
                   "clickthrough_url":"https://dai.google.com/ondemand/v1/dash/content/2474148/vid/bbb-clear/location/ATL/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/videoclick/5489259204425938365",
                   "events":[
                      {
                         "time":0.1,
                         "type":"start"
                      },
                      {
                         "time":2.5,
                         "type":"firstquartile"
                      },
                      {
                         "time":4.75,
                         "type":"midpoint"
                      },
                      {
                         "time":7.5,
                         "type":"thirdquartile"
                      },
                      {
                         "time":9,
                         "type":"complete"
                      }
                   ]
                }
             ]
          },
          {
             "type":"mid",
             "start":45,
             "duration":10,
             "ads":[
                {.... }
                   ]
                }
             ]
          },
          {
             "type":"post",
             "start":626.458,
             "duration":10,
             "ads":[...]
          }
       ]
    }
    

    Fehlerantwort

    Im Falle von Fehlern werden Standard-HTTP-Fehlercodes ohne JSON-Antworttext zurückgegeben.

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

    • stream_id
    • stream_manifest
    • media_verification_url
    • ad_breaks
  3. Warten Sie auf ID3-Ereignisse, um die Medienüberprüfung durchzuführen:

    1. Speichern Sie die Medienereignisse in einer Warteschlange. Speichern Sie dabei jede Medien-ID zusammen mit ihrem Zeitstempel (sofern sie vom Player angezeigt wird).
    2. Prüfen Sie bei jeder Aktualisierung über den Player oder mit einer festgelegten Häufigkeit (empfohlen: 500 ms) die Warteschlange der Medienereignisse auf kürzlich wiedergegebene Ereignisse, indem Sie die Ereigniszeitstempel mit dem Abspielkopf vergleichen.
    3. Verfolgen Sie die Wiedergabe von Medienereignissen, die Sie bestätigt haben. Dazu hängen Sie die Media-ID an den Endpunkt der Medienüberprüfung an und senden eine GET-Anfrage.

    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 in der Überwachung der Streamingaktivitäten überprüfen.

  4. Optional: Verwenden Sie die ad_breaks-Daten aus der Antwort zum Erstellen des Streams, um herauszufinden, welche Art von Ereignis ausgelöst wurde.

  5. Entfernen Sie das Medienereignis aus der Warteschlange.

Beschränkungen

Wenn Sie die API in WebViews verwenden, gelten für das Targeting die folgenden Einschränkungen:

  • UserAgent: Der User-Agent-Parameter wird als browserspezifischer Wert und nicht als die zugrunde liegende Plattform übergeben.
  • rdid, idtype, is_lat: Die Geräte-ID wird nicht korrekt übergeben. Dadurch werden die folgenden Funktionen eingeschränkt:
    • Frequency Capping
    • Sequenzielle Anzeigenrotation
    • Zielgruppensegmentierung und Ausrichtung

Best Practices

Die Zuordnung von ID3-Tags zum entsprechenden Ereignistyp ist bei VOD mühsam. Verwenden Sie die zurückgegebenen ad_breaks-Informationen im JSON-Format, um das Ereignis wie bei Liveinhalten direkt nachzuschlagen.

Weitere Ressourcen