Use o SDK IMA DAI no Android

Streams de VOD do Play registadas na API Google Cloud Video Stitcher

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

Este guia expande o exemplo básico do guia de introdução para o IMA DAI.

Para obter informações sobre a integração com outras plataformas ou sobre a utilização dos SDKs do lado do cliente para IMA, consulte os SDKs para Anúncios Multimédia Interativos.

Se quiser ver ou acompanhar uma integração de exemplo concluída, transfira o exemplo do Editor de vídeo do Google Cloud.

Configure um projeto do Google Cloud

Introduza as seguintes variáveis para utilização no SDK para IMA:

Location
A região do Google Cloud onde 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 utilizador do Video Stitcher:

OAUTH_TOKEN

Leia mais acerca da criação de tokens OAuth de curta duração. O token OAuth pode ser reutilizado em vários pedidos, desde que não tenha expirado.

Código de rede

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

ID da configuração de VOD

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

Leia mais acerca da criação do ID de configuração de VOD no guia de criação de configuração de VOD da união na nuvem.

Configure o exemplo básico

Aceda à página de lançamento do GitHub do DAI do IMA para Android e transfira o exemplo básico. Este exemplo é uma app Android que pode abrir no Android Studio para fins de teste.

Para testar com uma stream VOD do editor de vídeo na nuvem, defina a constante 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 adequados para a stream. Em seguida, em SampleVideoPlayer.java, defina currentlyPlayingStreamType como CONTENT_TYPE_HLS ou CONTENT_TYPE_DASH para processar corretamente os metadados do tipo de stream escolhido.

Se tudo estiver a funcionar corretamente, quando clicar no botão de reprodução no leitor de vídeo, começa o filme curto "Tears of Steel" com uma pausa para anúncios de inserção inicial.

Peça uma stream de VOD

Para substituir a stream de exemplo pela sua stream VOD com anúncios incorporados, use sdkFactory.createVideoStitcherVodStreamRequest() para criar uma sessão de anúncios com o Google Ad Manager. Pode usar a IU do Google Ad Manager para localizar as sessões de DAI geradas para monitorização e depuração.

sdkFactory.createVideoStitcherVodStreamRequest() está disponível no SDK IMA DAI v3.30.0 ou superior.

Para usar sdkFactory.createVideoStitcherVodStreamRequest() com o parâmetro vodConfigId, é necessária a versão 3.33.0 ou superior do SDK IMA DAI.

No exemplo existente, existem declarações condicionais para pedir uma stream VOD ou uma stream em direto. Para que funcione com a API Google Cloud Video Stitcher, tem de adicionar um novo caminho para devolver um StreamRequest criado com sdkFactory.createVideoStitcherVodStreamRequest().

Segue-se 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 a app para pedir e ver a sua stream de VOD personalizada.

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

Personalize o seu pedido de stream adicionando opções de sessão para substituir a configuração predefinida da API Cloud Video Stitcher através de StreamRequest.setVideoStitcherSessionOptions(). Se fornecer uma opção não reconhecida, a API Cloud Video Stitcher responde com um erro HTTP 400. Consulte o guia de resolução de problemas para obter assistência.

Por exemplo, pode substituir as opções do manifesto com o seguinte fragmento do código, que pede dois manifestos de streams com representações ordenadas da taxa de bits mais baixa para a mais alta.

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 alojou com êxito uma stream VOD através da API Google Cloud Video Stitcher e a pediu através do SDK DAI para IMA para Android, é importante limpar todos os recursos de publicação.

Siga o guia de limpeza de VOD para remover recursos e recursos multimédia desnecessários.