Cómo usar el SDK de IMA de DAI en Android

Reproduce transmisiones en vivo registradas con la API de Video Stitcher de Google Cloud

Esta guía muestra cómo usar el SDK de IMA de DAI para Android para solicitar y reproducir un transmisión en vivo de un evento registrado en la herramienta de unión de videos de Google Cloud API y cómo insertar una pausa publicitaria durante la reproducción.

En esta guía, se amplía el ejemplo básico de la sección Cómo comenzar guía para la DAI de IMA.

Para obtener información sobre la integración con otras plataformas o el uso de IMA Para obtener más información sobre los SDKs del cliente, consulta SDK de anuncios multimedia interactivos.

Configura un proyecto de Google Cloud

Ingresa las siguientes variables para usarlas en el SDK de IMA:

Ubicación
La región de Google Cloud donde se creó tu configuración activa: LOCATION
Número del proyecto
El número de proyecto de Google Cloud con la API de Video Stitcher: PROJECT_NUMBER
Token de OAuth

El token de OAuth de corta duración de una cuenta de servicio con el usuario de Video Stitcher rol:

OAUTH_TOKEN

Más información sobre crear credenciales de corta duración para los servicios . El token de OAuth se puede volver a usar en varias solicitudes, siempre y cuando no haya vencido.

Código de red

Este es el código de red de Ad Manager para solicitar anuncios: NETWORK_CODE

ID de configuración en vivo
El ID de configuración en vivo que especificaste cuando creaste el evento de transmisión en vivo: LIVE_CONFIG_ID
Clave del activo personalizada
La clave del recurso personalizado de Ad Manager que se generó durante el proceso de creación de una configuración de un evento de transmisión en vivo con la API de Video Stitcher: CUSTOM_ASSET_KEY
.

Descarga el ejemplo básico

Descargue y ejecute DAI básico de IMA para Android Ejemplo: Haz clic en el botón de reproducción del reproductor de video para comenzar el cortometraje "Lágrimas de Acero", que contiene pausas publicitarias cada 30 segundos.

Solicitar una transmisión en vivo

Para reemplazar la transmisión de muestra con tu transmisión en vivo, debes usar el ImaSdkFactory.createVideoStitcherLiveStreamRequest() para crear una sesión de anuncios con Google Ad Manager. Puedes usar la API de Google Ads IU del administrador para localizar la DAI generada. sesiones para supervisar y con fines de depuración.

En la muestra existente, hay sentencias condicionales para solicitar un VOD. una transmisión en vivo o una transmisión en vivo. Para que funcione con la API de Video Stitcher de Google Cloud, debes agregar una nueva ruta de acceso para mostrar un StreamRequest creado con ImaSdkFactory.createVideoStitcherLiveStreamRequest().

Por ejemplo:

videoplayerapp/SampleAdsWrapper.java

private sdkFactory ImaSdkFactory;
...
private enum ContentType {
  LIVE_HLS,
  LIVE_DASH,
// Add a Live HLS Google Cloud type.
  LIVE_HLS_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.LIVE_HLS_GOOGLE_CLOUD;
...

@Nullable
  private StreamRequest buildStreamRequest() {
    StreamRequest request;
    switch (CONTENT_TYPE) {
      ...
      case LIVE_HLS_GOOGLE_CLOUD:
        // Live HLS stream generated by the Google Cloud Video Stitcher API.
        request = sdkFactory.createVideoStitcherLiveStreamRequest(
          "NETWORK_CODE",
          "CUSTOM_ASSET_KEY",
          "LIVE_CONFIG_ID",
          "LOCATION",
          "PROJECT_NUMBER",
          "OAUTH_TOKEN"
        );
        request.setFormat(StreamFormat.HLS);
        return request;
    }
    // Content type not selected.
    return null;
  }
...

Vuelve a cargar la app para solicitar y reproducir la transmisión en vivo personalizada.

Agrega opciones de sesiones de transmisión (opcional)

Personaliza tu solicitud de transmisión agregando opciones de sesión para anular el valor predeterminado. Configuración de la API de Cloud Video Stitcher con StreamRequest.setVideoStitcherSessionOptions(). Si proporcionas una opción no reconocida, el servicio de La API de Video Stitcher responderá con un error HTTP 400. Consulta el guía de solución de problemas para recibir asistencia.

Por ejemplo, puedes anular el opciones del manifiesto con el siguiente fragmento de código, que solicita dos manifiestos de transmisión con formatos ordenados de menor a mayor tasa de bits.

public void requestAndPlayAds() {
  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  StreamRequest streamRequest = buildStreamRequest();

  Map<String, Object> sessionOptions = Map.of(
    "manifestOptions", Map.of(
      "includeRenditions", List.of(
        Map.of(
          "bitrateBps", 3000, "codecs",
          "hvc1.1.4.L126.B0, mp4a.40.2"),
        Map.of(
          "bitrateBps", 2000,
          "codecs", "avc1.64001f, mp4a.40.2")
      ),
      "bitrateOrder", "ascending"
    )
  );

  /* sessionOptions JSON structure.
   * {
   *  "manifestOptions": {
   *    "includeRenditions": [
   *      {"bitrateBps": 3000, "codecs": "hvc1.1.4.L126.B0, mp4a.40.2"},
   *      {"bitrateBps": 2000, "codecs": "avc1.64001f, mp4a.40.2"},
   *    ],
   *    "bitrateOrder": "ascending"
   *  }
   * };
   */

  streamRequest.setVideoStitcherSessionOptions(sessionOptions);
  adsLoader.requestStream(streamRequest);
}

Cómo insertar una pausa publicitaria

La API de Google Cloud Video Stitcher inserta anuncios recuperados de la etiqueta de anuncio para cada pausa publicitaria. Las pausas publicitarias se indican en el manifiesto con marcadores de anuncios. Los marcadores de anuncios son que insertaste el codificador de transmisión en vivo.

El anuncio se reproduce inmediatamente después de que se inserta la pausa publicitaria.

Limpia

Ahora que ya organizaste correctamente una transmisión en vivo con la API de Video Stitcher de Google Cloud y la solicitud con el SDK de IMA de DAI para Android, es importante que limpies todas las instancias de Google Cloud.

Sigue el limpieza de transmisión en vivo para quitar los recursos y recursos innecesarios.