Einführung in SGAI für Livestreams

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

Bei SGAI verwenden Sie die API-Endpunkte für die Pod-Auslieferung, um einen Stream zu erstellen und Anzeigenmetadaten sowie Manifeste für Anzeigen-Pods abzurufen.

Wenn Sie einen Server zur Manifestbearbeitung haben, können Sie die URLs für das Manifest für Anzeigen-Pods generieren und gemäß Ihren bevorzugten Spezifikationen Anzeigenmarker in Ihren Contentstream einfügen, die die Informationen zum Manifest für Anzeigen-Pods enthalten.

Alternativ können Sie eine Werbeunterbrechung mit einem anderen Mechanismus als den Anzeigenmarkern im Streammanifest planen. In diesen Fällen kann Ihre App auf andere Ereignisse warten, z. B. auf die Nutzerinteraktion mit dem Stream, der App selbst oder einer Push-Benachrichtigung. Nach diesen Ereignissen kann die App die URLs für das Anzeigen-Pod-Manifest generieren und den Player anweisen, das Anzeigen-Pod-Manifest zu laden.

Vorbereitung

Prüfen Sie vor dem Fortfahren, ob Folgendes vorhanden ist:

Empfehlungen befolgen

Bevor Sie die URL für das Manifest für Anzeigen-Pods generieren, empfehlen wir Ihnen, die Early Ad Break Notification (EABN) API aufzurufen, um die erwartete Dauer, Targeting-Informationen und andere Parameter der einzelnen Werbeunterbrechungen anzugeben.

Rufen Sie die EABN API für Produktions- und Teststreams auf, insbesondere wenn Ihr Werbenetzwerk programmatische Kampagnen enthält. Weitere Informationen finden Sie unter Funktionen und Richtlinien für Programmatic Direct.

Anfrage zur Streamregistrierung stellen

Wenn ein Nutzer einen Contentstream in Ihrer Videoplayer-App startet, stellen Sie eine Anfrage zur Streamregistrierung mit Targeting-Parametern, um eine Streamingsitzung in Ad Manager zu erstellen. Weitere Informationen zum Stellen einer Anfrage zur Streamregistrierung finden Sie unter Methode:stream. Anschließend erhalten Sie Antwortdaten von der Anfrage.

In den folgenden Beispielen wird eine Anfrage zur Streamregistrierung gestellt:

Nur-Text-HTTP

  • 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
  • Antwort:
{
    "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"
}

Shell

  • 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"
}

JavaScript

  • Fetch API verwenden:
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-Protokoll:
{
    "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 Sie eine Anfrage zur Streamregistrierung gestellt haben, fragen Sie die Anzeigenmetadaten ab. Dazu legen Sie mit polling_frequence in der Streamantwort im Registrierungsschritt einen Timer fest, um die Anzeigen metadatenabzurufen. Bei jeder Abfrage erhalten Sie möglicherweise eine Teilliste von Anzeigen mit Metadaten, sobald diese verfügbar sind.

URL für das Anzeigen-Pod-Manifest generieren

Erstellen Sie eine URL für die Pod-Ressource der Pod-Auslieferungs-API. Übergeben Sie die URL anschließend an einen Videoplayer, um das Laden des Anzeigen-Pods zu starten.

Das folgende Beispiel zeigt die Struktur der URL für das Anzeigen-Pod-Manifest:

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

Sie können die Parameter für die URL für das Anzeigen-Pod-Manifest anhand der Informationen zu Werbeunterbrechungen berechnen, die vom Videoplayer oder einer Serverbenachrichtigung abgerufen wurden. Informationen zu den Anforderungen für diese Parameter finden Sie unter Methode: Manifest für Werbe-Pods.

Manifest für Anzeigen-Pods wiedergeben

Starten Sie in der Client-Videoplayer-App die Wiedergabe des Contentstreams mit einem primären Videoplayer und folgen Sie gegebenenfalls der Dokumentation Ihres Videoplayers zur Beobachtung der Wiedergabe und des Anzeigenzeitplans.

Wenn Sie die URLs für das Manifest für Anzeigen-Pods generieren und serverseitig in das Manifest einfügen, beobachten Sie die bevorstehenden Ereignisse für Werbeunterbrechungen des Videoplayers und abonnieren Sie während der Wiedergabe jeder Werbeunterbrechung ID3-Ereignisse. Wenn Sie die Ereignisse für Werbeunterbrechungen clientseitig planen, abonnieren Sie die ID3-Ereignisse bei der Erstellung.

Impressionen und Anzeigenereignisse melden

Wenn ein Videoplayer den Anzeigen-Pod wiedergibt und zeitgesteuerte ID3-Metadaten findet, warten Sie auf Anzeigenereignisse die der Videoplayer auslöst, und verarbeiten Sie sie, um Pings zur Medienbestätigung zu senden.