Los SDKs de IMA facilitan la integración de anuncios multimedia en tus sitios web y aplicaciones. Los SDKs de IMA pueden solicitar anuncios de cualquier servidor de anuncios compatible con VAST y administrar la reproducción de anuncios en tus aplicaciones. Con los SDKs de IMA DAI, las apps realizan una solicitud de transmisión para el video del anuncio y el contenido, ya sea VOD o contenido en vivo. Luego, el SDK devuelve una transmisión de video combinada, de modo que no tengas que administrar el cambio entre el anuncio y el video de contenido en tu app.
Selecciona la solución de DAI que te interesa
DAI de servicio completo
En esta guía, se muestra cómo integrar el SDK de DAI de IMA en una app de reproductor de video simple. Si deseas ver o seguir una integración de ejemplo completa, descarga BasicExample desde GitHub.
Descripción general de la DAI de IMA
La implementación de la DAI de IMA implica 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
: Objeto que solicita transmisiones y controla los eventos activados por los objetos de respuesta de solicitud de transmisión. Solo debes crear una instancia del cargador de anuncios, que se puede reutilizar durante 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
: 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 transmisiones y 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 ejemplo
La app de ejemplo proporciona un reproductor de video funcional que reproduce videos de HLS. Úsalo como punto de partida para integrar las capacidades de DAI del SDK de IMA 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
.Para ejecutar una sincronización de Gradle, selecciona Tools > Android > Sync Project with Gradle Files.
Asegúrate de que la app del reproductor se compile y ejecute en un dispositivo Android físico o en un dispositivo virtual Android con Run > Run 'app'. Es normal que la transmisión de video tarde unos momentos 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 DAI de IMA. La app de ejemplo consta de dos partes principales:
samplevideoplayer/SampleVideoPlayer.java
: Reproductor de HLS basado en ExoPlayer que sirve como base para la integración de la DAI de IMA.videoplayerapp/MyActivity.java
: Esta actividad crea el reproductor de video y le pasa unContext
y unmedia3.ui.PlayerView
.
Agrega el SDK de IMA DAI a la app del reproductor
También debes incluir una referencia al SDK de DAI de IMA. En Android Studio, agrega lo siguiente al archivo build.gradle a nivel de la aplicación, que se encuentra en app/build.gradle. El SDK de IMA requiere que se habilite la desazucaración de bibliotecas, lo que debes hacer configurando coreLibraryDesugaringEnabled true
y agregando coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'
como dependencia en el archivo build.gradle. Para obtener más detalles, consulta APIs de Java 11 y versiones posteriores disponibles a través de la expansión de sintaxis con la especificación nio.
Integra el SDK de IMA DAI
Crea una clase nueva llamada
SampleAdsWrapper
en el paquetevideoplayerapp
(enapp/java/com.google.ads.interactivemedia.v3.samples/videoplayerapp/
) para encapsular elSampleVideoPlayer
existente y agregar lógica que implemente la DAI de IMA. Para ello, primero debes crear un objetoAdsLoader
que se usa para solicitar la transmisión de DAI.Este fragmento incluye parámetros de ejemplo para transmisiones HLS y DASH, en vivo y VOD. Para establecer qué transmisión se reproduce, actualiza la variable
CONTENT_TYPE
.Crea un método auxiliar
createSampleVideoPlayerCallback()
para controlar la creación de una instancia de interfazSampleVideoPlayerCallback
que 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
. El flujo predeterminado que se usa en esta guía es el flujo de HLS de VOD de muestra de IMA.También necesitas un
VideoStreamPlayer
para reproducir la transmisión, por lo que debes agregar un métodocreateVideoStreamPlayer()
, que crea una clase anónima que implementaVideoStreamPlayer
.Implementa los objetos de escucha requeridos y agrega compatibilidad para el control de errores.
Ten en cuenta la implementación de
AdErrorListener
, ya que llama a una URL de resguardo si no se reproducen los anuncios. Dado que el contenido y los anuncios se encuentran en una sola transmisión, debes estar preparado para llamar a una transmisión de resguardo si la transmisión de DAI encuentra un error.Agrega código para el registro.
Modifica
MyActivity
envideoplayerapp
para crear una instancia deSampleAdsWrapper
y 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 de la actividad
activity_my.xml
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 ejemplo BasicExample completo. Si funciona correctamente en BasicExample, es probable que haya un problema con el código de integración de IMA de tu app.
Si los problemas persisten, visita el foro del SDK de IMA.