Usar o SDK do IMA DAI 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 para a 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.

Se você quiser conferir ou seguir uma integração de exemplo completa, faça o download do exemplo de integrador de vídeos do Cloud.

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 expirado.

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 página de lançamento do DAI do IMA para Android no GitHub e faça o download do exemplo básico. Este exemplo é um app Android que pode ser aberto no Android Studio para fins de teste.

Para testar com uma transmissão VOD que não seja do Cloud Video Stitcher, defina a constante CONTENT_TYPE em SampleAdsWrapper.java como ContentType.VOD_HLS ou ContentType.VOD_DASH para carregar o ID do CMS e do vídeo adequados para a transmissão. Em seguida, em SampleVideoPlayer.java, defina currentlyPlayingStreamType como CONTENT_TYPE_HLS ou CONTENT_TYPE_DASH para processar corretamente 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 fluxo de amostra pelo fluxo VOD com anúncios agrupados, use sdkFactory.createVideoStitcherVodStreamRequest() para criar uma sessão de anúncios com o Google Ad Manager. Você pode usar a interface do Google Ad Manager para localizar as sessões de DAI geradas para monitoramento e depuração.

sdkFactory.createVideoStitcherVodStreamRequest() está disponível no SDK do IMA DAI 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 uma transmissão VOD ou uma transmissão ao vivo. Para que ele funcione com a API Google Cloud Video Stitcher, é necessário 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 reproduzir 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 as opções de manifesto com o snippet de código abaixo, que solicita dois manifestos de transmissão com renditions ordenadas do bitrate mais baixo para o mais alto.

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(
      "bitrateOrder", "ascending"
    )
  );

  /* sessionOptions JSON structure.
   * {
   *  "manifestOptions": {
   *    "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.