Cómo comenzar a usar el SDK de IMA de DAI

Los SDK de IMA facilitan la integración de anuncios multimedia en sus sitios web y aplicaciones. Los SDK de IMA pueden solicitar anuncios de cualquier servidor de anuncios compatible con VAST y administra la reproducción de anuncios en tus apps. Con los SDK de IMA de DAI, las aplicaciones solicitud de transmisión para anuncios y videos de contenido, ya sea VOD o contenido en vivo. Luego, el SDK muestra un una transmisión de video por Internet combinada, de modo que no tenga que administrar el cambio entre el video del anuncio y el de contenido dentro de la app.

Selecciona la solución de DAI que te interesa

DAI de publicación de grupos de anuncios

Los SDK de IMA facilitan la integración de anuncios multimedia en sus sitios web y aplicaciones. Los SDK de IMA pueden solicitar anuncios de cualquier servidor de anuncios compatible con VAST y administra la reproducción de anuncios en tus apps. Con los SDK de IMA de DAI, las aplicaciones solicitud de transmisión para anuncios y videos de contenido, ya sea VOD o contenido en vivo. Luego, el SDK muestra un una transmisión de video por Internet combinada, de modo que no tenga que administrar el cambio entre el video del anuncio y el de contenido dentro de la app.

En esta guía, se muestra cómo reproducir una transmisión de Publicación de grupos de anuncios de DAI con la DAI de IMA SDK con un reproductor de video simple para la reproducción de transmisiones en vivo y de VOD. Si quisieras o seguir una integración de muestra completa, descarga la ejemplo de publicación de grupos de anuncios.

Descripción general de la publicación de grupos de anuncios de DAI de IMA

  • StreamRequest: Es un objeto que define una solicitud de transmisión para a través de los servidores de publicidad de Google. Se deben crear usando cualquiera de las siguientes opciones: ImaSdkFactory.createPodStreamRequest() o ImaSdkFactory.createPodVodStreamRequest() para habilitar la entrega de grupos de anuncios. Estos métodos requieren un código de red. createPodStreamRequest también requiere una clave del recurso personalizada y una clave de API opcional. Ambos incluyen otros parámetros opcionales.

  • StreamManager: Es un objeto que controla la comunicación entre entre la transmisión de video por Internet y el SDK de IMA de DAI, como activar pings de seguimiento reenviar eventos de transmisión al publicador.

Requisitos previos

Configura las variables de publicación de grupos de anuncios

Todos los cambios necesarios para la entrega de pods se realizan en SampleAdsWrapper.java. El el primer paso es actualizar las variables constantes.

Estas son las constantes de solicitud de transmisión del grupo de anuncios que se agregarán:

  • STREAM_URL: Se usa solo para transmisiones en vivo: Corresponde a la URL de la transmisión de video por Internet proporcionada por tu manipulador de manifiestos o socio externo usando la publicación de grupos de anuncios. Debe se le solicita que inserte el ID de transmisión proporcionado por el SDK de IMA de DAI antes de realiza una solicitud. En este caso, la URL de la transmisión incluye un marcador de posición, "[[STREAMID]]", que se reemplaza por el ID de transmisión, antes de crear una para cada solicitud.

  • NETWORK_CODE: Es el código de red de tu cuenta de Ad Manager 360.

  • CUSTOM_ASSET_KEY: Se usa solo para transmisiones en vivo, que es la clave del activo personalizada que identifica tu evento de publicación de grupos de anuncios en Ad Manager 360. Esto lo puede crear tu manipulador de manifiestos o el socio externo de publicación de grupos de anuncios.

  • API_KEY: Se usa solo para transmisiones en vivo. Es una clave de API opcional que se puede necesarios para recuperar un ID de transmisión del SDK de IMA de DAI.

BasicExample de DAI de Android se diseñó para reproducir una variedad de transmisiones pero, en el caso de la entrega de grupos de anuncios, está configurado para reproducir una sola transmisión. Cambia la sección de variables del ejemplo para que coincida con lo siguiente:

/** This class adds ad-serving support to Sample HlsVideoPlayer */
public class SampleAdsWrapper
        implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {

  // Podserving Stream Constants.
  private static final String STREAM_URL =
          "https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/" +
          "master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample" +
          "&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000" +
          "&seg-host=dai.google.com&stream_id=[[STREAMID]]";
  private static final String NETWORK_CODE = "51636543";
  private static final String CUSTOM_ASSET_KEY = "google-sample";
  private static final String API_KEY = "";

  private static final String PLAYER_TYPE = "DAISamplePlayer";

  /** Log interface, so we can output the log commands to the UI or similar. */
  public interface Logger {

...

Crea una solicitud de transmisión de grupo de anuncios en vivo o de VOD para habilitar la publicación de grupos de anuncios

Publicación de grupos de anuncios en vivo

Quita el método buildStreamRequest() que se usó para alternar. compilando varios tipos de transmisiones. Luego, cambia requestAndPlayAds() para llamar ImaSdkFactory.createPodStreamRequest() para crear un anuncio de publicación de grupos de anuncios en vivo para cada solicitud. Por último, solicita la transmisión con AdsLoader.requestStream().

public void requestAndPlayAds() {
  StreamRequest request =
      sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);
  request.setFormat(StreamFormat.HLS);

  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  adsLoader.requestStream(request);
}

Publicación de grupos de anuncios de transmisión de VOD

Quita el método buildStreamRequest() que se usó para alternar. compilando varios tipos de transmisiones. Luego, cambia requestAndPlayAds() para llamar ImaSdkFactory.createPodVodStreamRequest() para crear un anuncio de publicación de grupos de VOD para cada solicitud. Por último, solicita la transmisión con AdsLoader.requestStream().

public void requestAndPlayAds() {
  StreamRequest request =
      sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
  request.setFormat(StreamFormat.HLS);

  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  adsLoader.requestStream(request);
}

Cómo editar y configurar la URL de la transmisión

Publicación de grupos de anuncios en vivo

Llama a StreamManager.getStreamId() para obtener el ID de transmisión. Luego, se debe se inserta en STEAM_URL y reemplaza "[[STREAMID]]". Después de este cambio se puede configurar la nueva URL de transmisión con videoPlayer.setStreamUrl().

@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
  streamManager = event.getStreamManager();
  streamManager.addAdErrorListener(this);
  streamManager.addAdEventListener(this);

  // To enable streams
  String streamID = streamManager.getStreamId();
  String streamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);

  streamManager.init();

  videoPlayer.setStreamUrl(streamUrl);
  videoPlayer.play();
}

Publicación de grupos de anuncios de transmisión de VOD

Llama a StreamManager.getStreamId() para obtener el ID de transmisión. Luego, solicita URL de transmisión de su socio de tecnología de video (VTP). Luego, llama StreamManager.loadThirdPartyStream() para que IMA cargue la URL de transmisión y cualquier subtítulos que muestra tu TVP.

@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
  streamManager = event.getStreamManager();
  streamManager.addAdErrorListener(this);
  streamManager.addAdEventListener(this);

  // To enable streams
  String streamID = streamManager.getStreamId();
  // 'vtpInterface' is a place holder for your own video technology partner
  // (VTP) API calls.
  String streamUrl = vtpInterface.requestStreamURL(streamID);

  streamManager.init();

  // Pass any subtitles returned by your VTP in this step as well.
  streamManager.loadThirdPartyStream(streamUrl, subtitles);
}

Cuando se habilita la publicación de grupos de anuncios, IMA no realiza llamadas a VideoStreamPlayer.loadUrl(), para que puedas quitar cualquier llamada a videoPlayer.setStreamUrl() y videoPlayer.play().

Eso es todo. Ahora está solicitando y mostrando anuncios en una transmisión de publicación de grupos de anuncios con el SDK de IMA de DAI. Para ver otros ejemplos del SDK de Android en uso, mira la muestras en GitHub.