Usar o SDK de DAI do IMA no Android

Reproduzir transmissões de VOD registradas com a API Google Cloud Video Stitcher

Este guia demonstra como usar o SDK IMA DAI para Android para solicitar e reproduzir uma sessão de streaming VOD do Google Cloud.

Este guia expande o exemplo básico do Guia de início de uso da DAI do IMA.

Para informações sobre a integração com outras plataformas ou o uso dos SDKs do lado do cliente do IMA, consulte SDKs do Interactive Media Ads.

Configure um projeto do Google Cloud

Insira as seguintes variáveis para uso no SDK do IMA:

Local
A região do Google Cloud em que a configuração de VOD foi criada: LOCATION
Número do projeto
O número do projeto do Google Cloud que usa a API Video Stitcher: PROJECT_NUMBER
Token OAuth

Um token OAuth de curta duração de uma conta de serviço com a função de usuário do Video Stitcher:

OAUTH_TOKEN

Leia mais sobre como criar tokens OAuth de curta duração. O token OAuth pode ser reutilizado em várias solicitações, desde que não tenha sido expirou.

Código da rede

O código de rede do Ad Manager para solicitar anúncios: NETWORK_CODE

ID de configuração do VOD

O ID da configuração de VOD para a transmissão de VOD: VOD_CONFIG_ID

Leia mais sobre como criar o ID de configuração de VOD no guia Criar um guia de configuração de VOD no Cloud stitching.

Configurar o exemplo básico

Acesse a versão do GitHub sobre a DAI do IMA para Android página e faça o download exemplo básico. Este exemplo é um app Android que você pode abrir no Android Studio para fins de teste.

Para testar com um stream VOD do integrador de vídeos que não seja do Cloud, defina o CONTENT_TYPE em SampleAdsWrapper.java como ContentType.VOD_HLS ou ContentType.VOD_DASH para carregar o ID do CMS e o ID do vídeo apropriados riacho. Em seguida, em SampleVideoPlayer.java, defina currentlyPlayingStreamType como CONTENT_TYPE_HLS ou CONTENT_TYPE_DASH, para processar corretamente o os metadados do tipo de transmissão escolhido.

Se tudo estiver funcionando corretamente, ao clicar no botão de reprodução no player de vídeo, o curta-metragem "Tears of Steel" vai começar, com um intervalo de anúncio pré-rolagem.

Solicitar um stream de VOD

Para substituir o stream de amostra pelo stream de VOD integrado ao seu anúncio, use sdkFactory.createVideoStitcherVodStreamRequest() para criar uma sessão com o Google Ad Manager. Você pode usar o Gerenciador de Anúncios do Google interface de gerenciador para localizar as sessões de DAI geradas para monitoramento e depuração.

sdkFactory.createVideoStitcherVodStreamRequest() está disponível no SDK de DAI do IMA v3.30.0 ou mais recente.

Para usar sdkFactory.createVideoStitcherVodStreamRequest() com o parâmetro vodConfigId, é necessário ter o SDK do IMA DAI versão 3.33.0 ou mais recente.

No exemplo atual, há instruções condicionais para solicitar um stream de VOD ou uma transmissão ao vivo. Para fazê-lo funcionar com o integrador de vídeos do Google Cloud API, é preciso adicionar um novo caminho para retornar um StreamRequest criado usando sdkFactory.createVideoStitcherVodStreamRequest().

Veja um exemplo:

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;
  }
  ...

Recarregue o app para solicitar e assistir a transmissão VOD personalizada.

(Opcional) Adicionar opções de sessão de streaming

Personalize sua solicitação de transmissão adicionando opções de sessão para substituir a configuração padrão da API Cloud Video Stitcher usando StreamRequest.setVideoStitcherSessionOptions(). Se você fornecer uma opção não reconhecida, a API Cloud Video Stitcher vai responder com um erro HTTP 400. Consulte o guia de solução de problemas para receber ajuda.

Por exemplo, é possível substituir opções do manifesto pelo snippet de código a seguir, que solicita dois manifestos de stream com renderizações ordenadas da menor taxa de bits para a maior.

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);
}

Limpar

Agora que você hospedou um fluxo de VOD usando a API Google Cloud Video Stitcher e o SDK do IMA DAI para Android, é importante limpar todos os recursos de veiculação.

Siga o guia Limpeza de VOD para remover recursos e recursos desnecessários.