Al publicar la aplicación ivi kids en Google Play, nos enfrentamos al problema de que nuestro SDK de publicidad interna no cumplía con los requisitos de Google.y es posible que la aplicación se haya eliminado de la tienda. Por lo tanto, desactivamos todos los anuncios, lo que hizo muy felices a los usuarios jóvenes, pero el departamento de marketing estaba crónicamente insatisfecho con el desempeño financiero.
La forma más lógica de salir de la situación era reproducir anuncios que el propio Google distribuye utilizando el servicio Google Ad Manager . Y hágalo utilizando el SDK de IMA, que también es un producto de Google.
En este artículo hablaré sobre cómo implementamos el SDK de IMA en aplicaciones ivi e ivi kids y qué limitaciones encontramos.
SDK de IMA de chips
No describiré todas las características y estructura del SDK de IMA, ya que en cualquier caso la documentación oficial podrá decir mucho más sobre ellas .
¿Cuál es la característica principal del SDK de IMA? ¿Y por qué nos conviene? El SDK de IMA puede reproducir anuncios de video VAST . Una de las posibilidades de este formato es la creación de envoltorios anidados para comerciales, y el número de envoltorios puede ser formalmente infinito. Es decir, para llegar al video real, debe recorrer todos los contenedores de la cadena.
El SDK de IMA puede ejecutar esta cadena por sí solo si simplemente inserta un enlace al primer archivo VAST en él mediante el método setAdTagUrl (String url) .
val adsRequest = ImaSdkFactory.getInstance().createAdsRequest()
adsRequest.adTagUrl = advUrl
Si usa este método, la tarea del desarrollador se simplifica enormemente. Pero a veces (incluido en nuestro caso) el desarrollador de la aplicación desea recopilar sus estadísticas publicitarias contenidas en los propios archivos VAST. Estos archivos no se pueden solicitar al servidor de anuncios más de una vez, ya que el servidor de anuncios puede enviar dos respuestas diferentes a la misma solicitud (esta es la norma, los anuncios deben cambiar constantemente). En este caso, el desarrollador debe recopilar todos los VAST con bolígrafos, extraer los datos necesarios para recopilar estadísticas de allí y, en base a ellos, generar un VAST general, que se puede alimentar al SDK de IMA mediante el método setAdsResponce (String vasto) :
val adsResponce = “<VAST>..</VAST>” //xml, VAST
adsRequest.adsResponse = adsResponce
Otra característica útil del SDK de IMA es la capacidad de utilizar el reproductor interno de la aplicación para reproducir anuncios. Para hacer esto, puede implementar la interfaz VideoAdPlayer e implementar sus métodos en su reproductor:
public interface VideoAdPlayer extends AdProgressProvider, VolumeProvider {
void loadAd(AdMediaInfo var1, AdPodInfo var2);
void playAd(AdMediaInfo var1);
void pauseAd(AdMediaInfo var1);
void stopAd(AdMediaInfo var1);
void release();
void addCallback(VideoAdPlayer.VideoAdPlayerCallback var1);
void removeCallback(VideoAdPlayer.VideoAdPlayerCallback var1);
}
Pero incluso si la aplicación no tiene su propio reproductor de video o no se puede usar por alguna razón, el SDK de IMA proporciona su propio reproductor basado en ExoPlayer :
val adUiContainer: ViewGroup = view
val videoAdPlayer = ImaSdkFactory.createSdkOwnedPlayer(context, adUiContainer)
Limitaciones del SDK de IMA
Desafortunadamente, la interfaz de usuario del SDK de IMA es triste. Esté preparado para que su reproductor de anuncios siempre se vea así: es
imposible cambiar los controles en la pantalla de anuncios desde el SDK de IMA. Solo puedes cambiar su idioma:
val imaSdkSettings = ImaSdkFactory.getInstance().createImaSdkSettings()
imaSdkSettings.language = "ru"
Nuestra situación se vio agravada por el hecho de que los niños de ivi e ivi existen y están respaldados por una única base de código. Esto significa que con la ayuda de construir scripts, en el momento necesario a partir de un código, puedes ensamblar diferentes aplicaciones con sus propias campanas y silbidos (iconos, líneas, fragmentos de código). Esta base de código unificada para reproducir anuncios utiliza un motor patentado que es una herramienta probada para ganar dinero para la empresa. Con la implementación del SDK de IMA, este código no podría simplemente descartarse, ya que la aplicación utiliza varios formatos de anuncios, no solo VAST.
La interfaz de anuncios de ivi se ve completamente diferente de la interfaz del SDK de IMA y no se puede adaptar a ella:
Por lo tanto, la decisión más obvia parecía la decisión de dejar nuestro motor de publicidad ( NSD ) e implementar simultáneamente el SDK de IMA, de modo que cuando llegue un anuncio que contenga enlaces a los servidores de Google, utilice IMA, y para todos los demás anuncios - NSD, que también puede reproducir anuncios en el formato VAST y se ejecutan en toda la cadena de envoltorios, pero no cumple con los estándares de la política familiar de Google.
Actualmente, los anuncios de Google y los anuncios de otras fuentes en la aplicación ivi se muestran de diferentes formas. En la aplicación para niños ivi kids , solo se orientan los anuncios de Google, por lo que los videos se muestran solo con el SDK de IMA.
Salir
IMA SDK es una herramienta simple y conveniente para mostrar anuncios de video. Si está preparado para el hecho de que la interfaz de usuario del reproductor publicitario no dependerá de usted, entonces el SDK de IMA es para usted. Si necesita monetizar una aplicación de Android para niños con anuncios, entonces la forma más fácil es utilizar la herramienta nativa de Google: IMA SDK.