Iniziare a utilizzare l'SDK IMA DAI

Gli SDK IMA semplificano l'integrazione degli annunci multimediali nei siti web e nelle 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 annuncio e video di contenuti, sia VOD che contenuti dal vivo. L'SDK restituisce quindi uno stream video combinato, in modo che tu non debba gestire il passaggio dall'annuncio al video di contenuti 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 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 annuncio e video di contenuti, sia VOD che contenuti dal vivo. L'SDK restituisce quindi uno stream video combinato, in modo che tu non debba gestire il passaggio dall'annuncio al video di contenuti all'interno dell'app.

Questa guida illustra come riprodurre uno stream con pubblicazione di pod DAI utilizzando l'SDK IMA DAI con un semplice video player 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 utilizzando ImaSdkFactory.createPodStreamRequest() o ImaSdkFactory.createPodVodStreamRequest() per abilitare la pubblicazione dei pod. Questi metodi richiedono un codice di rete e createPodStreamRequest richiede 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

Configura le variabili di pubblicazione dei pod

Tutte le modifiche necessarie per la pubblicazione dei pod vengono eseguite in SampleAdsWrapper.java. Il primo passaggio prevede l'aggiornamento delle 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 dal manipolatore del manifest o dal partner di terze parti utilizzando la pubblicazione dei pod. Prima di effettuare una richiesta, dovresti inserire l'ID stream fornito dall'SDK IMA DAI. In questo caso, l'URL dello stream include un segnaposto, "[[STREAMID]]", che viene sostituito con l'ID dello 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 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 base del DAI Android è progettato per riprodurre una varietà di tipi di stream diversi, ma per la pubblicazione di pod è configurato 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 dalla creazione di vari tipi di stream. Poi modifica requestAndPlayAds() in modo che chiami ImaSdkFactory.createPodStreamRequest() per creare una richiesta di annuncio per la pubblicazione di pod live. 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 dalla creazione di vari tipi di stream. Poi, modifica requestAndPlayAds() in modo da chiamare ImaSdkFactory.createPodVodStreamRequest() per creare una richiesta di annuncio con pubblicazione di pod VOD. 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. Questo valore deve essere inserito nella STEAM_URL che sostituisce "[[STREAMID]]". Dopo aver apportato questa modifica, 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 URL dello streaming al tuo partner di tecnologia video (VTP). Quindi chiama StreamManager.loadThirdPartyStream() per fare in modo che l'IMA carichi l'URL dello stream ed 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 di pod è abilitata, IMA non effettua chiamate a VideoStreamPlayer.loadUrl(), quindi puoi rimuovere qualsiasi chiamata a videoPlayer.setStreamUrl() e videoPlayer.play() da questo elemento.

È tutto. Stai richiedendo e mostrando annunci in uno stream di pubblicazione di pod con l'SDK IMA DAI. Per altri esempi dell'SDK Android in uso, guarda gli esempi su GitHub.