Configurare l'SDK IMA per DAI

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 l'annuncio e il video dei contenuti, che possono essere VOD o live. L'SDK restituisce quindi uno stream video combinato, in modo da non dover gestire il passaggio tra l'annuncio e il video di contenuti all'interno dell'app.

Seleziona la soluzione DAI che ti interessa

DAI con pubblicazione di 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 l'annuncio e il video dei contenuti, che possono essere VOD o live. L'SDK restituisce quindi uno stream video combinato, in modo da non dover gestire il passaggio tra l'annuncio e il video di contenuti all'interno dell'app.

Questa guida mostra come riprodurre uno stream di pubblicazione di pod DAI utilizzando l'SDK IMA DAI con un video player per la riproduzione di stream live e VOD. Per visualizzare o seguire un'integrazione di esempio completata, scarica l'esempio di pubblicazione di pod.

Panoramica della pubblicazione di pod DAI di IMA

  • StreamRequest: un oggetto che definisce una richiesta di stream ai server pubblicitari di Google. Deve essere creato utilizzando ImaSdkFactory.createPodStreamRequest() o ImaSdkFactory.createPodVodStreamRequest() per attivare la pubblicazione di pod. Questi metodi richiedono un codice di rete e createPodStreamRequest 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, ad esempio l'attivazione di ping di monitoraggio e l'inoltro degli eventi di stream al publisher.

Prerequisiti

Configurare le variabili di pubblicazione di pod

Tutte le modifiche necessarie per la pubblicazione di pod vengono apportate in SampleAdsWrapper.java. Il primo passaggio consiste nell'aggiornare le variabili costanti.

Ecco le costanti della richiesta di stream di pod di annunci da aggiungere:

  • STREAM_URL: utilizzato solo per i live streaming: l'URL dello stream video fornito da manipolatore di manifest o partner di terze parti che utilizza la pubblicazione di pod. Prima di effettuare una richiesta, devi 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 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 dell'asset personalizzato che identifica l'evento di pubblicazione di 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 di Android DAI è progettato per riprodurre una varietà di stream diversi, ma per la pubblicazione di pod è configurato per riprodurre un solo stream. Modifica la sezione delle variabili dell'esempio in modo che corrisponda a quanto segue:

/** This class implements IMA to add pod ad-serving support to SampleVideoPlayer */
@SuppressLint("UnsafeOptInUsageError")
/* @SuppressLint is needed for new media3 APIs. */
public class SampleAdsWrapper
    implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {

  // Set up the pod serving variables.
  private static final String NETWORK_CODE = "";
  private static final String CUSTOM_ASSET_KEY = "";
  private static final String API_KEY = "";
  private static final String STREAM_URL = "";
  private static final StreamFormat STREAM_FORMAT = StreamFormat.HLS;

Crea una richiesta di stream di pod live o VOD per attivare la pubblicazione di pod

Pubblicazione di pod di live streaming

Rimuovi il metodo buildStreamRequest() che era stato utilizzato per passare da un tipo di stream all'altro. Poi, modifica requestAndPlayAds() per chiamare ImaSdkFactory.createPodStreamRequest() per creare una richiesta di annuncio di pubblicazione di pod live.

// Live pod stream request.
request = sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);

Pubblicazione di pod di stream VOD

Rimuovi il metodo buildStreamRequest() che era stato utilizzato per passare da un tipo di stream all'altro. Quindi, modifica requestAndPlayAds() per chiamare ImaSdkFactory.createPodVodStreamRequest() per creare una richiesta di annuncio VOD Pod Serving.

// VOD pod stream request.
request = sdkFactory.createPodVodStreamRequest(NETWORK_CODE);

Dopo aver creato l'istanza della richiesta di stream, richiedi lo stream utilizzando AdsLoader.requestStream():

request.setFormat(STREAM_FORMAT);
adsLoader.requestStream(request);

Modificare e impostare l'URL dello stream

Pubblicazione di pod di live streaming

Chiama il metodo StreamManager.getStreamId() per ottenere l'ID stream. Questo deve essere inserito in STEAM_URL sostituendo "[[STREAMID]]". Dopo aver apportato questa modifica, imposta il nuovo URL dello stream utilizzando il metodo videoPlayer.setStreamUrl() e chiama il metodo videoPlayer.play() per avviare la riproduzione dello stream.

// Play the live pod stream.
streamID = streamManager.getStreamId();
String liveStreamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
// Call videoPlayer.play() here, because IMA doesn't call the VideoStreamPlayer.loadUrl()
// function for livestreams.
videoPlayer.setStreamUrl(liveStreamUrl);
videoPlayer.play();

Pubblicazione di pod di stream VOD

  1. Chiama il metodo StreamManager.getStreamId() per ottenere l'ID stream.
  2. Richiedi un URL dello stream al tuo partner di tecnologia video (VTP).
  3. Dopo aver ricevuto l'URL dal tuo VTP, chiama il metodo StreamManager.loadThirdPartyStream() con l'URL per caricare lo stream, insieme a eventuali sottotitoli codificati restituiti dal VTP.
// Play the VOD pod stream.
streamID = streamManager.getStreamId();
String vodStreamUrl = "";
// Refer to your Video Tech Partner (VTP) or video stitching guide to fetch the stream URL
// and the subtitles for a the ad stitched VOD stream.

// In the following commented out code, 'vtpInterface' is a place holder
// for your own video technology partner (VTP) API calls.
// vodStreamUrl = vtpInterface.requestStreamURL(streamID);
List<Map<String, String>> subtitles = new ArrayList<>();
streamManager.loadThirdPartyStream(vodStreamUrl, subtitles);

Per le richieste di pubblicazione di pod VOD, IMA chiama il callback VideoStreamPlayer.loadUrl() quando lo stream è stato caricato. Per avviare la riproduzione dello stream, aggiungi le chiamate videoPlayer.setStreamUrl() e videoPlayer.play() al callback VideoStreamPlayer.loadUrl():

private VideoStreamPlayer createVideoStreamPlayer() {
  return new VideoStreamPlayer() {
    @Override
    public void loadUrl(String url, List<HashMap<String, String>> subtitles) {
      // IMA doesn't make calls to VideoStreamPlayer.loadUrl() for pod serving live streams.
      // The following code is for VOD streams.
      videoPlayer.setStreamUrl(url);
      videoPlayer.play();
    }

Pulire gli asset IMA DAI

Una volta completata la richiesta e la visualizzazione degli annunci in uno stream di pubblicazione di pod con l'SDK IMA DAI, ti consigliamo di eliminare tutte le risorse al termine della sessione di pubblicazione di pod. Chiama StreamManager.destroy() per interrompere la riproduzione dello stream, interrompere il monitoraggio di tutti gli annunci e rilasciare tutti gli asset dello stream caricati.

Per vedere altri esempi di utilizzo dell'SDK Android, consulta gli esempi su GitHub.