O SDK dos anúncios para dispositivos móveis do Google agora tem suporte Beta para MRAID v3, baseado no suporte existente para MRAID v2, permitindo que os anunciantes veiculem criativos MRAID v3 para os editores do Ad Manager. Este guia esclarece os detalhes de implementação do MRAID que não estavam claros e abertos a interpretação nas especificações do MRAID v3. O público-alvo são os autores de criativos do MRAID v3.
Pré-requisitos
Os editores precisam executar:
- Google Play Services 15.0.0 ou posterior para MRAID v3
- Google Play Services 7.8 ou posterior para MRAID v2
Guias úteis
Se você não conhece o MRAID, saiba mais na página de MRAID do IAB. Também é possível fazer o download do documento Definições do MRAID v3, que fornece detalhes sobre todos os parâmetros discutidos abaixo, bem como da postagem do blog do IAB sobre o MRAID v3 (links em inglês).
Detalhes de implementação do MRAID v3 (Beta)
Visibilidade - evento de exposição
Esse evento é compatível. Recomendamos usar um listener para o novo evento exposureChange
em vez do viewableChange
descontinuado.
O método mraid.isViewable()
também foi descontinuado. No entanto, esses métodos descontinuados
continuam tendo suporte para manter a compatibilidade com versões anteriores.
A definição do evento exposureChange
é enviada sempre que a visualização do anúncio é alterada. 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 parâmetro exposed_percentage
, que é um número de ponto
flutuante entre 0.0
e 100.0
.
Consulte a especificação 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 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 obrigatórias
no objeto MRAID_ENV
, incluindo a versão do MRAID, o nome 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 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 visualização da Web 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 de solicitação do anúncio atual. |
Intersticial | Feche o intersticial. |
VPAID (Definição de interface entre anúncio e player de vídeo)
O SDK dos anúncios para dispositivos móveis do Google não é compatível com VPAID. mraid.supports('vpaid')
retorna falso.
mraid.useCustomClose()
mraid.useCustomClose()
pode não ser compatível, dependendo do formato e do tipo de criativo.
Detalhes de 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 do anúncio 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 rolará com o banner.
mraid.setResizeProperties()
Todas as chamadas para mraid.setResizeProperties()
precisam conter uma lista completa das
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 tem efeito.
Os criativos que quiserem forçar a orientação precisam definir allowOrientationChange
como
false
.
mraid.isViewable()
Se uma visualização cobrir um anúncio que estava 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 em duas partes estiver no estado expandido, uma chamada para
mraid.getCurrentPosition()
na primeira parte 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
.