Utilizzare l'SDK IMA DAI su Android

Riproduci gli stream VOD registrati con l'API Google Cloud Video Stitcher

Questa guida mostra come utilizzare l'SDK IMA DAI per Android per richiedere e riprodurre una sessione di streaming VOD di Google Cloud.

Questa guida amplia l'esempio di base riportato nella guida introduttiva per l'IMA DAI.

Per informazioni sull'integrazione con altre piattaforme o sull'utilizzo degli SDK lato client IMA, consulta SDK Interactive Media Ads.

Se vuoi visualizzare o seguire un'integrazione di esempio completata, scarica l'esempio di Video Stitcher di Cloud.

Configura un progetto Google Cloud

Inserisci le seguenti variabili da utilizzare nell'SDK IMA:

Località
La regione Google Cloud in cui è stata creata la configurazione VOD: LOCATION
Numero progetto
Il numero del progetto Google Cloud che utilizza l'API Video Stitcher: PROJECT_NUMBER
Token OAuth

Il token OAuth a breve termine di un account di servizio con il ruolo utente Video Stitcher:

OAUTH_TOKEN

Scopri di più sulla creazione di token OAuth di breve durata. Il token OAuth può essere riutilizzato in più richieste, a condizione che non sia scaduto.

Codice di rete

Il codice di rete Ad Manager per la richiesta di annunci: NETWORK_CODE

ID configurazione VOD

L'ID configurazione VOD per lo stream VOD: VOD_CONFIG_ID

Scopri di più sulla creazione dell'ID di configurazione VOD nella guida alla creazione di una configurazione VOD per l'unione in cloud.

Configurare l'esempio di base

Vai alla pagina di GitHub della release di IMA Android DAI e scarica l'esempio di base. Questo esempio è un'app per Android che puoi aprire in Android Studio per scopi di test.

Per eseguire il test con uno stream VOD non di Cloud Video Stitcher, imposta la costante CONTENT_TYPE in SampleAdsWrapper.java su ContentType.VOD_HLS o ContentType.VOD_DASH per caricare l'ID CMS e l'ID video appropriati per lo stream. Poi, in SampleVideoPlayer.java, imposta currentlyPlayingStreamType su CONTENT_TYPE_HLS o CONTENT_TYPE_DASH per gestire correttamente i metadati del tipo di stream scelto.

Se tutto funziona correttamente, facendo clic sul pulsante di riproduzione sul video player viene avviato lo short film "Lacrime d'acciaio", con un'interruzione pubblicitaria pre-roll.

Richiedere uno stream VOD

Per sostituire lo stream di esempio con lo stream VOD con annunci uniti, utilizza sdkFactory.createVideoStitcherVodStreamRequest() per creare una sessione di annunci con Google Ad Manager. Puoi utilizzare l'interfaccia utente di Google Ads Manager per individuare le sessioni DAI generate per il monitoraggio e il debug.

sdkFactory.createVideoStitcherVodStreamRequest() è disponibile nell'SDK IMA DAI versione 3.30.0 o successive.

Per utilizzare sdkFactory.createVideoStitcherVodStreamRequest() con il parametro vodConfigId, è necessaria la versione 3.33.0 o successiva dell'SDK DAI IMA.

Nel sample esistente sono presenti istruzioni condizionali per richiedere uno stream VOD o un live streaming. Per farlo funzionare con l'API Google Cloud Video Stitcher, devi aggiungere un nuovo percorso per restituire un StreamRequest creato utilizzando sdkFactory.createVideoStitcherVodStreamRequest().

Ecco un esempio:

videoplayerapp/SampleAdsWrapper.java

...
private enum ContentType {
  LIVE_HLS,
  LIVE_DASH,
// Add a VOD HLS Google Cloud type. DASH streams are also supported.
  VOD_HLS_GOOGLE_CLOUD,
  VOD_DASH_GOOGLE_CLOUD,
  VOD_HLS,
  VOD_DASH,
}

// Set CONTENT_TYPE to the associated enum for the
// stream type you would like to test.
private static final ContentType CONTENT_TYPE =
    ContentType.VOD_HLS_GOOGLE_CLOUD;
...

@Nullable
  private StreamRequest buildStreamRequest() {
    StreamRequest request;
    switch (CONTENT_TYPE) {
      ...
      case VOD_HLS_GOOGLE_CLOUD:
      case VOD_DASH_GOOGLE_CLOUD:
        // VOD HLS or DASH stream generated by the
        // Google Cloud Video Stitcher API.
        request = sdkFactory.createVideoStitcherVodStreamRequest(
          "NETWORK_CODE",
          "LOCATION",
          "PROJECT_NUMBER",
          "OAUTH_TOKEN",
          "VOD_CONFIG_ID"
        );
        if (CONTENT_TYPE == ContentType.VOD_HLS_GOOGLE_CLOUD) {
          request.setFormat(StreamFormat.HLS);
        } else {
          request.setFormat(StreamFormat.DASH);
        }
        return request;
    }
    // Content type not selected.
    return null;
  }
  ...

Ricarica l'app per richiedere e riprodurre lo stream VOD personalizzato.

(Facoltativo) Aggiungi opzioni per la sessione di streaming

Personalizza la richiesta di stream aggiungendo opzioni di sessione per eseguire l'override della configurazione predefinita dell'API Cloud Video Stitcher utilizzando StreamRequest.setVideoStitcherSessionOptions(). Se fornisci un'opzione non riconosciuta, l'API Cloud Video Stitcher risponderà con un errore HTTP 400. Per assistenza, consulta la guida alla risoluzione dei problemi.

Ad esempio, puoi sostituire le opzioni manifest con lo snippet di codice seguente, che richiede due manifest di stream con le rappresentazioni ordinate dalla maggiore alla minore velocità in bit.

public void requestAndPlayAds() {
  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  StreamRequest streamRequest = buildStreamRequest();

  // The following session options are examples. Use session options
  // that are compatible with your video stream.
  Map<String, Object> sessionOptions = Map.of(
    "manifestOptions", Map.of(
      "includeRenditions", List.of(
        Map.of(
          "bitrateBps", 3000, "codecs",
          "hvc1.1.4.L126.B0, mp4a.40.2"),
        Map.of(
          "bitrateBps", 2000,
          "codecs", "avc1.64001f, mp4a.40.2")
      ),
      "bitrateOrder", "ascending"
    )
  );

  /* sessionOptions JSON structure.
   * {
   *  "manifestOptions": {
   *    "includeRenditions": [
   *      {"bitrateBps": 3000, "codecs": "hvc1.1.4.L126.B0, mp4a.40.2"},
   *      {"bitrateBps": 2000, "codecs": "avc1.64001f, mp4a.40.2"},
   *    ],
   *    "bitrateOrder": "ascending"
   *  }
   * };
   */

  streamRequest.setVideoStitcherSessionOptions(sessionOptions);
  adsLoader.requestStream(streamRequest);
}

Esegui la pulizia

Ora che hai ospitato correttamente uno streaming VOD utilizzando l'API Google Cloud Video Stitcher e lo hai richiesto utilizzando l'SDK IMA DAI per Android, è importante ripulire le risorse di pubblicazione.

Segui la guida alla pulizia dei contenuti VOD per rimuovere risorse e asset non necessari.