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.