Inserire annunci utilizzando il reindirizzamento dei segmenti

Questa guida illustra come configurare il manipolatore del manifest per richiedere segmenti di annunci o slate utilizzando il metodo segmento pod.

Seleziona un protocollo di streaming:

Prerequisiti

Prima di continuare, devi configurare un evento live streaming per il tipo di inserimento di annunci dinamici (DAI) Reindirizzamento pubblicazione pod e i profili di codifica. Per configurare un evento live streaming, scegli uno dei seguenti metodi:

Dopo aver configurato l'evento di live streaming, recupera i profili di codifica dell'evento dall'interfaccia utente o dall'API di Ad Manager chiamando il metodo DaiEncodingProfileService.getDaiEncodingProfilesByStatement.

Recuperare lo stream di contenuti

Quando un utente seleziona un evento di live streaming, l'app client invia una richiesta di streaming a Google Ad Manager. Nella risposta dello stream, l'app estrae l'ID sessione DAI di Google e i metadati da includere nella richiesta del manifest dello stream.

L'esempio seguente trasmette un ID sessione Google DAI a un manipolatore di manifest:

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

Quando elabori la richiesta di riproduzione dei contenuti video, memorizza l'ID sessione Google DAI e CUSTOM_ASSET_KEY dalla richiesta per prepararti all'inserimento degli annunci.

Identificare i segmenti di interruzione pubblicitaria e inserire le discontinuità

Durante l'elaborazione di ogni manifest delle varianti, identifica i tag EXT-X-CUE-IN e EXT-X-CUE-OUT nel flusso, che indicano l'inizio e la fine di una pausa pubblicitaria.

Sostituisci i tag EXT-X-CUE-IN e EXT-X-CUE-OUT con gli elementi EXT-X-DISCONTINUITY per consentire al video player client di passare da contenuti e annunci.

Il seguente file manifest di esempio sostituisce i tag EXT-X-CUE-IN e EXT-X-CUE-OUT:

#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

L'esempio seguente mostra un manifest sostituito:

#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

I segmenti degli annunci DAI di Google non sono criptati. Se i tuoi contenuti sono criptati, rimuovi la crittografia inserendo l'elemento EXT-X-KEY:METHOD=NONE prima del primo segmento pubblicitario di ogni interruzione pubblicitaria. Al termine dell'interruzione pubblicitaria, aggiungi di nuovo la crittografia inserendo un EXT-X-KEY appropriato.

Tieni traccia dell'ora di inizio, della durata e dell'indice della prossima interruzione pubblicitaria.

Generare un token HMAC (Hash-based Message Authentication Code)

Ogni richiesta di segmento effettuata utilizzando la pubblicazione di pod di reindirizzamento dei segmenti deve includere un token firmato con HMAC per l'autenticazione.

Calcola questo token una volta per interruzione pubblicitaria e condividilo in tutte le sessioni di streaming.

Raccogliere i parametri del token

Per compilare il corpo del token, raccogli i seguenti dati dall'interruzione pubblicitaria corrente:

Parametri token
custom_asset_key Obbligatorio La chiave asset personalizzata del live streaming di Google Ad Manager.
cust_params Facoltativo Parametri di targeting personalizzato. Leggi i cust_params.
exp Obbligatorio Timestamp di scadenza del token attuale in secondi.
network_code Obbligatorio Il codice di rete Ad Manager 360.
pod_id Obbligatorio Identificatore dell'interruzione pubblicitaria. Un numero intero a partire da 1. Per ogni interruzione pubblicitaria, questo identificatore aumenta di uno.

Questo valore deve essere lo stesso per tutti gli utenti che visualizzano la stessa interruzione pubblicitaria nell'evento corrente.

pd Obbligatorio, tranne per gli eventi con interruzioni pubblicitarie senza durata abilitate. La durata in millisecondi dell'interruzione pubblicitaria. Indicato come ad_pod_duration.
scte35 Facoltativo Segnale SCTE-35 con codifica Base64. Google DAI copia sempre il segnale nella pausa pubblicitaria creata, anche se il segnale non è corretto. Se è errato, ricevi un messaggio nell'intestazione HTTP X-Ad-Manager-Dai-Warning nella risposta e il segnale continua a creare un'interruzione pubblicitaria. Per informazioni dettagliate su come DAI utilizza il segnale SCTE-35, consulta gli indicatori pubblicitari supportati.

Crea stringa del token

Per creare una stringa token, elenca ogni parametro in ordine alfabetico, nel formato NAME=VALUE, con ogni coppia nome-valore separata da un carattere tilde ~.

Per i parametri facoltativi non utilizzati, utilizza una stringa vuota come valore o rimuovi completamente il parametro.

L'esempio seguente formatta una stringa di token:

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

Generare la firma HMAC

La firma HMAC è un hash SHA-256 della stringa del token in formato esadecimale. La chiave segreta è la chiave di autenticazione HMAC associata al tuo evento di live streaming in Google Ad Manager.

Stringa token di firma

Dopo aver generato la firma HMAC, aggiungila alla stringa del token nel seguente formato:

~hmac=HMAC_SIGNATURE

Codifica stringa token

Per trasmettere il token come parametro URL, codifica l'URL per sicurezza.

L'esempio seguente genera un token HMAC firmato e codificato in cui i parametri opzionali non utilizzati sono stringhe vuote:

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

L'esempio seguente genera un token HMAC firmato e codificato senza parametri opzionali non utilizzati:

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

Creare URL di segmenti pubblicitari

Sostituisci ogni segmento di contenuti tra i tag EXT-X-DISCONTINUITY con un URL che rimanda al metodo del segmento del pod di annunci.

L'esempio seguente assembla un segmento di pod pubblicità. Tieni presente che i segmenti di annunci utilizzano un indice basato su zero:

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

Il seguente esempio inserisce i segmenti del pod di annunci nel manifest:

#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

(Facoltativo) Pianifica un'interruzione pubblicitaria

Per migliorare il tasso di riempimento, invia una notifica di interruzione pubblicitaria anticipata (EABN) con la durata del pod pubblicitario, i parametri di targeting personalizzati e i dati dei segnali SCTE-35. Per maggiori dettagli, vedi Inviare notifiche di interruzione pubblicitaria anticipata.