O SDK do IMA para iOS inclui o
SDK do Open Measurement (OM),
um padrão do setor desenvolvido pelo
Interactive Advertising Bureau (IAB) para permitir a medição de visibilidade
e verificação de terceiros. Ao usar o SDK do IMA para iOS, o SDK do OM incluído analisa automaticamente a tag <AdVerifications> nas tags de anúncio do VAST e envia dados de visibilidade aos fornecedores de medição especificados usando a API OMID. O SDK do IMA é compatível com
o SDK do OM v1.6, as extensões AdVerifications do GAM no VAST 2+
e o nó AdVerifications no VAST 4+.Para aproveitar o Open Measurement,
considere os seguintes pontos:
Para usar o Open Measurement, é necessário ter a versão 3.9.0 ou mais recente do SDK do IMA para iOS.
Os anúncios precisam ser configurados para trafegar
<AdVerifications>no VAST de acordo com a especificação do VAST 4.1, se estiverem usando o VAST 4.1 ou mais recente. Caso contrário, use<Extension type="AdVerifications">.Não cubra o
AdDisplayContainercom sobreposições (transparentes ou opacas), porque elas serão sinalizadas como obstruções pelo SDK do OM e vão reduzir a visibilidade.
Pré-requisitos
- Se os anúncios forem programados pelo Ad Manager, configure um provedor de visibilidade para sua rede do Ad Manager e atribua esse provedor ao item de linha.
Teste
Para testar o Open Measurement usando o SDK do IMA, use uma versão do IMA que ofereça suporte ao SDK do OM, além de uma tag de anúncio de teste.
O <AdVerifications> vai aparecer na resposta VAST.
Registrar obstruções de sobreposição de controles de vídeo
Os controles de vídeo, como botões de pausa ou barras de progresso, fornecem informações e ações de reprodução essenciais aos usuários. Em dispositivos móveis, toques imprecisos e expectativas do usuário tornaram comum a renderização de controles grandes e fáceis de tocar sobre o elemento de mídia. Esses controles geralmente aparecem e desaparecem com um toque do usuário e não ficam visíveis na maior parte do tempo de reprodução.
Para ver um exemplo de sobreposição de controles de vídeo, confira a imagem a seguir sobre os controles de renderização do app do YouTube:

Ao usar o SDK do IMA, a maioria dos publishers implementa esses controles adicionando uma visualização acima do contêiner de exibição de anúncios que é, em grande parte, transparente. Normalmente, os controles são elementos filhos dessa visualização que ocultam totalmente o player de vídeo subjacente. Essa sobreposição transparente é usada para capturar eventos de toque e, em seguida, renderizar os controles para os usuários quando tocados.
Quando a visibilidade do anúncio é calculada usando o SDK do Open Measurement, todas as visualizações sobrepostas ao elemento de mídia são consideradas obstruções e reduzem a taxa de visibilidade. No caso de uma sobreposição de toque transparente acima de todo o contêiner de exibição do anúncio, é possível que o inventário seja declarado completamente não visível.
O SDK de medição aberta permite que os controles de vídeo sejam considerados obstruções "amigáveis" essenciais para a experiência do usuário. Depois de registrados como amigáveis, esses controles são excluídos da medição de visibilidade do anúncio.
Com o suporte do IAB e do MRC, o SDK do IMA apresenta uma API para registrar essas sobreposições com o SDK de medição aberto. Esses controles precisam ser sobreposições totalmente transparentes ou botões pequenos. Não registre outras visualizações não relacionadas aos controles de vídeo.
| Registre-se | NÃO registre |
|---|---|
|
|
O exemplo de código a seguir demonstra como registrar sobreposições de controles de vídeo no contêiner de exibição de anúncios:
UIView *myTransparentTapOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 250)];
UIButton *myPauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 10)];
// Replace myTransparentTapOverlay and myPauseButton with your own elements
// that function as video control overlays.
// Make sure to register before ad playback starts.
IMAFriendlyObstruction *overlayObstruction =
[[IMAFriendlyObstruction alloc] initWithView:myTransparentTapOverlay
purpose:IMAFriendlyObstructionPurposeNotVisible
detailedReason:@"This overlay is transparent"];
IMAFriendlyObstruction *pauseButtonObstruction =
[[IMAFriendlyObstruction alloc] initWithView:myPauseButton
purpose:IMAFriendlyObstructionPurposeMediaControls
detailedReason:@"This is the video player pause button"];
[displayContainer registerFriendlyObstruction:overlayObstruction];
[displayContainer registerFriendlyObstruction:pauseButtonObstruction];
Quando terminar de usá-las, essas obstruções poderão ser removidas chamando o seguinte método:
Objective-C
- (void)unregisterObstructionsForContainer:(IMAAdDisplayContainer *)displayContainer {
// This removes all previously registered friendly obstructions from the container.
[displayContainer unregisterAllFriendlyObstructions];
}
Swift
func unregisterObstructions(displayContainer: IMAAdDisplayContainer) {
// This removes all previously registered friendly obstructions from the container.
displayContainer.unregisterAllFriendlyObstructions()
}