Inserire annunci con metadati di sincronizzazione dei pod di annunci

Questa guida descrive come inserire interruzioni pubblicitarie utilizzando il metodo dei metadati di sincronizzazione dei pod di annunci (ATM) per recuperare la sincronizzazione e la durata precise delle interruzioni pubblicitarie, inclusi gli annunci pre-roll.

Per inserire annunci pre-roll e gestire il ritorno ai contenuti dopo le interruzioni pubblicitarie mid-roll, ti consigliamo di chiamare le seguenti API:

Facoltativamente, per gli eventi di live streaming con elevata concorrenza, ti consigliamo di chiamare Early Ad Break Notification (EABN) API per pianificare le decisioni relative agli annunci prima dell'inizio dell'interruzione pubblicitaria.

Prerequisiti

Per iniziare, devi configurare un evento di live streaming per il tipo di inserimento di annunci dinamici (DAI) Reindirizzamento della pubblicazione di pod. Scegli uno dei seguenti metodi:

Recuperare lo stream di contenuti

Quando un utente seleziona un evento di live streaming, l'app client effettua una richiesta di stream 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 passa un ID sessione DAI di Google 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 DAI di Google e CUSTOM_ASSET_KEY dalla richiesta per prepararti all'unione degli annunci.

Recuperare i metadati di sincronizzazione dei pod di annunci

Per recuperare la sincronizzazione dei pod di annunci:

  1. Genera un token HMAC.
  2. Chiama l'API ATM con il token HMAC.

Richiedere i metadati di sincronizzazione per gli annunci pre-roll

Verifica le impostazioni pre-roll per l'evento di live streaming utilizzando le seguenti opzioni:

Per recuperare i risultati delle decisioni relative agli annunci pre-roll, effettua una richiesta all'API ATM.

L'esempio seguente effettua una richiesta ATM per gli annunci pre-roll:

curl "https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/pod.json?stream_id=SESSION_ID&ad_break_id=preroll&auth-token=your_signed_HMAC_token"

Richiedere i metadati di sincronizzazione per gli annunci mid-roll

Per recuperare i metadati dei pod di annunci per i mid-roll, segui questi passaggi:

  1. Analizza il manifest del live streaming per trovare i marcatori di annunci che contengono la sincronizzazione e la durata di ogni interruzione pubblicitaria mid-roll.
  2. Chiama l'endpoint dell'API ATM per richiedere la durata precisa del pod di annunci e della slate. L'API restituisce un oggetto JSON con i risultati delle decisioni del pod pubblicitario.

L'esempio seguente effettua una richiesta ATM per gli annunci mid-roll:

curl "https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/pod.json?stream_id=SESSION_ID&ad_break_id=AD_BREAK_ID&pd=AD_BREAK_DURATION&auth-token=your_signed_HMAC_token"

Se l'operazione va a buon fine, viene visualizzato un output simile al seguente oggetto JSON:

{
  "status": "final",
  "ads": [
    {
      "duration_ms": 5046,
      "variants": {
        "devrel1428000": {
          "segment_extension": "ts",
          "segment_durations": {
            "timescale": 1000,
            "values": [
              5045
            ]
          }
        },
        "devrel1928000": {
          "segment_extension": "ts",
          "segment_durations": {
            "timescale": 1000,
            "values": [
              5045
            ]
          }
        }
      }
    }
  ],
  "slate": {
    "duration_ms": 0,
    "variants": {
      "devrel1428000": {
        "segment_extension": "ts",
        "segment_durations": {
          "timescale": 1000,
          "values": [
            5005,
            ...
            5046
          ]
        }
      },
      "devrel1928000": {
        "segment_extension": "ts",
        "segment_durations": {
          "timescale": 1000,
          "values": [
            5005,
            ...
            5046
          ]
        }
      }
    }
  }
}

Unire gli annunci nel manifest dei contenuti

Le sezioni seguenti ti guideranno nella modifica del manifest del live streaming e nell'aggiunta dei segmenti di annunci.

Identificare i segmenti di interruzioni pubblicitarie e inserire le discontinuità

Durante l'elaborazione di ogni manifest variante, identifica i tag EXT-X-CUE-IN e EXT-X-CUE-OUT nello stream, che indicano l'inizio e la fine di un'interruzione 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 dai contenuti agli annunci.

Il seguente 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 di 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 di annunci di ogni interruzione pubblicitaria. Al termine dell'interruzione pubblicitaria, aggiungi di nuovo la crittografia inserendo un elemento EXT-X-KEY appropriato.

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

Creare URL dei segmenti di annunci

Sostituisci i segmenti di contenuti tra i tag EXT-X-DISCONTINUITY con gli URL di ogni segmento di annunci. Per determinare il numero di segmenti di annunci da inserire, utilizza ads.segment_durations.values fornito nella risposta JSON dell'API ATM.

Per terminare un pod di annunci in anticipo quando rileva un tag EXT-X-CUE-IN, aggiungi il parametro d= all'URL del segmento di annunci finale. Questo parametro accorcia il segmento per evitare di influire sulla sequenza temporale del video player client.

L'esempio seguente assembla un URL del segmento di annunci pre-roll nel manifest. Tieni presente che i segmenti di annunci utilizzano un indice in base zero:

https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/preroll/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID

L'esempio seguente assembla un URL del segmento di annunci mid-roll nel manifest:

https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID

L'esempio seguente inserisce i segmenti 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/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/1.ts?stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/2.ts?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

Creare segmenti di slate

Per colmare il divario tra l'annuncio e i contenuti, inserisci i segmenti di slate. Utilizza l'array slates.segment_durations.values della risposta JSON dell'API ATM per determinare la durata di ogni segmento di slate. Ripeti la sequenza delle durate dei segmenti in base alle esigenze per riempire l'intera interruzione pubblicitaria.

L'esempio seguente assembla un segmento di slate:

https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/slate/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID

slate/0 nell'esempio rappresenta il numero di iterazione della slate. Fai riferimento alla compatibilità e alla capacità di memorizzazione nella cache del video player client per determinare se iniziare da 0 e incrementare questo numero per ogni loop della slate o mantenerlo a 0 per tutte le iterazioni.

Gestire il ritorno ai contenuti

Dopo aver inserito tutti i segmenti del pod di annunci, scegli uno dei seguenti metodi per tornare allo stream di contenuti:

Metodo Descrizione Effetti sul video player client
Riempire con segmenti di slate Inserisce i segmenti di slate e li ripete. Riempie la durata e inserisce gli elementi EXT-X-DISCONTINUITY tra ogni iterazione della slate. Nessun effetto.
Il video player torna ai contenuti senza modificare la sequenza temporale.
Riallineare con un singolo segmento di slate Inserisce un singolo segmento di slate. Utilizza il parametro d= per riempire la durata fino all'inizio dei contenuti. Nessun effetto.
Il video player torna ai contenuti senza modificare la sequenza temporale.
Ritorno immediato Inserisci segmenti di contenuti. La sequenza temporale del video player viene modificata.
Il video player client deve gestire la sequenza temporale modificata.

Facoltativo: pianificare un'interruzione pubblicitaria

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