Prima di iniziare
Questo documento descrive solo le istruzioni di riproduzione, in assenza dei SDK IMA DAI.
Assicurati di aver già completato i passaggi in Integrare Google Ad Manager (GAM) con gli asset VOD in anticipo.
Se l'SDK IMA non è disponibile per la piattaforma prevista, hai bisogno del tuo per chiamare le API richieste e attivare le verifiche degli elementi multimediali degli annunci per trovare le regole.
A questo scopo, avrai bisogno delle seguenti informazioni:
Località |
La
Regione Google Cloud
dove è stata creata la configurazione live:
LOCATION
|
Numero progetto |
Il numero del progetto Google Cloud che utilizza lo strumento di stitching video
API:
PROJECT_NUMBER
|
Token OAuth |
Token OAuth di breve durata di un account di servizio con l'utente dello stitching video
ruolo:
OAUTH_TOKEN Scopri di più su la creazione di token OAuth di breve durata. |
Codice di rete |
Il codice di rete Ad Manager per richiedere annunci:
NETWORK_CODE
|
ID configurazione VOD |
L'ID configurazione VOD specificato durante la creazione dell'evento di streaming 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 facoltativo di codifica json parametri di targeting.
JSON risposta
media_verification_url |
L'URL di base per inviare un ping agli eventi di monitoraggio della riproduzione. Una verifica dei contenuti multimediali completa
L'URL viene creato aggiungendo un ID evento dell'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 in cui scade la sessione di streaming corrente, indicata come ISO 8601
stringa data/ora in yyyy-MM-dd'T'hh:mm:ss.sssssssss[+|-]hh:mm
formato.
|
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"
}
}
Esempio di risposta
{
"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 archivia i valori pertinenti.
Genera una sessione VOD dello stitching video Cloud
Effettua una richiesta POST all'endpoint di registrazione della sessione VOD. In cambio, Ricevere una risposta JSON contenente l'URI del manifest dello stream e i metadati relative a interruzioni pubblicitarie, annunci ed eventi pubblicitari.
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 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 di progetto.
location e l'ID configurazione VOD con il valore
seguente formato:
projects/PROJECT_NUMBER/locations/LOCATION/vodConfigs/VOD_CONFIG_ID
|
adTracking |
Imposta "CLIENT" per attivare il monitoraggio lato client. |
gamSettings |
Un oggetto contenente il codice di rete e
stream id 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 nella richiesta
del testo.
|
vodConfig |
La stessa stringa vodConfig inviata all'API nella richiesta
del testo.
|
gamSettings |
Lo stesso oggetto gamSettings inviato all'API nella tua richiesta
del testo.
|
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"
}
}
Esempio di risposta
{
"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
Effettua una richiesta GET al metadata_url
che hai ricevuto al momento della registrazione
il tuo stream con Ad Manager. Questo passaggio deve essere eseguito dopo aver ricevuto il manifest unito dall'URI di riproduzione.
Riceverai a sua volta un oggetto JSON che descrive le interruzioni pubblicitarie, gli annunci e l'annuncio dello stream eventi.
Endpoint API
GET: METADATA_URL
Host: dai.google.com
JSON risposta
tags |
Una serie di coppie chiave/valore che descrivono gli eventi multimediali degli annunci che si verificano.
all'interno dello stream. Ogni chiave è composta dai primi 17 caratteri
un ID elemento multimediale annuncio che verrà visualizzato nei metadati ID3 dello stream o,
nel caso di eventi "progress", l'intero ID multimediale dell'annuncio. Ogni valore corrisponde a un
con le seguenti proprietà:
|
ads |
Una serie di coppie chiave/valore che descrivono gli annunci che verranno visualizzati all'interno
flusso di dati. Ogni chiave è un ID annuncio. Ogni valore è un oggetto con le seguenti caratteristiche
proprietà:
|
ad_breaks |
Una serie di coppie chiave-valore che descrivono le interruzioni pubblicitarie che si verificheranno.
all'interno dello stream. Ogni chiave è un ID interruzione pubblicitaria. Ogni valore corrisponde a un
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.
- Ad ogni aggiornamento dal player o con una frequenza impostata (500 ms l'opzione consigliata), controlla la coda degli eventi multimediali per verificare se sono presenti eventi riprodotti di recente confrontando i timestamp degli eventi con la testina di riproduzione.
- Per gli eventi multimediali che confermi di aver riprodotto, controlla il tipo cercando l'ID elemento multimediale 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 media 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 di verifica dei media completo per un evento dell'annuncio, aggiungi l'ID evento dell'annuncio completo al valore media_verification_url dal risposta di creazione dello stream.
- Utilizzare "avanzamento" per tenere traccia della presenza di un utente durante 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 multimediale dell'annuncio completo, così come appare nei metadati ID3 dello stream:
AD_MEDIA_ID
|
Valori restituiti 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
Esempio di risposta
HTTP/1.1 204 No Content
Limitazioni
Se utilizzi l'API all'interno di WebView, si applicano le seguenti limitazioni in relazione a al targeting:
- UserAgent: il parametro user agent viene trasmesso come valore specifico del browser. anziché dalla piattaforma sottostante.
- rdid, idtype, is_lat: l'ID dispositivo non viene trasmesso correttamente.
limita la funzionalità delle seguenti caratteristiche:
- Quota limite
- Rotazione sequenziale degli annunci
- Segmentazione e targeting del pubblico