Anuncios rich media para celulares

El SDK de anuncios de Google para dispositivos móviles ahora tiene compatibilidad en versión beta con 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 eran claros y estaban abiertos a interpretación en las especificaciones de MRAID v3. El público objetivo son los autores de creatividades de MRAID v3.

Requisitos previos

Los publicadores deben ejecutar lo siguiente:

  • SDK de anuncios de Google para dispositivos móviles en iOS 7.30.0 o posterior para MRAID v3
  • SDK de anuncios de Google para dispositivos móviles en iOS 7.4.0 o posterior para MRAID v2

Aspectos básicos útiles

Si no estás familiarizado con MRAID, puedes obtener más información en la página de MRAID de IAB. También puedes descargar el documento Definiciones de MRAID v3, que proporciona 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 implementación de MRAID v3 (beta)

Visibilidad: Evento DiscoverChange

Se admite este evento, por lo que recomendamos usar un objeto de escucha para el evento exposureChange nuevo, en lugar del evento viewableChange obsoleto. También dejó de estar disponible el método mraid.isViewable(). Sin embargo, estos métodos obsoletos siguen siendo compatibles para mantener la retrocompatibilidad.

La definición del evento exposureChange se envía cada vez que cambia la vista de un 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 un ejemplo de uso.

Detección e inicialización de MRAID y atributos MRAID_ENV

El SDK cumple con el protocolo de inicialización que se define en las especificaciones de MRAID v3.

En el objeto MRAID_ENV, el SDK no envía IDFA, limitAdTracking, el ID de la app ni la ley COPPA (que son opcionales). Proporciona todas las variables necesarias en el objeto MRAID_ENV, incluida la versión de MRAID, el nombre y la versión del SDK.

Medición de audibilidad

Se presenta un nuevo evento (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 un ejemplo de uso.

mraid.getLocation()

Como 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 la WebView o reemplazándola con otro documento o con 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 unload()
Banner Realiza una nueva solicitud de anuncio 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 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 haya cargado la creatividad. No verifiques 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 que cambiaron de tamaño tampoco siguen el marco original del banner. Si se coloca un banner en una vista desplazable, el anuncio con el 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 los 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 a los que se les cambió el tamaño. Para determinar el tamaño de un anuncio expandible, utilice mraid.getScreenSize().

mraid.setOrientationProperties()

Cuando llamas a mraid.setOrientationProperties() con la propiedad allowOrientationChange establecida en true, configurar la propiedad forceOrientation no hará nada. Para las creatividades que deseen forzar la orientación, se debe establecer allowOrientationChange en false.

mraid.isViewable()

Si una vista cubre un anuncio que podría verse, mraid.isViewable() seguirá mostrando true. El contenido de la aplicación no debe cubrir los anuncios visibles.

mraid.getCurrentPosition()

Mientras un anuncio expandible de dos partes se encuentra en estado expandido, una llamada a mraid.getCurrentPosition() en la primera mostrará el tamaño de la pantalla.

mraid.supports()

A partir de la versión 7.11.0 del SDK, mraid.supports("storePicture") y mraid.supports("calendar") siempre muestran false. Según las especificaciones de MRAID v2, las creatividades deberían poder manejar el caso en el que estos métodos no estén disponibles.

mraid.storePicture()

La app solicita automáticamente permiso para guardar una imagen cuando una creatividad de MRAID llama a mraid.storePicture().