El SDK de IMA para iOS incluye el
SDK de Open Measurement (OM),
un estándar de la industria desarrollado por la
Interactive Advertising Bureau (IAB) para habilitar la medición de visibilidad y verificación de terceros. Cuando se usa el SDK de IMA para
iOS, el SDK de OM incluido analiza automáticamente
la <AdVerifications> etiqueta dentro de las etiquetas de anuncios de VAST y envía datos de visibilidad a
los proveedores de medición especificados mediante la API de OMID. El SDK de IMA admite el SDK de OM v1.4, las extensiones AdVerifications de GAM en VAST 2+ y el nodo AdVerifications en VAST 4+.Para aprovechar Open Measurement, ten en cuenta los siguientes puntos:
Para usar Open Measurement, debes tener la versión 3.9.0 o una posterior del SDK de IMA para iOS.
Los anuncios deben configurarse para publicar
<AdVerifications>en su VAST según la especificación de VAST 4.1 si se usa VAST 4.1 o una versión posterior; de lo contrario, se debe usar<Extension type="AdVerifications">.Evita cubrir el
AdDisplayContainercon superposiciones (transparentes o opacas), ya que el SDK de OM las marcará como obstrucciones y reducirá la visibilidad.
Requisitos previos
- Si tus anuncios se publican a través de Ad Manager, configura un proveedor de visibilidad para tu red de Ad Manager y asígnalo a tu línea de pedido.
Prueba
Para probar Open Measurement con el SDK de IMA, usa una versión de IMA que admita el SDK de OM, junto con una etiqueta de anuncio de prueba.
Deberías ver el <AdVerifications> que se muestra en tu respuesta de VAST.
Registra obstrucciones de superposición de controles de video
Los controles de video, como los botones de pausa o las barras de progreso, proporcionan información y acciones de reproducción esenciales a los usuarios. En dispositivos móviles, los toques imprecisos y las expectativas de los usuarios han convertido en una práctica común renderizar controles grandes y fáciles de tocar sobre el elemento multimedia. Por lo general, estos controles aparecen y desaparecen cuando el usuario toca la pantalla y no son visibles durante la mayor parte del tiempo de reproducción.
Para ver un ejemplo de superposición de controles de video, consulta la siguiente imagen en la que se muestran los controles de renderización de la app de YouTube:

Cuando se usa el SDK de IMA, la mayoría de los publicadores implementan estos controles agregando una vista sobre el contenedor de visualización de anuncios que es casi transparente. Por lo general, los controles son elementos secundarios de esta vista que ocluyen por completo el reproductor de video subyacente. Esta superposición transparente se usa para capturar eventos de toque y, luego, renderizar los controles para los usuarios cuando los tocan.
Cuando se calcula la visibilidad de los anuncios con el SDK de Open Measurement, todas las vistas que se superponen al elemento multimedia se consideran obstrucciones y reducen la tasa de visibilidad. En el caso de que una superposición de toque transparente se encuentre sobre todo el contenedor de visualización de anuncios, es posible que el inventario se declare como completamente no visible.
El SDK de Open Measurement establece disposiciones para que los controles de video se consideren obstrucciones "amistosas" que son esenciales para la experiencia del usuario. Una vez registrados como amistosos, estos controles se excluyen de la medición de visibilidad de los anuncios.
Con la compatibilidad de IAB y MRC, el SDK de IMA presenta una API para registrar estas superposiciones con el SDK de Open Measurement. Estos controles deben ser superposiciones completamente transparentes o botones pequeños. No se deben registrar otras vistas que no estén relacionadas con los controles de video.
| REGISTRAR | NO REGISTRAR |
|---|---|
|
|
En el siguiente código de muestra, se muestra cómo registrar superposiciones de controles de video en el contenedor de visualización de anuncios:
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];
Cuando termines de usarlas, puedes quitar estas obstrucciones llamando al siguiente 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()
}