Anzeigen mit Segmentweiterleitung einfügen

In diesem Leitfaden wird beschrieben, wie Sie Ihre Manifestbearbeitung so konfigurieren, dass Anzeigen- oder Slate-Segmente mit der Methode Anzeigen-Pod-Segment angefordert werden.

Wählen Sie ein Streamingprotokoll aus:

Vorbereitung

Bevor Sie fortfahren, müssen Sie eine Livestream-Veranstaltung für den DAI-Typ Pod-Serving-Weiterleitung und Codierungsprofile einrichten. Wählen Sie eine der folgenden Methoden aus, um ein Livestream-Event einzurichten:

Nachdem Sie das Livestream-Ereignis eingerichtet haben, rufen Sie die Codierungsprofile des Ereignisses über die Ad Manager-Benutzeroberfläche oder die API mit der Methode DaiEncodingProfileService.getDaiEncodingProfilesByStatement ab.

Contentstream abrufen

Wenn ein Nutzer ein Livestream-Event auswählt, sendet die Client-App eine Streamanfrage an Google Ad Manager. In der Streamantwort extrahiert die App die Google DAI-Sitzungs-ID und die Metadaten, die in die Streammanifestanfrage aufgenommen werden sollen.

Im folgenden Beispiel wird eine Google DAI-Sitzungs-ID an einen Manifest-Manipulator übergeben:

https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY

Speichern Sie beim Verarbeiten der Anfrage zur Videocontentwiedergabe die Google DAI-Sitzungs-ID und CUSTOM_ASSET_KEY aus der Anfrage, um die Anzeigenzusammenführung vorzubereiten.

Segmente für Werbeunterbrechungen identifizieren und Diskontinuitäten einfügen

Suchen Sie beim Verarbeiten jedes Variantenmanifests nach den Tags EXT-X-CUE-IN und EXT-X-CUE-OUT in Ihrem Stream, die den Beginn und das Ende einer Werbeunterbrechung angeben.

Ersetzen Sie die Tags EXT-X-CUE-IN und EXT-X-CUE-OUT durch die EXT-X-DISCONTINUITY-Elemente, damit der Client-Videoplayer zwischen Inhalten und Anzeigen wechseln kann.

Im folgenden Beispielmanifest werden die Tags EXT-X-CUE-IN und EXT-X-CUE-OUT ersetzt:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-CUE-OUT:15.000
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXT-X-CUE-IN
#EXTINF:5.000,
contentorigin.com/6.ts
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

Das folgende Beispiel zeigt ein ersetzt Manifest:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXTINF:5.000,
#EXT-X-DISCONTINUITY
{... Insert ad segments here ...}
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/6.mp4
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

Google DAI-Anzeigensegmente sind nicht verschlüsselt. Wenn Ihre Inhalte verschlüsselt sind, entfernen Sie die Verschlüsselung, indem Sie das EXT-X-KEY:METHOD=NONE-Element vor dem ersten Anzeigensegment jeder Werbeunterbrechung einfügen. Fügen Sie am Ende der Werbeunterbrechung die Verschlüsselung wieder hinzu, indem Sie ein entsprechendes EXT-X-KEY einfügen.

Behalte die Startzeit, die Dauer und den Index der bevorstehenden Werbeunterbrechung im Blick.

HMAC-Token (Hash-based Message Authentication Code) generieren

Jede Segmentanfrage, die über die Bereitstellung von Segmentumleitungs-Pods erfolgt, muss ein HMAC-signiertes Token zur Authentifizierung enthalten.

Berechne dieses Token einmal pro Werbeunterbrechung und gib es für alle Streamsitzungen weiter.

Token-Parameter erfassen

Um den Token-Body zu füllen, müssen Sie die folgenden Informationen aus der aktuellen Werbeunterbrechung abrufen:

Tokenparameter
custom_asset_key Erforderlich Der benutzerdefinierte Asset-Schlüssel für Livestreams aus Google Ad Manager.
cust_params Optional Benutzerdefinierte Targeting-Parameter. cust_params ansehen.
exp Erforderlich Ablaufzeitstempel für das aktuelle Token in Sekunden.
network_code Erforderlich Der Ad Manager 360-Netzwerkcode.
pod_id Erforderlich Kennung für die Werbeunterbrechung. Eine Ganzzahl, die bei 1 beginnt. Für jede Werbeunterbrechung wird diese Kennung um eins erhöht.

Dieser Wert muss für alle Nutzer, die sich dieselbe Werbeunterbrechung im aktuellen Ereignis ansehen, gleich sein.

pd Erforderlich, außer bei Ereignissen, bei denen Werbeunterbrechungen ohne Dauer aktiviert sind. Die Dauer der Werbeunterbrechung in Millisekunden. Als ad_pod_duration bezeichnet.
scte35 Optional Base64-codiertes SCTE-35-Signal. Google DAI kopiert das Signal immer in die erstellte Werbeunterbrechung, auch wenn es falsch ist. Wenn die Angabe falsch ist, erhalten Sie in der Antwort eine Meldung im X-Ad-Manager-Dai-Warning-HTTP-Header und das Signal führt weiterhin zu einer Werbeunterbrechung. Weitere Informationen zur Verwendung des SCTE-35-Signals bei der dynamischen Anzeigenbereitstellung finden Sie hier.

Token-String erstellen

Um einen Token-String zu erstellen, listen Sie jeden Parameter in alphabetischer Reihenfolge im Format NAME=VALUE auf. Trennen Sie die einzelnen Name-Wert-Paare durch eine Tilde (~).

Verwenden Sie für nicht verwendete optionale Parameter einen leeren String als Wert oder entfernen Sie den Parameter vollständig.

Im folgenden Beispiel wird ein Token-String formatiert:

custom_asset_key=CUSTOM_ASSET_STRING~exp=EXPIRATION~network_code=NETWORK_CODE~pd=POD_DURATION~pod_id=AD_POD_INDEX~scte35=SCTE35_MESSAGE

HMAC-Signatur generieren

Die HMAC-Signatur ist ein SHA-256-Hash des Token-Strings im HEX-Format. Der geheime Schlüssel ist der HMAC-Authentifizierungsschlüssel, der mit Ihrem Livestream-Event in Google Ad Manager verknüpft ist.

Token-String signieren

Hängen Sie die HMAC-Signatur nach dem Generieren in folgendem Format an den Tokenstring an:

~hmac=HMAC_SIGNATURE

Token-String codieren

Wenn Sie das Token als URL-Parameter übergeben möchten, codieren Sie die URL aus Sicherheitsgründen.

Im folgenden Beispiel wird ein signiertes und codiertes HMAC-Token generiert, bei dem nicht verwendete optionale Parameter leere Strings sind:

custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=

Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F

HMAC signature:
86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88

Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=~hmac=86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88

URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~cust_params%3D~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~scte35%3D~hmac%3D86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88

Im folgenden Beispiel wird ein signiertes und codiertes HMAC-Token ohne ungenutzte optionale Parameter generiert:

custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g3~exp=1489680000~network_code=6062~pd=180000~pod_id=5

Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F

HMAC signature:
6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9

Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~hmac=6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9

URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~hmac%3D6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9

URLs für Anzeigensegmente erstellen

Ersetzen Sie jedes Inhaltssegment zwischen den EXT-X-DISCONTINUITY-Tags durch eine URL, die auf die Methode für das Anzeigengruppen-Segment verweist.

Im folgenden Beispiel wird ein Ad-Pod-Segment zusammengestellt. Anzeigensegmente verwenden einen nullbasierten Index:

https://dai.google.com/linear/pods/v1/seg/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=AD_SEGMENT_DURATION&pd=AD_BREAK_DURATION&stream_id=SESSION_ID&auth-token=HMAC

Im folgenden Beispiel werden die Ad-Pod-Segmente in das Manifest eingefügt:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.00,
contentorigin.com/1.ts
#EXTINF:5.00,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=5000&so=0&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/1.ts?sd=5000&so=5000&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/2.ts?sd=5000&so=10000&pd=15000&stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
contentorigin.com/6.mp4
#EXTINF:5.00,
contentorigin.com/7.mp4
#EXTINF:5.00,
contentorigin.com/8.mp4

Optional: Werbeunterbrechung planen

Um die Ausfüllrate zu erhöhen, senden Sie eine Early Ad Break Notification (EABN) mit der Dauer des Ad-Pods, benutzerdefinierten Targeting-Parametern und SCTE-35-Signaldaten. Weitere Informationen finden Sie unter Benachrichtigungen über bevorstehende Werbeunterbrechungen senden.