En esta guía, se muestra cómo integrar el SDK de IMA para DAI en una app de reproductor de video simple. Si quieres ver o seguir una integración de ejemplo completa, descarga el BasicExample de GitHub.
Descripción general de IMA para DAI
La implementación de IMA para DAI involucra cuatro componentes principales del SDK, como se muestra en esta guía:
StreamDisplayContainer: Es un objeto contenedor que se encuentra sobre el elemento de reproducción de video y aloja los elementos de la IU del anuncio.AdsLoader: Es un objeto que solicita transmisiones y controla los eventos que activan los objetos de respuesta de solicitud de transmisión. Solo debes crear una instancia de un cargador de anuncios, que se puede reutilizar durante toda la vida útil de la aplicación.StreamRequest: Es un objeto que define una solicitud de transmisión. Las solicitudes de transmisión pueden ser para videos on demand o transmisiones en vivo. Las solicitudes de transmisión en vivo especifican una clave de recurso, mientras que las solicitudes de VOD especifican un ID de CMS y un ID de video. Ambos tipos de solicitudes pueden incluir, de forma opcional, una clave de API necesaria para acceder a las transmisiones especificadas y un código de red de Google Ad Manager para que el SDK de IMA controle los identificadores de anuncios según se especifica en la configuración de Google Ad Manager.StreamManager: Es un objeto que controla las transmisiones de inserción de anuncios dinámicos y las interacciones con el backend de DAI. El administrador de transmisiones también controla los pings de seguimiento y reenvía los eventos de transmisión y de anuncios al publicador.
Requisitos previos
- Android Studio
- App de reproductor de video de muestra para la integración del SDK
Descarga y ejecuta la app de reproductor de video de muestra
La app de ejemplo proporciona un reproductor de video que funciona y reproduce videos en HLS. Úsala como punto de partida para integrar las funciones de DAI del SDK de IMA para DAI.
Descarga la app de reproductor de video de muestra y extráela.
Inicia Android Studio y selecciona Open an existing Android Studio project o, si Android Studio ya se está ejecutando, selecciona File > New > Import Project. Luego, elige
SampleVideoPlayer/build.gradle.Ejecuta una sincronización de Gradle seleccionando Tools > Android > Sync Project with Gradle Files.
Asegúrate de que la app de reproductor se compile y se ejecute en un dispositivo Android físico o un dispositivo virtual de Android con Run > Run 'app'. Es normal que la transmisión de video tarde unos minutos en cargarse antes de reproducirse.
Examina el reproductor de video de muestra
El reproductor de video de muestra aún no contiene ningún código de integración del SDK de IMA para DAI. La app de ejemplo consta de dos partes principales:
samplevideoplayer/SampleVideoPlayer.java: Es un reproductor de HLS basado en ExoPlayer que sirve como base para la integración de IMA para DAI.videoplayerapp/MyActivity.java: Esta actividad crea el reproductor de video y le pasa unContexty unmedia3.ui.PlayerView.
Agrega el SDK de IMA para DAI a la app del reproductor
También debes incluir una referencia al SDK de IMA para DAI. En Android Studio, agrega lo siguiente al archivo build.gradle de nivel de aplicación, ubicado en app/build.gradle. El SDK de IMA requiere que se habilite la expansión de sintaxis de la biblioteca, lo que debes hacer configurando coreLibraryDesugaringEnabled true y agregando 'com.android.tools:desugar_jdk_libs' como dependencia en el archivo build.gradle. Para obtener más detalles, consulta
APIs de Java 11 y versiones posteriores disponibles con la expansión de sintaxis con la especificación nio.
Integra el SDK de IMA para DAI
Crea una clase nueva llamada
SampleAdsWrapperen el paquetevideoplayerapp(enapp/java/com.google.ads.interactivemedia.v3.samples/videoplayerapp/) para unir elSampleVideoPlayerexistente y agregar lógica que implemente IMA para DAI. Para ello, primero debes crear unAdsLoaderque se use para solicitar la transmisión de DAI.Este fragmento incluye parámetros de muestra para transmisiones de HLS y DASH, en vivo y de VOD. Para establecer qué transmisión se está reproduciendo, actualiza la variable
CONTENT_TYPE.Crea un método auxiliar
createSampleVideoPlayerCallback()para controlar la creación de una instancia de interfazSampleVideoPlayerCallbackque extiendaVideoStreamPlayer.VideoStreamPlayerCallback.Para trabajar con la DAI, el reproductor debe pasar eventos ID3 al SDK de IMA para DAI. El método
callback.onUserTextReceived()hace esto en el siguiente código de muestra.Agrega un método
buildStreamRequest()para crear elSteamRequest. Este método cambia entre diferentes transmisiones según cómo configures la variableCONTENT_TYPE. La transmisión predeterminada que se usa en esta guía es la transmisión de VOD de HLS de muestra de IMA.También necesitas un
VideoStreamPlayerpara reproducir la transmisión, por lo que debes agregar un métodocreateVideoStreamPlayer(), que crea una clase anónima que implementaVideoStreamPlayer.Implementar los objetos de escucha requeridos y agregar compatibilidad con el manejo de errores
Ten en cuenta la implementación de
AdErrorListener, ya que llama a una URL de respaldo si los anuncios no se reproducen. Como el contenido y los anuncios se encuentran en una sola transmisión, debes estar listo para llamar a una transmisión de resguardo si la transmisión de DAI encuentra un error.Agrega código para el registro.
Modifica
MyActivityenvideoplayerapppara crear una instancia deSampleAdsWrappery llamarla. Además, realiza una llamada aImaSdkFactory.initialize()aquí con un método auxiliar para crear una instancia deImaSdkSettings.Agrega el método auxiliar
getImaSdkSettings()para crear una instancia deImaSdkSettings.Modifica el archivo de diseño
activity_my.xmlde la actividad para agregar elementos de la IU para el registro.
¡Felicitaciones! Ahora solicitas y muestras anuncios de video en tu app para Android. Para ajustar tu implementación, consulta Marcadores, Snapback y la documentación de la API.
Solución de problemas
Si tienes problemas para reproducir un anuncio de video, intenta descargar el proyecto BasicExample completo. Si funciona correctamente en BasicExample, es probable que haya un problema con el código de integración del SDK de IMA de tu app.
Si los problemas persisten, visita el foro del SDK de IMA.