El SDK de anuncios de Google para dispositivos móviles ahora admite la versión beta de MRAID v3, que se basa en la compatibilidad existente con MRAID v2, lo que permite a los anunciantes publicar creatividades de MRAID v3 para los publicadores de Ad Manager. En esta guía, se aclaran los detalles de la implementación de MRAID que no estaban claros y que se prestaban a interpretaciones en la especificación de MRAID v3. El público objetivo son los autores de creatividades de MRAID v3.
Requisitos previos
Los publicadores deben ejecutar lo siguiente:
- Servicios de Google Play 15.0.0 o versiones posteriores para MRAID v3
- Servicios de Google Play 7.8 o versiones posteriores para MRAID v2
Instructivos útiles
Si no conoces MRAID, puedes obtener más información en la página de MRAID de la IAB. También puedes descargar el documento Definiciones de MRAID v3, que brinda detalles sobre todos los parámetros que se analizan a continuación, así como la entrada de blog de IAB sobre MRAID v3.
Detalles de la implementación de MRAID v3 (beta)
Visibilidad: evento exposureChange
Este evento es compatible y te recomendamos que uses un objeto de escucha para el nuevo evento exposureChange
en lugar del evento viewableChange
obsoleto.
El método mraid.isViewable()
también dejó de estar disponible. Sin embargo, estos métodos obsoletos se siguen admitiendo para mantener la retrocompatibilidad.
La definición del evento exposureChange
se envía cada vez que cambia la vista del anuncio. El SDK tiene un mecanismo de sondeo para evitar generar demasiados eventos.
El estado inicial se envía de forma asíncrona después de que el anuncio registra un objeto de escucha.
La devolución de llamada incluye el parámetro exposed_percentage
, que es un número de punto flotante entre 0.0
y 100.0
.
Consulta la especificación de MRAID v3 para ver ejemplos de uso.
Detección e inicialización de MRAID y atributos MRAID_ENV
El SDK cumple con el protocolo de inicialización según se define en la especificación MRAID v3.
En el objeto MRAID_ENV
, el SDK no envía IDFA
, limitAdTracking
, el ID de app ni la COPPA (que son opcionales). Proporciona todas las variables necesarias en el objeto MRAID_ENV
, incluida la versión de MRAID, el nombre del SDK y la versión del SDK.
Medición de audibilidad
Se presenta un evento nuevo (audioVolumeChange
) para identificar si se puede escuchar el audio y cuándo cambia el volumen.
El evento audioVolumeChange
tiene un solo parámetro: volume_percentage
.
El valor es el porcentaje del volumen máximo de reproducción de audio. Es un número de punto flotante entre 0.0
y 100.0
(0.0
cuando no se permite la reproducción) o null
si no se puede determinar el volumen.
Consulta la especificación de MRAID v3 para ver ejemplos de uso.
mraid.getLocation()
Debido a que mraid.getLocation()
no es compatible, siempre muestra -1
.
mraid.unload()
Se puede llamar a este método en cualquier momento, y el SDK reacciona descartando el anuncio, desasignando los recursos y, luego, quitando el WebView o reemplazándolo por otro documento o un anuncio nuevo.
Cuando la creatividad llama a unload()
, la capa nativa responde de la siguiente manera para los diferentes tipos de creatividades:
Tipo | Comportamiento de unload() |
---|---|
Banner | Realiza una solicitud de anuncio nueva con los mismos parámetros de solicitud que el anuncio actual. |
Intersticial | Cierra el anuncio intersticial. |
VPAID (definición de la interfaz de anuncios en reproductores de video)
El SDK de anuncios de Google para dispositivos móviles no admite VPAID. mraid.supports('vpaid')
muestra un valor falso.
mraid.useCustomClose()
Es posible que mraid.useCustomClose()
no sea compatible, según el formato y el tipo de creatividad.
Detalles de la implementación de MRAID v2
mraid.getVersion()
mraid.getVersion()
no muestra 2.0
hasta que se carga la creatividad. No compruebes la versión de MRAID mientras mraid.getState()
muestra loading
.
mraid.resize()
Cuando se llama a mraid.resize()
, el banner original se reemplaza por la imagen de la captura de pantalla del banner. Esto se nota si el anuncio con el tamaño modificado
no cubre el espacio publicitario original.
Los anuncios con tamaño modificado tampoco siguen el marco del banner original. Si se coloca un banner en una vista de desplazamiento, el anuncio con tamaño modificado no se desplaza con el banner.
mraid.setResizeProperties()
Todas las llamadas a mraid.setResizeProperties()
deben contener una lista completa de las propiedades obligatorias. Si las propiedades de cambio de tamaño no son válidas, se restablecerán a sus valores predeterminados y todas las llamadas posteriores a mraid.resize()
fallarán hasta que se vuelva a llamar a mraid.setResizeProperties()
con parámetros válidos.
mraid.getMaxSize()
mraid.getMaxSize()
solo debe usarse para determinar el tamaño máximo de los anuncios que se cambiaron de tamaño. Para determinar el tamaño de un anuncio expandible, usa mraid.getScreenSize()
.
mraid.setOrientationProperties()
Cuando llames a mraid.setOrientationProperties()
con la propiedad allowOrientationChange
configurada en true
, configurar la propiedad forceOrientation
no hará nada.
Las creatividades que quieran forzar la orientación deben establecer allowOrientationChange
en false
.
mraid.isViewable()
Si una vista cubre un anuncio que, de otro modo, sería visible, mraid.isViewable()
seguirá mostrando true
. El contenido de la app no debe cubrir los anuncios visibles.
mraid.getCurrentPosition()
Mientras un anuncio expandible de dos piezas está en el estado expandido, una llamada a mraid.getCurrentPosition()
en la primera pieza mostrará el tamaño de la pantalla.
mraid.storePicture()
Para que una app admita mraid.storePicture()
, debe incluir el permiso android.permission.WRITE_EXTERNAL_STORAGE
.