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:
- Ad Manager-Benutzeroberfläche:Livestream für die dynamische Anzeigenbereitstellung einrichten
- Ad Manager API:Verwenden Sie eine Clientbibliothek, um die Methode
LiveStreamEventService.createLiveStreamEvents
aufzurufen. Setzen Sie den ParameterLiveStreamEvent.dynamicAdInsertionType
aufPOD_SERVING_REDIRECT
.
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.