Seleziona la soluzione DAI che ti interessa
DAI servizio completo
Questa guida illustra come riprodurre uno stream DAI con l'SDK IMA CAF DAI. Se che vuoi visualizzare o seguire con un'integrazione di esempio completata, scarica l'esempio.
Prima di utilizzare questa guida, assicurati di acquisire familiarità con Chromecast
protocollo Web ricevitore di Application Framework. Questo
la guida presuppone un livello base di familiarità con i concetti di base dei ricevitori CAF, quali
messaggio
intercettori
e
mediaInformation
oggetti, nonché familiarità con l'uso del comando Trasmetti
per emulare un mittente CAF.
Per utilizzare l'IMA DAI, devi disporre di un Ad Manager 360. Se hai un annuncio Per ulteriori dettagli, contatta il tuo account manager. Per informazioni su come registrarti ad Ad Manager, visita la Guida di Ad Manager assistenza.
Per informazioni sull'integrazione con altre piattaforme o sull'utilizzo dell'IMA SDK lato client, consulta gli SDK Interactive Media Ads.
Panoramica del DAI CAF
L'implementazione del DAI utilizzando l'SDK IMA CAF DAI prevede due componenti principali: come mostrato in questa guida:
StreamRequest
: Un oggetto che definisce una richiesta di flusso ai server pubblicitari di Google. Le richieste di stream possono essere di due tipi principali:LiveStreamRequest
: specifica una chiave risorsa, una chiave API facoltativa, nonché altre parametri facoltativi.VODStreamRequest
: Specifica un ID origine di contenuto, un ID video e un'API facoltativa chiave, oltre ad altri parametri facoltativi.
StreamManager
: Un oggetto che gestisce la comunicazione tra il video stream e l'IMA DAI l'SDK, come l'attivazione di ping di monitoraggio e l'inoltro di eventi di streaming al publisher.
Prerequisiti
- Un account della Console per gli sviluppatori di Google Cast con un dispositivo di test registrato.
- Un ricevitore web ospitato Google Cloud, registrato con la tua Console per gli sviluppatori di Google Cast e che può essere modificato per ospitare il codice fornito in questa guida.
- Un'app di invio configurata per usare l'app del ricevitore web. Questo esempio usi lo strumento Comando e controllo di trasmissione come il mittente.
configura gli oggetti MediaInfo del mittente
Innanzitutto, configura le informazioni MediaInfo dell'app del mittente da includere nei seguenti campi:
contentId
|
Un identificatore univoco per questo elemento multimediale | |
contentUrl
|
L'URL dello stream di riserva da caricare se la richiesta di streaming DAI non va a buon fine motivo | |
streamType
|
Per i live streaming, questo valore deve essere impostato su "LIVE". Per gli stream VOD, questo valore deve essere impostato su "BUFFERED" | |
customData
|
assetKey
|
Solo live streaming. Identifica il live streaming da caricare |
contentSourceId
|
Solo stream VOD. Identifica il feed multimediale che contiene flusso richiesto. | |
videoId
|
Solo stream VOD. Identifica lo stream richiesto all'interno feed multimediale specificato. | |
ApiKey
|
Una chiave API facoltativa che può essere richiesta per recuperare l'URL dello stream da l'SDK IMA DAI | |
senderCanSkip
|
Un valore booleano che indica al destinatario se il dispositivo di invio ha possibilità di mostrare un pulsante Salta, abilitando il supporto degli annunci ignorabili |
Per configurare questi valori nello strumento di comando e controllo Cast, fai clic sul pulsante Carica
Media e impostare il tipo di richiesta di caricamento personalizzato su LOAD
. Quindi sostituisci
Dati JSON nell'area di testo con uno dei seguenti oggetti JSON:
IN DIRETTA
{
"media": {
"contentId": "bbb",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
"streamType": "LIVE",
"customData": {
"assetKey": "sN_IYUG8STe1ZzhIIE_ksA",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
VOD
{
"media": {
"contentId": "tos",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/tos.m3u8",
"streamType": "BUFFERED",
"customData": {
"contentSourceId": "2548831",
"videoId": "tears-of-steel",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
Questo oggetto di richiesta di carico personalizzato può essere inviato al destinatario per testare i seguenti passaggi.
Crea un ricevitore CAF di base
Segui la guida per il ricevitore dell'SDK CAF di base, crea un ricevitore web di base.
Il codice del destinatario dovrebbe avere l'aspetto seguente:
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js">
</script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
cast.framework.CastReceiverContext.getInstance().start();
</script>
</body>
</html>
Importa l'SDK IMA DAI e scarica Player Manager
Aggiungi un tag script per importare l'SDK IMA DAI per CAF nel ricevitore web, dopo il caricamento del CAF dello script. L'SDK DAI CAF è evergreen, quindi non è necessario per impostare una versione specifica. Quindi, nel tag script che segue, memorizza il contesto del ricevitore e il gestore del player come costanti prima di avviare il ricevitore.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
castContext.start();
</script>
</body>
</html>
Inizializza IMA Stream Manager
Inizializza lo stream dell'SDK DAI CAF Gestore.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
castContext.start();
</script>
</body>
</html>
Crea l'intercettatore dei messaggi di caricamento
L'SDK DAI CAF utilizza il messaggio di caricamento CAF
intercettore
per effettuare richieste di streaming e sostituire l'URL dei contenuti con lo streaming DAI finale.
L'intercettatore dei messaggi chiama streamManager.requestStream() che gestisce
impostare le interruzioni pubblicitarie, richiedere lo streaming e sostituire quelle esistenti
contentURL
.
Può esserci un solo intercettatore dei messaggi di caricamento, quindi se la tua app richiede l'uso devi incorporare tutte le funzioni personalizzate o la richiamata.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
const getStreamRequest = (request) => null;
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD, (request) => {
return streamManager.requestStream(request, getStreamRequest(request))
.then((request) => {
this.broadcast('Stream request successful.');
return Promise.resolve(request);
})
.catch((error) => {
this.broadcast('Stream request failed.');
return Promise.resolve(request);
});
});
castContext.start();
</script>
</body>
</html>
Crea la richiesta di flusso
Per completare l'integrazione del DAI CAF, devi creare il tuo stream
richiesta
utilizzando i dati inclusi nell'oggetto mediaInfo
del mittente.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
const getStreamRequest = (request) => {
const imaRequestData = request.media.customData;
let streamRequest = null;
if (imaRequestData.assetKey) {
// Live stream
streamRequest = new google.ima.cast.dai.api.LiveStreamRequest();
streamRequest.assetKey = imaRequestData.assetKey;
} else if (imaRequestData.contentSourceId) {
// VOD stream
streamRequest = new google.ima.cast.dai.api.VODStreamRequest();
streamRequest.contentSourceId = imaRequestData.contentSourceId;
streamRequest.videoId = imaRequestData.videoId;
}
if (streamRequest && imaRequestData.ApiKey) {
streamRequest.ApiKey = imaRequestData.ApiKey;
}
if (streamRequest && imaRequestData.senderCanSkip) {
streamRequest.senderCanSkip = imaRequestData.senderCanSkip;
}
return streamRequest;
};
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD, (request) => {
return streamManager.requestStream(request, getStreamRequest(request))
.then((request) => {
return Promise.resolve(request);
})
.catch((error) => {
this.broadcast('Stream request failed.');
return Promise.resolve(request);
});
});
castContext.start();
</script>
</body>
</html>
Ora puoi richiedere e riprodurre stream DAI con l'SDK CAF DAI di Google. Per scoprire di più sulle funzioni avanzate dell'SDK, consulta le altre guide o scarica il nostro ricevitore di esempio applicazioni.