Configurar com a DAI de veiculação de conjunto

Selecione a plataforma: HTML5 Android iOS tvOS Cast Roku

Os SDKs do IMA facilitam a integração de anúncios multimídia aos seus sites e apps. Os SDKs do IMA podem solicitar anúncios de qualquer servidor de anúncios compatível com VAST e gerenciar a reprodução de anúncios nos seus apps. Com os SDKs de DAI do IMA, os apps fazem uma solicitação de stream para anúncios e vídeos de conteúdo, seja VOD ou conteúdo ao vivo. Em seguida, o SDK retorna um stream de vídeo combinado para que você não precise gerenciar a alternância entre o anúncio e o vídeo de conteúdo no seu app.

Este guia demonstra como reproduzir um stream de veiculação de conjunto DAI usando o SDK da DAI do IMA com um player de vídeo para reprodução de streams ao vivo e de VOD. Para conferir ou seguir uma amostra de integração concluída, faça o download do exemplo de veiculação de pod.

Visão geral da veiculação de conjunto DAI do IMA

  • StreamRequest: um objeto que define uma solicitação de stream para os servidores de publicidade do Google. Precisa ser criado usando ImaSdkFactory.createPodStreamRequest() ou ImaSdkFactory.createPodVodStreamRequest() para ativar a veiculação de pod. Esses métodos exigem um código de rede, e createPodStreamRequest também exige uma chave de recurso personalizada e uma chave de API opcional. Ambos incluem outros parâmetros opcionais.

  • StreamManager: um objeto que processa a comunicação entre o stream de vídeo e o SDK de DAI do IMA, como disparar pings de rastreamento e encaminhar eventos de stream para o publisher.

Pré-requisitos

Configurar as variáveis da veiculação de conjunto

Todas as mudanças necessárias para a veiculação de pod são feitas em SampleAdsWrapper.java. A primeira etapa é atualizar as variáveis constantes.

Confira as constantes de solicitação de stream do pod de anúncios que precisam ser adicionadas:

  • STREAM_URL: usado apenas para transmissões ao vivo. É o URL do stream de vídeo fornecido pelo manipulador de manifesto ou parceiro terceirizado que usa a veiculação de conjunto. Ele deve exigir que você insira o ID do stream fornecido pelo SDK de DAI do IMA antes de fazer uma solicitação. Nesse caso, o URL do stream inclui um marcador de posição, "[[STREAMID]]", que é substituído pelo ID do stream antes de fazer uma solicitação.

  • NETWORK_CODE: o código de rede da sua conta do Ad Manager 360.

  • CUSTOM_ASSET_KEY: usado apenas para transmissões ao vivo. É a chave de recurso personalizada que identifica o evento de veiculação de pod no Ad Manager 360. Ele pode ser criado pelo seu manipulador de manifesto ou parceiro terceirizado de veiculação de conjunto.

  • API_KEY: usado apenas para transmissões ao vivo: uma chave de API opcional que pode ser necessária para recuperar um ID de transmissão do SDK de DAI do IMA.

O BasicExample da DAI para Android foi projetado para reproduzir vários tipos de stream, mas, para a veiculação de pod, ele está configurado para reproduzir apenas um stream. Altere a seção de variáveis do exemplo para que corresponda ao seguinte:

/** 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;

Criar uma solicitação de stream de conjunto ao vivo ou VOD para ativar a veiculação de conjunto

Veiculação de pod de transmissão ao vivo

Remova o método buildStreamRequest(), que era usado para alternar entre a criação de vários tipos de stream. Em seguida, modifique requestAndPlayAds() para chamar ImaSdkFactory.createPodStreamRequest() e criar uma solicitação de anúncio da veiculação de conjunto de anúncios em tempo real.

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

Veiculação de conjunto de stream de VOD

Remova o método buildStreamRequest(), que era usado para alternar entre a criação de vários tipos de stream. Em seguida, modifique requestAndPlayAds() para chamar ImaSdkFactory.createPodVodStreamRequest() e criar uma solicitação de anúncio de veiculação de conjunto de VOD.

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

Depois de criar a instância de solicitação de stream, solicite o stream usando AdsLoader.requestStream():

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

Editar e definir o URL do stream

Veiculação de pod de transmissão ao vivo

Chame o método StreamManager.getStreamId() para receber o ID do stream. Isso precisa ser inserido no STEAM_URL, substituindo "[[STREAMID]]". Depois que essa mudança for feita, defina o novo URL de stream usando o método videoPlayer.setStreamUrl() e chame o método videoPlayer.play() para iniciar a reprodução do 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();

Veiculação de conjunto de stream de VOD

  1. Chame o método StreamManager.getStreamId() para receber o ID do stream.
  2. Solicite um URL da transmissão ao seu parceiro em tecnologia de vídeo (VTP).
  3. Depois de receber o URL do VTP, chame o método StreamManager.loadThirdPartyStream() com o URL para carregar a transmissão, junto com as legendas retornadas pelo 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);

Para solicitações de veiculação de pod de VOD, o IMA chama o callback VideoStreamPlayer.loadUrl() quando o stream é carregado. Para iniciar a reprodução do stream, adicione as chamadas videoPlayer.setStreamUrl() e videoPlayer.play() ao 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();
    }

Limpar recursos de DAI do IMA

Quando você terminar de solicitar e mostrar anúncios de display em um stream de veiculação de pod com o SDK da DAI do IMA, sugerimos que limpe todos os recursos após o término da sessão de veiculação de pod. Chame StreamManager.destroy() para interromper a reprodução do stream, interromper todo o rastreamento de anúncios e liberar todos os recursos de stream carregados.

Para ver outros exemplos de uso do SDK do Android, consulte exemplos no GitHub.