Gli SDK IMA semplificano l'integrazione degli annunci multimediali nei siti web e nelle app. Gli SDK IMA possono richiedi annunci da qualsiasi ad server compatibile con VAST e gestire la riproduzione degli annunci nelle tue app. Con gli SDK IMA DAI, le app richiesta di streaming per annunci e contenuti video, sia VOD che contenuti dal vivo. L'SDK restituisce quindi video stream combinati, in modo che non sia necessario gestire il passaggio dall'annuncio ai video di contenuti e viceversa all'interno dell'app.
Seleziona la soluzione DAI che ti interessa
DAI pubblicazione pod
Gli SDK IMA semplificano l'integrazione degli annunci multimediali nei siti web e nelle app. Gli SDK IMA possono richiedi annunci da qualsiasi ad server compatibile con VAST e gestire la riproduzione degli annunci nelle tue app. Con gli SDK IMA DAI, le app richiesta di streaming per annunci e contenuti video, sia VOD che contenuti dal vivo. L'SDK restituisce quindi video stream combinati, in modo che non sia necessario gestire il passaggio dall'annuncio ai video di contenuti e viceversa all'interno dell'app.
Questa guida illustra come riprodurre uno stream di pubblicazione di pod DAI con l'IMA DAI SDK con un semplice video player per la riproduzione di live streaming e VOD. Se desideri visualizzare o seguire un'integrazione di esempio completata, scarica esempio di pubblicazione di pod.
Panoramica della pubblicazione di pod IMA DAI
StreamRequest
: un oggetto che definisce una richiesta di streaming per server pubblicitari di Google. Deve essere creato utilizzandoImaSdkFactory.createPodStreamRequest()
oppureImaSdkFactory.createPodVodStreamRequest()
per abilitare la pubblicazione dei pod. Questi metodi richiedono un codice di rete ecreatePodStreamRequest
richiede anche una chiave asset personalizzata e una chiave API facoltativa. Entrambi includono altri parametri facoltativi.StreamManager
: un oggetto che gestisce la comunicazione tra lo stream video e l'SDK IMA DAI, come l'attivazione dei ping di monitoraggio e inoltrare gli eventi di streaming al publisher.
Prerequisiti
Un'app per Android già configurata con l'SDK IMA DAI per riprodurre gli stream video con Annunci DAI. Se non disponi già di un'app di questo tipo, ti consigliamo di utilizzare la DAI Android BasicExample come punto di partenza. L'esempio BasicExample ha il codebase a cui viene fatto riferimento in questa guida.
È importante che l'app invii eventi ID3 utilizzando
VideoStreamPlayerCallback.onUserTextReceived()
per il funzionamento dell'IMA DAI. Guarda questo esempio di snippet di codice DAI per servizio completo.
Configura le variabili di pubblicazione dei pod
Tutte le modifiche necessarie per la pubblicazione dei pod vengono eseguite in SampleAdsWrapper.java. La il primo passaggio consiste nell'aggiornare le variabili costanti.
Ecco le costanti di richiesta dello stream del pod di annunci da aggiungere:
STREAM_URL
: utilizzato solo per i live streaming. L'URL dello stream video fornito da manipolatore del manifest o partner di terze parti utilizzando la pubblicazione dei pod. Dovrebbe è necessario inserire l'ID stream fornito dall'SDK IMA DAI prima di invia una richiesta. In questo caso, l'URL dello stream include un segnaposto,"[[STREAMID]]"
, che viene sostituito con l'ID stream prima di creare 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 il manipolatore del manifest o il partner per la pubblicazione di pod di terze parti.API_KEY
: utilizzata solo per i live streaming. Una chiave API facoltativa che può essere necessaria per recuperare un ID stream dall'SDK IMA DAI.
L'esempio di DAI Basic per Android è progettato per riprodurre una varietà di stream diversi ma per la pubblicazione di pod è configurata per riprodurre un singolo stream. Modifica la sezione delle variabili 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 stream di pod dal vivo o VOD per abilitare la pubblicazione dei pod
Pubblicazione di pod in live streaming
Rimuovi il metodo buildStreamRequest()
che è stato utilizzato per passare da
creando una varietà di tipi di stream. Poi modifica requestAndPlayAds()
per chiamare
ImaSdkFactory.createPodStreamRequest()
per creare un annuncio con pod live
richiesta. Infine, richiedi lo streaming 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 da
creando una varietà di tipi di stream. Poi modifica requestAndPlayAds()
per chiamare
ImaSdkFactory.createPodVodStreamRequest()
per creare un annuncio con pubblicazione di pod VOD
richiesta. Infine, richiedi lo streaming 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 in STEAM_URL
in sostituzione di "[[STREAMID]]"
. Dopo la modifica,
creato, il nuovo URL dello stream può 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
l'URL dello stream del tuo partner di tecnologia video (VTP). Quindi chiama
StreamManager.loadThirdPartyStream()
per fare in modo che l'IMA carichi l'URL dello stream e qualsiasi
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 è abilitata, IMA non effettua chiamate a
VideoStreamPlayer.loadUrl()
, in modo da poter rimuovere qualsiasi chiamata a
videoPlayer.setStreamUrl()
e videoPlayer.play()
da questo.
È tutto. Ora stai richiedendo e visualizzando gli annunci in un pod che pubblica lo stream con l'SDK IMA DAI. Per vedere altri esempi di utilizzo dell'SDK Android, consulta la sezione esempi su GitHub.