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:
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.
Analizza la risposta JSON e archivia i seguenti valori:
stream_id
stream_manifest
media_verification_url
ad_breaks
Per eseguire la verifica dei contenuti multimediali, esamina gli eventi ID3:
- Archivia gli eventi multimediali in una coda, salvando ogni ID multimediale insieme al relativo timestamp (se visualizzato dal player).
- 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.
- 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.
(Facoltativo) Utilizza i dati
ad_breaks
della risposta di creazione dello stream per cercare il tipo di evento attivato.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.