Gli SDK IMA semplificano l'integrazione di annunci multimediali nei tuoi siti web e nelle tue app. Gli SDK IMA possono richiedere annunci da qualsiasi ad server conforme a VAST e gestire la riproduzione degli annunci nelle tue app. Con gli SDK IMA DAI, le app inviano una richiesta di stream per gli annunci e i contenuti video, sia VOD che live. L'SDK restituisce quindi uno stream video combinato, in modo che tu non debba gestire il passaggio tra l'annuncio e il video dei contenuti all'interno della tua app.
Seleziona la soluzione DAI che preferisci:
- Configurazione con DAI Full Service: Google Ad Manager seleziona e unisce gli annunci direttamente nello stream di contenuti.
- Configurazione con DAI per la pubblicazione di pod: Google Ad Manager fornisce pod di annunci disponibili per l'unione o il caricamento in un video player.
Riproduci stream VOD registrati con l'API Video Stitcher di Google Cloud
Questa guida mostra come utilizzare l'SDK IMA DAI per HTML5 per richiedere e riprodurre una sessione di stream VOD di Google Cloud.
Questa guida amplia l'esempio di base della guida introduttiva per IMA DAI.
Per informazioni sull'integrazione con altre piattaforme o sull'utilizzo degli SDK IMA lato client, consulta SDK Interactive Media Ads.
Per visualizzare o seguire un'integrazione di esempio completata, scarica l'esempio di Video Stitcher Cloud per HLS o DASH.
Configura un progetto Google Cloud
Configura un progetto cloud Google e i service account per accedere al progetto.
Inserisci le seguenti variabili da utilizzare nell'SDK IMA:- Località
- La regione Google Cloud
in cui è stata creata la configurazione VOD:
LOCATION - Numero progetto
- Il numero di progetto Google Cloud che utilizza l'API Video Stitcher:
PROJECT_NUMBER - Token OAuth
Il token OAuth di breve durata di un service account con il ruolo utente Video Stitcher:
OAUTH_TOKEN
Scopri di più sulla creazione di token OAuth di breve durata. Il token OAuth può essere riutilizzato in più richieste, purché non sia scaduto.
- Codice di rete
Il codice di rete Ad Manager per la richiesta di annunci:
NETWORK_CODE
- ID configurazione VOD
L'ID configurazione VOD per lo stream VOD:
VOD_CONFIG_IDScopri di più sulla creazione dell'ID di configurazione VOD nella guida alla creazione di una configurazione VOD di Cloud Stitcher.
Configura un ambiente di sviluppo
Le app di esempio IMA mostrano solo le richieste di stream HLS. Puoi comunque utilizzare gli stream DASH durante la creazione della classe VideoStitcherVodStreamRequest. Quando configuri il player compatibile con DASH, devi configurare un listener per gli eventi di avanzamento del video player che possa fornire i metadati del video a StreamManager.processMetadata().
Questa funzione accetta tre parametri:
type: una stringa che deve essere impostata su'ID3'per gli stream HLS e su'urn:google:dai:2018'per gli stream DASH.data: per i messaggi di eventi DASH, questa è la stringa di dati del messaggio.timestamp: un numero che indica l'ora di inizio del messaggio di evento per gli stream DASH.
Invia i metadati non appena gli eventi del player li forniscono e con la frequenza con cui li forniscono. Se i metadati mancano o non sono corretti, l'SDK IMA DAI potrebbe non attivare gli eventi annuncio, con conseguente generazione di report errati sugli eventi annuncio.
Scarica gli esempi di IMA DAI per HTML5 ed estrai il file ZIP di esempio hls_js/simple in una nuova cartella. Questo esempio è un'app web che puoi ospitare localmente a scopo di test.
Per ospitare l'esempio localmente, vai alla nuova cartella ed esegui il seguente comando Python per avviare un server web:
python3 -m http.server 8000http.server è disponibile solo in Python 3.x. Puoi utilizzare qualsiasi altro server web, come Apache HTTP Server o Node JS.
Apri un browser web e vai a localhost:8000 per visualizzare un video player.
Il tuo browser deve supportare la libreria HLS.js.
Se tutto funziona correttamente, facendo clic sul pulsante di riproduzione sul video player, inizia il cortometraggio "Tears of Steel", con interruzioni pubblicitarie ogni 30 secondi.
Richiedi uno stream VOD
Per sostituire lo stream di esempio con lo stream VOD con stitch degli annunci, utilizza la classe VideoStitcherVodStreamRequest per creare automaticamente una sessione annuncio con Google Ad Manager. Puoi utilizzare l'interfaccia utente di Google Ad Manager per individuare le sessioni DAI generate per il monitoraggio e il debug.
Nell'esempio esistente sono presenti funzioni per richiedere uno stream VOD o un live streaming. Per far sì che funzioni con l'API Video Stitcher di Google Cloud, devi aggiungere una nuova funzione per restituire un oggetto VideoStitcherVodStreamRequest.
Ecco un esempio:
// StreamManager which will be used to request DAI streams.
let streamManager;
...
function initPlayer() {
videoElement = document.getElementById('video');
adUiElement = document.getElementById('adUi');
streamManager = new google.ima.dai.api.StreamManager(
videoElement,
adUiElement
);
streamManager.addEventListener(
[
google.ima.dai.api.StreamEvent.Type.LOADED,
google.ima.dai.api.StreamEvent.Type.ERROR,
google.ima.dai.api.StreamEvent.Type.AD_BREAK_STARTED,
google.ima.dai.api.StreamEvent.Type.AD_BREAK_ENDED
],
onStreamEvent, false);
hls.on(Hls.Events.FRAG_PARSING_METADATA, function(event, data) {
if (streamManager && data) {
// For each ID3 tag in our metadata, we pass in the type - ID3, the
// tag data (a byte array), and the presentation timestamp (PTS).
data.samples.forEach(function(sample) {
streamManager.processMetadata('ID3', sample.data, sample.pts);
});
}
});
videoElement.addEventListener('pause', () => {
playButton.style.display = "block";
});
playButton.addEventListener('click', initiatePlayback);
}
function initiatePlayback() {
requestVodVideoStitcherStream();
playButton.style.display = "none";
playButton.removeEventListener('click', initiatePlayback);
playButton.addEventListener('click', resumePlayback);
}
...
function requestVodVideoStitcherStream() {
const streamRequest = new google.ima.dai.api.VideoStitcherVodStreamRequest();
streamRequest.vodConfigId = 'VOD_CONFIG_ID';
streamRequest.region = 'LOCATION';
streamRequest.projectNumber = 'PROJECT_NUMBER';
streamRequest.oAuthToken = 'OAUTH_TOKEN';
streamRequest.networkCode = 'NETWORK_CODE';
streamManager.requestStream(streamRequest);
}
Ricarica la pagina. Poi, puoi richiedere e riprodurre lo stream VOD personalizzato.
(Facoltativo) Aggiungi opzioni per la sessione di streaming
Personalizza la richiesta di stream aggiungendo opzioni di sessione per eseguire l'override della configurazione predefinita dell'API Cloud Video Stitcher utilizzando VideoStitcherVodStreamRequest.videoStitcherSessionOptions.
Se fornisci un'opzione non riconosciuta, l'API Video Stitcher risponderà con un errore HTTP 400. Per assistenza, consulta la guida alla risoluzione dei problemi.
Ad esempio, puoi eseguire l'override delle opzioni del manifest con il seguente snippet di codice, che richiede due manifest dello stream con le rappresentazioni ordinate dal bitrate più basso a quello più alto.
...
// The following session options are examples. Use session options
// that are compatible with your video stream.
streamRequest.videoStitcherSessionOptions = {
"manifestOptions": {
"bitrateOrder": "ascending"
}
};
streamManager.requestStream(streamRequest);
Esegui la pulizia
Ora che hai ospitato correttamente uno stream VOD utilizzando l'API Video Stitcher di Google Cloud e lo hai richiesto utilizzando l'SDK IMA DAI per HTML5, è importante eseguire la pulizia di tutte le risorse di pubblicazione.
Segui la guida alla pulizia dei VOD per rimuovere le risorse e gli asset non necessari.
Infine, nella finestra del terminale in cui hai avviato il server web Python 3, utilizza il comando ctrl+C per terminare il server locale.