Erste Schritte mit SGAI

Bei der servergestützten Anzeigenbereitstellung (Server-Guided Ad Insertion, SGAI) wird ein Anzeigen-Pod-Manifest bereitgestellt, das für das Stitching auf Clientgeräten bereit ist. Wenn Sie die dynamische Anzeigenbereitstellung für Pod-Auslieferung in Ihrem Google Ad Manager-Netzwerk aktiviert haben, können Sie SGAI verwenden. Wenn Sie die dynamische Anzeigenbereitstellung für Pod-Auslieferungen nicht aktiviert haben, wenden Sie sich an Ihren Account Manager.

Bei der SGAI werden die Endpunkte der Pod Serving API verwendet, um einen Stream zu erstellen und Anzeigenmetadaten sowie die Manifeste des Anzeigen-Pods abzurufen.

Wenn Sie einen Manifest-Manipulationsserver haben, können Sie die Manifest-URLs des Anzeigen-Pods generieren und Anzeigenmarkierungen einfügen, die die Manifest-Informationen des Anzeigen-Pods gemäß Ihrer bevorzugten Spezifikation in Ihren Inhaltsstream einfügen.

Alternativ kannst du eine Werbeunterbrechung mit einem anderen Mechanismus als den Anzeigenmarkierungen im Streammanifest planen. In diesen Fällen kann Ihre App auf andere Ereignisse achten, z. B. auf Nutzerinteraktionen mit dem Stream, der App selbst oder einer Push-Benachrichtigung. Nach diesen Ereignissen kann die App die Manifest-URLs des Anzeigen-Pods generieren und den Player anweisen, mit dem Laden des Manifests des Anzeigen-Pods zu beginnen.

Vorbereitung

Bevor Sie fortfahren, benötigen Sie Folgendes:

Empfehlungen befolgen

Bevor du die Manifest-URL des Anzeigen-Pods generierst, empfehlen wir dir, die Early Ad Break Notification API (EABN API) aufzurufen, um die voraussichtliche Dauer, die Ausrichtungsinformationen und andere Parameter der einzelnen Werbeunterbrechungen anzugeben.

Rufe für Produktions- und Teststreams die EABN API auf, insbesondere wenn dein Anzeigennetzwerk programmatische Kampagnen hat. Weitere Informationen finden Sie unter Funktionen und Richtlinien für Programmatic Direct.

Anfrage zur Streamregistrierung stellen

Wenn ein Nutzer einen Inhaltsstream in deiner Videoplayer-App startet, sendest du eine Streamregistrierungsanfrage mit Targeting-Parametern, um eine Streamingsitzung in Ad Manager zu erstellen. Weitere Informationen zum Senden einer Streamregistrierungsanfrage findest du unter Methode:stream. Anschließend erhalten Sie Antwortdaten von der Anfrage.

In den folgenden Beispielen wird eine Streamregistrierungsanfrage gestellt:

  • Anfrage:
authority: dai.google.com
method: POST
path: /ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream
scheme: https
content-type: application/x-www-form-urlencoded

cust_params=customID%253D1543216789%2526anotherKey%253Dvalue1%252Cvalue2
  • Response:
{
    "manifest_format": "hls",
    "media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
    "metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
    "polling_frequency": 10,
    "session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
    "stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL"
}
  • Befehlszeile:
curl \
-H "Host: dai.google.com" \
-H "content-type: application/x-www-form-urlencoded" \
  --data-binary "cust_params=channelID%253D1543216789%2526anotherKey%253Dvalue1%252Cvalue2" \
  --compressed "https://dai.google.com/ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream"
  • Ausgabe:
{
    "manifest_format": "hls",
    "media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
    "metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
    "pod_manifest_url": "https://dai.google.com/linear/pods/v1/hls/event/TFyZF0IoSpqvCLtLv8JdCw/pod/$pod-id$.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db%3ATUL",
    "polling_frequency": 10,
    "session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
    "stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL"
}
  • Mit der Fetch API:
const response = await fetch("https://dai.google.com/ssai/pods/api/v1/network/51636543/custom_asset/hls-podserving-manifest/stream", {
  "headers": {
    "content-type": "application/x-www-form-urlencoded",
  },
  "body": "cust_params=channelID%3D1543216789%26anotherKey%3Dvalue1%2Cvalue2",
  "method": "POST",
});

  const stream = await response.json();
  console.log(stream);
  • Console-Log:
{
    "stream_id": "24fd4e7c-95a0-42be-8874-00625139b9db:TUL",
    "media_verification_url": "https://dai.google.com/view/p/service/linear/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/loc/TUL/network/51636543/event/TFyZF0IoSpqvCLtLv8JdCw/media/",
    "metadata_url": "https://dai.google.com/linear/pods/hls/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/metadata",
    "session_update_url": "https://dai.google.com/linear/v1/pa/event/TFyZF0IoSpqvCLtLv8JdCw/stream/24fd4e7c-95a0-42be-8874-00625139b9db:TUL/session",
    "polling_frequency": 10,
    "pod_manifest_url": "https://dai.google.com/linear/pods/v1/hls/event/TFyZF0IoSpqvCLtLv8JdCw/pod/$pod-id$.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db%3ATUL",
    "manifest_format": "hls"
}

Metadaten für Werbeunterbrechungen abfragen

Nachdem du einen Antrag auf Streamregistrierung gestellt hast, solltest du die Anzeigenmetadaten abfragen. Für die Abfrage legen Sie einen Timer mithilfe des polling_frequence in der Streamantwort im Registrierungsschritt fest, um die metadata aufzurufen. Für jede Umfrage erhalten Sie möglicherweise eine Teilliste der Anzeigen mit Metadaten, sobald diese verfügbar sind.

Manifest-URL des Anzeigen-Pods generieren

Erstelle eine URL für die Pod-Ressource der Pod Serving API. Übergeben Sie die URL dann an einen Videoplayer, um mit dem Laden des Anzeigen-Pods zu beginnen.

Das folgende Beispiel zeigt die Struktur der Manifest-URL des Anzeigen-Pods:

https://dai.google.com/linear/pods/v1/hls/network/51636543/custom_asset/pod_serving_hls_manifest_mp4/ad_break_id/ab101.m3u8?stream_id=24fd4e7c-95a0-42be-8874-00625139b9db:TUL&pd=120000

Du kannst die Manifest-URL-Parameter des Anzeigen-Pods anhand der Informationen zur Werbeunterbrechung berechnen, die aus dem Videoplayer oder einer Serverbenachrichtigung abgerufen werden. Informationen zu den Anforderungen dieser Parameter finden Sie unter Methode: Pod-Manifest.

Manifest des Anzeigen-Pods abspielen

Starte in der Videoplayer-App des Clients die Wiedergabe des Inhaltsstreams mit einem primären Videoplayer und folge der Dokumentation deines Videoplayers zum Einhalten des Wiedergabe- und Anzeigenzeitplans, falls zutreffend.

Wenn du die Manifest-URLs des Anzeigen-Pods generierst und diese serverseitig in das Manifest einfügst, musst du die anstehenden Werbeunterbrechungsereignisse des Videoplayers beobachten und während jeder Werbeunterbrechung ID3-Ereignisse abonnieren. Wenn du die Werbeunterbrechungsereignisse clientseitig planst, abonniere die ID3-Ereignisse beim Erstellen.

Impressionen und Anzeigenereignisse erfassen

Wenn ein Videoplayer den Anzeigen-Pod wiedergibt und ID3-getaktete Metadaten erkennt, werden Anzeigenereignisse überwacht, die vom Videoplayer ausgelöst werden, und verarbeitet, um Pings zur Medienüberprüfung zu senden.