O SDK do Google Mobile Ads agora tem suporte Beta para o MRAID v3, baseado no suporte atual para o MRAID v2, permitindo que os anunciantes veiculem criativos do MRAID v3 para publishers do Ad Manager. Este guia esclarece os detalhes de implementação da MRAID que não estavam claros e estavam abertos a interpretações na especificação da MRAID v3. O público-alvo são os autores de criativos da MRAID v3.
Pré-requisitos
Os publishers precisam estar executando:
Materiais de referência úteis
Se você não conhece o MRAID, saiba mais na página do IAB sobre o MRAID. Você também pode baixar o documento Definições do MRAID v3, que detalha todos os parâmetros discutidos abaixo, bem como a postagem do blog do IAB sobre o MRAID v3.
Detalhes da implementação da MRAID v3 (Beta)
Visibilidade: evento exposureChange
Esse evento é compatível, e recomendamos usar 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 disponí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 sondagem 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 parâmetro exposed_percentage, 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 de MRAID e atributos MRAID_ENV
O SDK está em conformidade com o protocolo de inicialização, conforme definido na especificação da 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 audibilidade
Um novo evento (audioVolumeChange) foi 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 não for possível determinar o volume.
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 forma
para os diferentes tipos de criativo:
| Tipo | Comportamento de unload() |
|---|---|
| Banner | Faça uma nova solicitação de anúncio com os mesmos parâmetros da atual. |
| Intersticial | Fechar o intersticial. |
VPAID (Definição da interface entre anúncio e player de vídeo)
O SDK do Google Mobile Ads não é compatível com 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 de 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 obrigató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, definir a propriedade forceOrientation não terá efeito.
Os criativos que querem forçar a orientação precisam definir allowOrientationChange como
false.
mraid.isViewable()
Se uma visualização cobrir um anúncio que, de outra forma, estaria 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 seja compatível com mraid.storePicture(), ele precisa incluir a
permissão android.permission.WRITE_EXTERNAL_STORAGE.