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 compatibile con VAST e gestire la riproduzione degli annunci nelle tue app. Con gli SDK IMA DAI, le app effettuano una richiesta di streaming per annunci e contenuti video, VOD o contenuti dal vivo. L'SDK restituisce quindi un video stream combinato, in modo che tu non debba gestire il passaggio tra l'annuncio e i contenuti video all'interno dell'app.
Seleziona la soluzione DAI che ti interessa
DAI pubblicazione pod
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 compatibile con VAST e gestire la riproduzione degli annunci nelle tue app. Con gli SDK IMA DAI, le app effettuano una richiesta di streaming per annunci e contenuti video, VOD o contenuti dal vivo. L'SDK restituisce quindi un video stream combinato, in modo che tu non debba gestire il passaggio tra l'annuncio e i contenuti video all'interno dell'app.
Questa guida illustra come riprodurre uno stream di pubblicazione di pod DAI utilizzando l'SDK IMA per Android DAI con un video player semplice per la riproduzione di live streaming e VOD. Se vuoi visualizzare o seguire un'integrazione di esempio completata, scarica l'esempio di pubblicazione di pod.
Panoramica della pubblicazione di pod IMA DAI
StreamRequest
: un oggetto che definisce una richiesta di streaming ai server pubblicitari di Google. Deve essere creato utilizzandoImaSdkFactory.createPodStreamRequest()
oImaSdkFactory.createPodVodStreamRequest()
per abilitare la pubblicazione dei pod. Questi metodi richiedono un codice di rete ecreatePodStreamRequest
anche una chiave asset personalizzata e una chiave API facoltativa. Entrambi includono altri parametri facoltativi.StreamManager
: un oggetto che gestisce la comunicazione tra il video stream e l'SDK IMA DAI, ad esempio l'attivazione dei ping di monitoraggio e l'inoltro degli eventi di streaming al publisher.
Prerequisiti
Un'app Android già configurata con l'SDK IMA DAI per riprodurre video stream con annunci DAI. Se non hai ancora un'app di questo tipo, ti consigliamo di utilizzare l'Esempio di base per DAI Android come punto di partenza. L'esempio BasicExample contiene il codebase a cui viene fatto riferimento in questa guida.
È importante che la tua app invii eventi ID3 utilizzando
VideoStreamPlayerCallback.onUserTextReceived()
affinché l'IMA DAI funzioni. Guarda questo esempio di snippet di codice per DAI completo.
Configura le variabili di pubblicazione dei pod
Tutte le modifiche necessarie per la pubblicazione dei pod vengono eseguite in SampleAdsWrapper.java. Il primo passaggio consiste nell'aggiornare le variabili della costante.
Di seguito sono riportate le costanti delle richieste di stream di pod di annunci da aggiungere:
STREAM_URL
: utilizzato solo per i live streaming. L'URL del video stream fornito dal manipolatore del manifest o dal partner di terze parti che utilizza la pubblicazione del pod. Dovresti inserire l'ID streaming fornito dall'SDK IMA DAI prima di effettuare una richiesta. In questo caso, l'URL stream include un segnaposto,"[[STREAMID]]"
, che viene sostituito con l'ID stream, prima di effettuare una richiesta.NETWORK_CODE
: il codice di rete del tuo account Ad Manager 360.CUSTOM_ASSET_KEY
: utilizzata solo per i live streaming: la chiave asset personalizzata che identifica l'evento di pubblicazione dei pod in Ad Manager 360. Può essere creato dal manipolatore del manifest o dal partner di pubblicazione pod di terze parti.API_KEY
: utilizzata solo per i live streaming. Una chiave API facoltativa che può essere necessaria per recuperare un ID streaming dall'SDK IMA DAI.
L'esempio di base dell'inserimento di annunci dinamici per Android è progettato per riprodurre una varietà di tipi di stream diversi, ma per la pubblicazione dei pod è configurato per riprodurre un solo stream. Modifica la sezione della variabile dell'esempio in modo che corrisponda a quanto segue:
/** This class adds ad-serving support to Sample HlsVideoPlayer */
public class SampleAdsWrapper
implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {
// Podserving Stream Constants.
private static final String STREAM_URL =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/" +
"master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample" +
"&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000" +
"&seg-host=dai.google.com&stream_id=[[STREAMID]]";
private static final String NETWORK_CODE = "51636543";
private static final String CUSTOM_ASSET_KEY = "google-sample";
private static final String API_KEY = "";
private static final String PLAYER_TYPE = "DAISamplePlayer";
/** Log interface, so we can output the log commands to the UI or similar. */
public interface Logger {
...
Crea una richiesta di streaming di pod in diretta o VOD per abilitare la pubblicazione dei pod
Pubblicazione di pod in live streaming
Rimuovi il metodo buildStreamRequest()
che è stato utilizzato per passare
dalla creazione di una varietà di tipi di stream. Poi, modifica requestAndPlayAds()
in chiamata ImaSdkFactory.createPodStreamRequest()
per creare una richiesta di annuncio per la pubblicazione di pod attivi. Infine, richiedi lo stream utilizzando AdsLoader.requestStream()
.
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
Pubblicazione di pod di streaming VOD
Rimuovi il metodo buildStreamRequest()
che è stato utilizzato per passare
dalla creazione di una varietà di tipi di stream. Poi, modifica requestAndPlayAds()
in chiamata ImaSdkFactory.createPodVodStreamRequest()
per creare una richiesta di annuncio per la pubblicazione di pod VOD. Infine, richiedi lo stream utilizzando AdsLoader.requestStream()
.
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
Modificare e impostare l'URL dello stream
Pubblicazione di pod in live streaming
Chiama StreamManager.getStreamId()
per ottenere l'ID stream. Deve quindi essere
inserito nel STEAM_URL
sostituendo "[[STREAMID]]"
. Dopo questa modifica, il nuovo URL dello stream potrà essere impostato utilizzando videoPlayer.setStreamUrl()
.
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
String streamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
streamManager.init();
videoPlayer.setStreamUrl(streamUrl);
videoPlayer.play();
}
Pubblicazione di pod di streaming VOD
Chiama StreamManager.getStreamId()
per ottenere l'ID stream. Quindi, richiedi un URL di streaming al tuo partner di tecnologia video (VTP). Quindi chiama
StreamManager.loadThirdPartyStream()
per fare in modo che l'IMA carichi l'URL dello stream e gli eventuali
sottotitoli restituiti dal tuo TVP.
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
// 'vtpInterface' is a place holder for your own video technology partner
// (VTP) API calls.
String streamUrl = vtpInterface.requestStreamURL(streamID);
streamManager.init();
// Pass any subtitles returned by your VTP in this step as well.
streamManager.loadThirdPartyStream(streamUrl, subtitles);
}
Quando la pubblicazione dei pod è attivata, IMA non effettua chiamate a
VideoStreamPlayer.loadUrl()
, quindi puoi rimuovere eventuali chiamate a
videoPlayer.setStreamUrl()
e videoPlayer.play()
da questo elemento.
È tutto. Ora richiedi e mostri annunci in uno stream di pubblicazione pod con l'SDK IMA per Android DAI. Per vedere altri esempi dell'SDK Android in uso, consulta gli esempi su GitHub.