Prima di iniziare
Questo documento riguarda solo le istruzioni di riproduzione in assenza dell'SDK IMA DAI.
Assicurati di aver già completato i passaggi descritti in Integrare Google Ad Manager (GAM) con gli asset VOD in precedenza.
Se l'SDK IMA non è disponibile per la piattaforma scelta, la tua applicazione dovrà chiamare le API richieste e attivare le verifiche dei contenuti multimediali degli annunci.
Per farlo, ti serviranno le seguenti informazioni:
Località |
La
regione Google Cloud
in cui è stata creata la configurazione attiva:
LOCATION
|
Numero progetto |
Il numero del progetto Google Cloud che utilizza l'API Video Stitcher:
PROJECT_NUMBER
|
Token OAuth |
Il token OAuth a breve durata di un account di servizio con il ruolo utente Video Stitcher:
OAUTH_TOKEN Scopri di più sulla creazione di token OAuth a vita breve. |
Codice rete |
Il codice di rete Ad Manager per la richiesta di annunci:
NETWORK_CODE
|
ID configurazione VOD |
L'ID di configurazione VOD specificato durante la creazione dell'evento stream VOD:
VOD_CONFIG_ID
|
Inviare una richiesta di registrazione dello stream ad Ad Manager
Invia una richiesta POST all'endpoint di registrazione dello stream. In cambio, ricevi una risposta JSON contenente l'ID stream da inviare al tuo server di manipolazione del manifest e agli endpoint dell'API Pod Serving associati.
endpoint API
POST: /ondemand/pods/api/v1/network/NETWORK_CODE/stream_registration
Host: dai.google.com
Content-Type: application/json
Parametri del percorso
NETWORK_CODE |
Il tuo codice di rete Google Ad Manager 360 |
Parametri del corpo con codifica JSON
targeting_parameters
- Un insieme di parametri di targeting facoltativi codificati in JSON.
JSON della risposta
media_verification_url |
L'URL di base per eseguire il ping degli eventi di monitoraggio della riproduzione. Un URL di verifica dei contenuti multimediali completo viene formato aggiungendo un ID evento annuncio a questo URL di base.
MEDIA_VERIFICATION_URL
|
metadata_url |
L'URL per richiedere i metadati dei pod di annunci.
METADATA_URL
|
stream_id |
La stringa utilizzata per identificare la sessione di streaming corrente.
STREAM_ID
|
valid_for |
Il tempo rimanente fino alla scadenza della sessione di streaming corrente, in formato
dhms (giorni, ore, minuti, secondi). Ad esempio,
2h0m0.000s rappresenta una durata di 2 ore.
|
valid_until |
L'ora di scadenza della sessione di streaming corrente, come stringa data/ora ISO 8601 nel formato yyyy-MM-dd'T'hh:mm:ss.sssssssss[+|-]hh:mm .
|
Richiesta di esempio (cURL)
curl -X POST \
-H "Content-Type: application/json" \
-d '@request.json' \
https://dai.google.com/ondemand/pods/api/v1/network/21775744923/stream_registration
request.json
{
"targeting_parameters": {
"cust_params": "sport%3Dfootball%26city%3Dnewyork"
}
}
Risposta di esempio
{
"media_verification_url": "https://dai.google.com/.../media/",
"metadata_url": "https://dai.google.com/.../metadata",
"stream_id": "6e69425c-0ac5-43ef-b070-c5143ba68541:CHS",
"valid_for": "8h0m0s",
"valid_until": "2023-03-24T08:30:26.839717986-07:00"
}
In caso di errori, vengono restituiti codici di errore HTTP standard senza testo della risposta JSON.
Analizza la risposta JSON e memorizza i valori pertinenti.
Generare una sessione VOD di Cloud Video Stitcher
Invia una richiesta POST all'endpoint di registrazione della sessione VOD. In cambio, ricevi una risposta JSON contenente l'URI manifest dello stream e i metadati relativi a interruzioni pubblicitarie, annunci ed eventi correlati agli annunci.
endpoint API
POST: /v1/projects/PROJECT_NUMBER/locations/LOCATION/vodSessions/
Host: videostitcher.googleapis.com
Authorization: Bearer OAUTH_TOKEN
Content-Type: application/json
Parametri del percorso
PROJECT_NUMBER |
Il numero del tuo progetto Google Cloud. |
LOCATION |
La tua regione Google Cloud. |
NETWORK CODE |
Il tuo codice di rete Google Ad Manager 360. |
Parametri del corpo con codifica JSON
vodConfig |
Una stringa contenente il numero del progetto,
la località e l'ID configurazione VOD nel
seguente formato:
projects/PROJECT_NUMBER/locations/LOCATION/vodConfigs/VOD_CONFIG_ID
|
adTracking |
Imposta su "CLIENT" per attivare il monitoraggio lato client. |
gamSettings |
Un oggetto contenente il codice di rete e
l'ID stream con il seguente formato:
{ "networkCode":"NETWORK_CODE", "streamId":"STREAM_ID" } |
JSON della risposta
name |
Il nome della sessione VOD, contenente l'ID sessione. |
playUri |
L'URI del manifest dello stream unito da caricare nel video player per la riproduzione.
SESSION_PLAYBACK_URI
|
adTracking |
Lo stesso valore adTracking inviato all'API nel corpo della richiesta.
|
vodConfig |
La stessa stringa vodConfig inviata all'API nel corpo della richiesta.
|
gamSettings |
Lo stesso oggetto gamSettings inviato all'API nel corpo della richiesta.
|
Richiesta di esempio (cURL)
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer OAUTH_TOKEN" \
-d '@request.json' \
https://videostitcher.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/vodSessions/
request.json
{
"vod_config": "projects/PROJECT_NUMBER/locations/LOCATION/vodConfigs/VOD_CONFIG_ID",
"ad_tracking": "CLIENT",
"gam_settings": {
"network_code": "NETWORK_CODE",
"stream_id": "STREAM_ID"
}
}
Risposta di esempio
{
"name": "projects/.../vodSessions/4a703a1f-5f48-4147-9738-c7d4c7b70e7f",
"playUri": "https://videostitcher.googleapis.com/.../manifest.m3u8",
"sourceUri": "https://storage.googleapis.com/.../hls.m3u8",
"adTagUri": "https://pubads.g.doubleclick.net/gampad/ads?...",
"vodConfig": "projects/...",
"assetId": "63b94af2767e17e5c975f8d7d2b15c0d0b0320a17c3d7ac8a3f6d4e0c165b9e5",
"adTracking": "CLIENT",
"gam_settings": {
"network_code": "21775744923",
"stream_id": "6e69425c-0ac5-43ef-b070-c5143ba68541:CHS"
}
}
Una volta ricevuta la risposta, puoi riprodurre il live streaming con annunci uniti facendo riferimento all'URI nel campo playUri
dell'oggetto risposta.
Richiedere i metadati dei pod di annunci da Ad Manager
Invia una richiesta GET all'indirizzo metadata_url
che hai ricevuto quando hai registrato il tuo stream con Ad Manager. Questo passaggio deve essere eseguito dopo aver ricevuto il manifest unito dall'URI di riproduzione.
A tua volta ricevi un oggetto JSON che descrive le interruzioni pubblicitarie, gli annunci e gli eventi pubblicitari dello stream.
Endpoint API
GET: METADATA_URL
Host: dai.google.com
JSON della risposta
tags |
Un insieme di coppie chiave-valore che descrivono gli eventi relativi ai media degli annunci che si verificheranno
all'interno dello stream. Ogni chiave è costituita dai primi 17 caratteri di un ID elemento multimediale dell'annuncio che verrà visualizzato nei metadati ID3 dello stream o, nel caso degli eventi "progress", dall'intero ID elemento multimediale dell'annuncio. Ogni valore è un
oggetto con le seguenti proprietà:
|
ads |
Un insieme di coppie chiave-valore che descrivono gli annunci da mostrare all'interno dello stream. Ogni chiave è un ID annuncio. Ogni valore è un oggetto con le seguenti proprietà:
|
ad_breaks |
Un insieme di coppie chiave-valore che descrivono le interruzioni pubblicitarie che si verificano
all'interno dello stream. Ogni chiave è un ID interruzione pubblicitaria. Ogni valore è un
oggetto con le seguenti proprietà:
|
Richiesta di esempio (cURL)
curl METADATA_URL
Esempio di risposta JSON
{
"tags":{
"google_5555555555":{
"ad":"0000229834_ad1",
"ad_break_id":"0000229834",
"type":"firstquartile"
},
"google_1234567890123456789":{
"ad":"0000229834_ad1",
"ad_break_id":"0000229834",
"type":"progress"
},
...
},
"ads":{
"0000229834_ad1":{
"ad_break_id":"0000229834",
"position":1,
"duration":15,
"clickthrough_url":"https://.../",
...
},
...
},
"ad_breaks":{
"0000229834":{
"type":"mid",
"duration":15,
"ads":1
},
...
}
}
Memorizza questi valori da associare agli eventi dei metadati con temporizzazione all'interno dello stream video.
Ascolta gli eventi ID3 e monitora gli eventi di riproduzione
Per verificare che siano avvenuti eventi specifici in uno stream video, segui questi passaggi per gestire gli eventi ID3:
- Memorizza gli eventi multimediali in una coda, salvando ogni ID media insieme al relativo timestamp, se visualizzato dal player.
- A ogni aggiornamento della data e dell'ora dal player o a una frequenza impostata (consigliata 500 ms), controlla la coda di eventi multimediali per gli eventi riprodotti di recente confrontando i timestamp degli eventi con il cursore di riproduzione.
- Per gli eventi multimediali di cui confermi la riproduzione, controlla il tipo cercando l'ID media nei tag di interruzione pubblicitaria archiviati. Tieni presente che l'oggetto tag interruzione annunci contiene solo una versione troncata dell'ID media, limitata alle prime 10 cifre dopo il prefisso google_, pertanto non esiste una corrispondenza diretta tra le chiavi e gli ID di verifica dei contenuti multimediali ID3 nell'oggetto tag. Questo serve per impedire l'invio di ping di verifica degli eventi prima dell'arrivo dell'evento ID3. Per generare l'URL completo di verifica dei contenuti multimediali di un evento annuncio, aggiungere l'ID evento annuncio completo al valore media_verification_url della risposta alla creazione dello stream.
- Utilizza gli eventi "progress" per monitorare se un utente si trova all'interno di un'interruzione pubblicitaria. Non inviare questi eventi all'endpoint di verifica dei contenuti multimediali per evitare un codice di errore HTTP. Per altri tipi di eventi, aggiungi l'ID media all'URL media verification e invia una richiesta GET per monitorare la riproduzione.
- Rimuovi l'evento multimediale dalla coda.
endpoint API
GET: MEDIA_VERIFICATION_URLAD_MEDIA_ID
Host: dai.google.com
Parametri del percorso
MEDIA_VERIFICATION_URL |
Il valore restituito dall'endpoint di registrazione dello stream nel
media_verification_url campo:
MEDIA_VERIFICATION_URL
|
AD_MEDIA_ID |
L'ID elemento multimediale dell'annuncio completo, come visualizzato nei metadati ID3 dello stream:
AD_MEDIA_ID
|
Valori di rendimento previsti
HTTP/1.1 204 No Content |
Risposta vuota riuscita. |
HTTP/1.1 404 Not Found |
L'ID verifica dei contenuti multimediali non è stato riconosciuto. |
HTTP/1.1 409 Conflict |
L'ID verifica dei contenuti multimediali è già stato inviato. |
Richiesta di esempio (cURL)
curl MEDIA_VERIFICATION_URLAD_MEDIA_ID
Risposta di esempio
HTTP/1.1 204 No Content
Limitazioni
Se utilizzi l'API all'interno delle visualizzazioni web, si applicano le seguenti limitazioni per quanto riguarda il targeting:
- UserAgent: il parametro user agent viene passato come valore specifico del browser anziché della piattaforma di base.
- rdid, idtype, is_lat: l'ID dispositivo non viene passato correttamente, il che limita la funzionalità delle seguenti funzionalità:
- Quota limite
- Rotazione sequenziale degli annunci
- Segmentazione e targeting per pubblico