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 mostra como reproduzir uma transmissão de veiculação de conjunto DAI usando o SDK da DAI do IMA com um player de vídeo para reprodução de transmissões 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 do IMA para DAI, 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 precisa exigir que você insira o ID do stream fornecido pelo SDK do 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 seu evento de veiculação de pod no Ad Manager 360. Ele pode ser criado pelo manipulador de manifesto ou pelo 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 conjuntos 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 transmissão usando o método videoPlayer.setStreamUrl() e chame o método videoPlayer.play() para iniciar a reprodução da transmissão.

// 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 em um stream de veiculação de conjunto com o SDK do IMA DAI, sugerimos que limpe todos os recursos após a conclusão da sessão de veiculação de conjunto. 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.