O SDK de anúncios para dispositivos móveis do Google agora tem suporte beta para MRAID v3, criado com base no suporte atual para MRAID v2, permitindo que os anunciantes veiculem criativos MRAID v3 para publishers do Ad Manager. Este guia esclarece os detalhes de implementação do MRAID que não estavam claros e eram abertos a interpretação na especificação do MRAID v3. O público-alvo são os autores de criativos do MRAID v3.
Pré-requisitos
Os editores precisam estar executando:
- SDK dos anúncios para dispositivos móveis do Google para iOS 7.30.0 ou mais recente para MRAID v3
- SDK dos anúncios para dispositivos móveis do Google para iOS 7.4.0 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 (em inglês). Você também pode baixar o documento Definições do MRAID v3, que detalha todos os parâmetros discutidos abaixo, e a postagem do blog do IAB sobre o MRAID v3 (links em inglês).
Detalhes da implementação do 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 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 polling 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 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 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 versão do MRAID, nome e 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 o volume não puder ser determinado.
Consulte a especificação do MRAID v3 para 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 criativos:
Tipo | Comportamento de unload() |
---|---|
Banner | Faça uma nova solicitação de anúncio com os mesmos parâmetros da solicitação atual. |
Intersticial | Feche o intersticial. |
VPAID (Definição da 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 "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()
retorna loading
.
mraid.resize()
Quando mraid.resize()
é chamado, o banner original é substituído pela
imagem da captura de tela do banner. Isso fica evidente se o anúncio redimensionado
não cobrir o espaço 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 valores padrão, 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 dos 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 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 está no estado expandido, uma chamada para
mraid.getCurrentPosition()
na primeira parte retorna o tamanho da
tela.
mraid.supports()
A partir da versão 7.11.0 do SDK, mraid.supports("storePicture")
e
mraid.supports("calendar")
sempre retornam false
. De acordo com a especificação MRAID v2,
os criativos precisam conseguir lidar com o caso em que esses métodos não estão disponíveis.
mraid.storePicture()
O app solicita automaticamente permissão para salvar uma imagem
quando um criativo MRAID chama mraid.storePicture()
.