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:
- UI di Ad Manager: configura un live streaming per DAI.
- API Ad Manager: utilizza una libreria client per chiamare il metodo
LiveStreamEventService.createLiveStreamEvents
. Imposta il parametroLiveStreamEvent.dynamicAdInsertionType
suPOD_SERVING_REDIRECT
.
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.