Anúncios rich media para dispositivos móveis

O SDK do Google Mobile Ads agora tem suporte Beta para o MRAID v3, criado com base no suporte atual para o MRAID v2, permitindo que os anunciantes veiculem criativos MRAID v3 para editores do Ad Manager. Este guia esclarece os detalhes de implementação do MRAID que não estavam claros e eram abertos à interpretação na especificação do MRAID v3. O público-alvo pretendido são os autores de criativos MRAID v3.

Pré-requisitos

Os editores precisam executar:

  • Google Play Services 15.0.0 ou mais recente para MRAID v3
  • Google Play Services 7.8 ou mais recente para MRAID v2

Materiais de referência úteis

Se você não conhece o MRAID, saiba mais na página do IAB MRAID (link em inglês). Você também pode baixar o documento de definições do MRAID v3, que fornece detalhes sobre todos os parâmetros discutidos abaixo, bem como a postagem do blog do IAB sobre o MRAID v3.

Detalhes da implementação do MRAID v3 (Beta)

Visibilidade: evento exposureChange

Esse evento é compatível, e recomendamos o uso de um listener para o novo evento exposureChange em vez do evento viewableChange descontinuado. O método mraid.isViewable() também foi descontinuado. No entanto, esses métodos descontinuados continuam sendo compatíveis para manter a compatibilidade com versões anteriores.

A definição do evento exposureChange é enviada sempre que a visualização do anúncio muda. O SDK tem um mecanismo de pesquisa para evitar a geração de muitos eventos. O estado inicial é enviado de forma assíncrona depois que o anúncio registra um listener. O callback inclui o exposed_percentage parâmetro, que é um número de ponto flutuante entre 0.0 e 100.0.

Consulte a especificação do MRAID v3 para ver exemplos de uso.

Detecção e inicialização do MRAID e atributos MRAID_ENV

O SDK está em conformidade com o protocolo de inicialização conforme definido na especificação do MRAID v3.

No objeto MRAID_ENV, o SDK não envia IDFA, limitAdTracking, ID do app ou COPPA (que são opcionais). Ele fornece todas as variáveis necessárias no objeto MRAID_ENV, incluindo a versão do MRAID, o nome do SDK e a versão do SDK.

Medição de áudio

Um novo evento (audioVolumeChange) é introduzido para identificar se o áudio pode ser ouvido e quando o volume muda.

O evento audioVolumeChange tem um único parâmetro: volume_percentage. O valor é a porcentagem do volume máximo de reprodução de áudio. É um número de ponto flutuante entre 0.0 e 100.0 (0.0 quando a reprodução não é permitida) ou null se o volume não puder ser determinado.

Consulte a especificação do MRAID v3 para ver exemplos de uso.

mraid.getLocation()

Como mraid.getLocation() não é compatível, ele sempre retorna -1.

mraid.unload()

Esse método pode ser chamado a qualquer momento, e o SDK reage dispensando o anúncio, desalocando os recursos e removendo a WebView ou substituindo-a por outro documento ou um novo anúncio.

Quando o criativo chama unload(), a camada nativa responde da seguinte maneira para os diferentes tipos de criativos:

Tipo Comportamento de unload()
Banner Faça uma nova solicitação de anúncio com os mesmos parâmetros da solicitação do anúncio atual.
Intersticial Feche o intersticial.

VPAID (Definição de interface de anúncio e player de vídeo)

O SDK do Google Mobile Ads não oferece suporte ao VPAID. mraid.supports('vpaid') retorna "false".

mraid.useCustomClose()

mraid.useCustomClose() pode não ser compatível, dependendo do formato e do tipo de criativo.

Detalhes da implementação do MRAID v2

mraid.getVersion()

mraid.getVersion() não retorna 2.0 até que o criativo seja carregado. Não verifique a versão do MRAID enquanto mraid.getState() retornar loading.

mraid.resize()

Quando mraid.resize() é chamado, o banner original é substituído pela imagem da captura de tela do banner. Isso é perceptível se o anúncio redimensionado não cobrir o espaço publicitário original.

Os anúncios redimensionados também não seguem o frame do banner original. Se um banner for colocado em uma visualização de rolagem, o anúncio redimensionado não vai rolar com o banner.

mraid.setResizeProperties()

Todas as chamadas para mraid.setResizeProperties() precisam conter uma lista completa de propriedades necessárias. Se as propriedades de redimensionamento forem inválidas, elas serão redefinidas para os padrões, e todas as chamadas subsequentes para mraid.resize() vão falhar até que mraid.setResizeProperties() seja chamado novamente com parâmetros válidos.

mraid.getMaxSize()

mraid.getMaxSize() só deve ser usado para determinar o tamanho máximo de anúncios redimensionados. Para determinar o tamanho de um anúncio expansível, use mraid.getScreenSize().

mraid.setOrientationProperties()

Ao chamar mraid.setOrientationProperties() com a propriedade allowOrientationChange definida como true, a definição da propriedade forceOrientation não fará nada. Os criativos que querem forçar a orientação precisam definir allowOrientationChange como false.

mraid.isViewable()

Se uma visualização cobrir um anúncio visível, mraid.isViewable() ainda vai retornar true. O conteúdo do app não pode cobrir anúncios visíveis.

mraid.getCurrentPosition()

Enquanto um anúncio expansível de duas partes estiver no estado expandido, uma chamada para mraid.getCurrentPosition() na primeira parte vai retornar o tamanho da tela.

mraid.storePicture()

Para que um app ofereça suporte a mraid.storePicture(), ele precisa incluir a permissão android.permission.WRITE_EXTERNAL_STORAGE.