API di inserimento di annunci dinamici per gli stream VOD

L'API Google DAI consente di implementare gli stream abilitati per l'inserimento di annunci dinamici di Google in ambienti in cui l'implementazione dell'SDK IMA non è supportata. Ti consigliamo di continuare a utilizzare IMA su piattaforme che supportano l'SDK IMA.

Consigliamo di utilizzare l'API DAI sulle seguenti piattaforme:

  • Smart TV Samsung (Tizen)
  • TV LG
  • HbbTV
  • Xbox (app JavaScript)
  • KaiOS

L'API supporta le funzionalità di base fornite dall'SDK IMA DAI. Per domande specifiche sulla compatibilità o sulle funzionalità supportate, contatta il tuo account manager Google.

Implementare l'API DAI per gli streaming VOD

L'API DAI supporta gli stream VOD utilizzando i protocolli HLS e DASH. I passaggi descritti in questa guida si applicano a entrambi i protocolli.

Per integrare l'API nella tua applicazione per i flussi VOD, completa i seguenti passaggi:

  1. Richiedi uno stream effettuando una chiamata POST all'endpoint dello streaming:

    Corpo della richiesta di esempio:

    https://dai.google.com/ondemand/v1/dash/content/2559737/vid/tos-dash/stream
    
      {
        key1 : "value1",
        stream_parameter1 : "value2"
      }
    

    Testo di esempio della risposta:

    {
       "stream_id":"d32f8920-612a-4d46-8bc7-d73fd6c17c85",
       "total_duration":636.458,
       "content_duration":596.458,
       "valid_for":"8h0m0s",
       "valid_until":"2020-06-04T20:39:41.274707306-07:00",
       "stream_manifest":"https://dai.google.com/ondemand/dash/content/2559737/vid/tos-dash/ATL/streams/d32f8920-612a-4d46-8bc7-d73fd6c17c85/manifest.mpd",
       "media_verification_url":"https://dai.google.com/view/p/service/vod/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/loc/ATL/network/124319096/content/2559737/vid/tos-dash/media/",
       "ad_breaks":[
          {
             "type":"pre",
             "start":0,
             "duration":10,
             "ads":[
                {
                   "seq":1,
                   "duration":10,
                   "title":"External NCA1C1L1 Preroll",
                   "description":"External NCA1C1L1 Preroll ad",
                   "clickthrough_url":"https://dai.google.com/ondemand/v1/dash/content/2474148/vid/bbb-clear/location/ATL/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/videoclick/5489259204425938365",
                   "events":[
                      {
                         "time":0.1,
                         "type":"start"
                      },
                      {
                         "time":2.5,
                         "type":"firstquartile"
                      },
                      {
                         "time":4.75,
                         "type":"midpoint"
                      },
                      {
                         "time":7.5,
                         "type":"thirdquartile"
                      },
                      {
                         "time":9,
                         "type":"complete"
                      }
                   ]
                }
             ]
          },
          {
             "type":"mid",
             "start":45,
             "duration":10,
             "ads":[
                {.... }
                   ]
                }
             ]
          },
          {
             "type":"post",
             "start":626.458,
             "duration":10,
             "ads":[...]
          }
       ]
    }
    

    Risposta di errore

    In caso di errori, vengono restituiti codici di errore HTTP standard senza corpo della risposta JSON.

  2. Analizza la risposta JSON e archivia i seguenti valori:

    • stream_id
    • stream_manifest
    • media_verification_url
    • ad_breaks
  3. Per eseguire la verifica dei contenuti multimediali, esamina gli eventi ID3:

    1. Archivia gli eventi multimediali in una coda, salvando ogni ID multimediale insieme al relativo timestamp (se visualizzato dal player).
    2. A ogni aggiornamento dal player o a una frequenza impostata (consigliato 500 ms), controlla la coda degli eventi multimediali per verificare la presenza di eventi riprodotti di recente confrontando i timestamp degli eventi con la testina di riproduzione.
    3. Per gli eventi multimediali di cui confermi che sono stati riprodotti, tieni traccia della riproduzione aggiungendo l'ID elemento multimediale all'endpoint di verifica dei contenuti multimediali ed effettuando una richiesta GET.

    Corpo della richiesta di esempio:

    https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/
    

    Esempi di risposte:

    Accepted for asynchronous verification - HTTP/1.1 202 Accepted
    Successful empty response - HTTP/1.1 204 No Content
    Media verification not found - HTTP/1.1 404 Not Found
    Media verification sent by someone else - HTTP/1.1 409 Conflict
    

    Puoi verificare gli eventi di monitoraggio in Monitoraggio attività di streaming.

  4. (Facoltativo) Utilizza i dati ad_breaks della risposta di creazione dello stream per cercare il tipo di evento attivato.

  5. Rimuovi l'evento multimediale dalla coda.

Limitazioni

Se utilizzi l'API all'interno di WebView, si applicano le seguenti limitazioni relative al targeting:

  • UserAgent: il parametro dello user agent viene trasmesso come valore specifico del browser anziché della piattaforma sottostante.
  • rdid, idtype, is_lat: l'ID dispositivo non è stato trasmesso correttamente, il che limita le seguenti funzionalità:
    • Quota limite
    • Rotazione degli annunci sequenziale
    • Segmentazione e targeting del pubblico

best practice

Mappare i tag ID3 al tipo di evento appropriato è noioso sui VOD. Utilizza le informazioni ad_breaks restituite nel file JSON per cercare direttamente l'evento, come faresti con i contenuti dal vivo.

Risorse aggiuntive