Dynamic Ad Inserting API für VOD-Streams

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 spezifische Fragen zur Kompatibilität oder zu unterstützten Funktionen haben, wenden Sie sich an Ihren Google Account Manager.

DAI API für VOD-Streams implementieren

Die DAI API unterstützt VOD-Streams, die sowohl HLS- als auch DASH-Protokolle verwenden. Die Schritte die in diesem Leitfaden beschrieben werden, für beide Protokolle gelten.

Führen Sie die folgenden Schritte aus, um die API in Ihre Anwendung für VOD-Streams zu integrieren: folgenden Schritten:

  1. Fordern Sie einen Stream an, indem Sie einen POST-Aufruf an den Stream-Endpunkt senden:

    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 einen 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

    Bei Fehlern werden Standard-HTTP-Fehlercodes ohne JSON zurückgegeben. Antworttext.

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

    • stream_id
    • stream_manifest
    • media_verification_url
    • ad_breaks
  3. Warten Sie bei der Medienüberprüfung auf ID3-Ereignisse:

    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) 500ms), suchen Sie in der Medienereignis-Warteschlange nach kürzlich wiedergegebenen Ereignissen die Ereigniszeitstempel mit dem Abspielkopf vergleichen.
    3. Beobachten Sie bei Medienereignissen, bei denen Sie bestätigen, dass sie abgespielt wurden, die Wiedergabe nach durch Anfügen der Medien-ID an den Endpunkt der Medienüberprüfung und 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 unter Stream-Aktivitäten Monitoring:

  4. Optional: Sie können die ad_breaks-Daten aus der Antwort zur Streamerstellung verwenden, um nachzusehen. welche Art von Ereignis ausgelöst wurde.

  5. Entferne das Medienereignis aus der Warteschlange.

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 lautet nicht ordnungsgemäß übergeben wurde, wodurch folgende Funktionen eingeschränkt werden:
    • 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 Methode hat ad_breaks-Informationen im JSON-Format zurückgegeben, um das Ereignis direkt zu suchen, z. B. wie bei Live-Inhalten.

Zusätzliche Ressourcen