В IMA SDK для iOS входит Open Measurement (OM) SDK – отраслевой стандарт, разработанный Бюро интерактивной рекламы (IAB), который позволяет сторонним поставщикам отслеживать видимость и проверять рекламу. При использовании IMA SDK для iOS встроенный OM SDK автоматически анализирует тег <AdVerifications> в тегах объявлений VAST и отправляет данные о видимости указанным поставщикам услуг по отслеживанию с помощью OMID API. IMA SDK поддерживает OM SDK версии 1.6, расширения AdVerifications GAM в VAST 2+ и узел AdVerifications в VAST 4+.Чтобы использовать Open Measurement, учитывайте следующее:
Чтобы использовать Open Measurement, у вас должна быть версия IMA SDK для iOS 3.9.0 или более поздняя.
Объявления должны быть настроены так, чтобы в их коде VAST передавался элемент
<AdVerifications>в соответствии со спецификацией VAST 4.1, если используется VAST 4.1 или более поздней версии. В противном случае необходимо использовать элемент<Extension type="AdVerifications">.Не закрывайте
AdDisplayContainerникакими оверлеями (прозрачными или непрозрачными), поскольку OM SDK пометит их как препятствия и снизит видимость.
Требования
- Если вы размещаете рекламу через Менеджер рекламы, настройте поставщика данных о видимости для своей сети Менеджера рекламы и назначьте его нужной позиции.
Тестирование
Чтобы протестировать Open Measurement с помощью IMA SDK, используйте версию IMA, которая поддерживает OM SDK, а также тестовый тег объявления.
В ответе VAST должен быть возвращен параметр <AdVerifications>.
Регистрация помех, связанных с оверлеем элементов управления видео
Элементы управления видео, такие как кнопки паузы и индикаторы выполнения, предоставляют пользователям важную информацию о воспроизведении и позволяют выполнять необходимые действия. На мобильных устройствах неточные нажатия и ожидания пользователей привели к тому, что над медиаэлементом стали отображаться большие, удобные для сенсорного управления элементы управления. Обычно они появляются и исчезают при нажатии на экран и не видны большую часть времени воспроизведения.
Пример наложения элементов управления видео можно посмотреть на следующем изображении, где показаны элементы управления в приложении YouTube:

При использовании IMA SDK большинство издателей реализуют эти элементы управления, добавляя поверх контейнера для показа объявлений в основном прозрачное представление. Обычно элементы управления являются дочерними элементами этого представления, которое полностью закрывает видеопроигрыватель. Этот прозрачный слой используется для регистрации событий нажатия, а затем для отображения элементов управления пользователям.
При расчете видимости объявлений с помощью SDK для отслеживания Open Measurement все представления, перекрывающие медиаэлемент, считаются препятствиями и снижают показатель видимости. Если прозрачный оверлей для нажатия расположен над всем контейнером объявления, инвентарь может быть объявлен полностью невидимым.
В SDK Open Measurement предусмотрены элементы управления видео, которые считаются "дружественными" препятствиями, необходимыми для удобства пользователей. После регистрации как дружественного эти элементы управления исключаются из измерений видимости объявлений.
При поддержке IAB и MRC в IMA SDK появился API для регистрации этих оверлеев в Open Measurement SDK. Эти элементы управления должны быть полностью прозрачными оверлеями или небольшими кнопками. Другие просмотры, не связанные с элементами управления видео, регистрировать не нужно.
| Зарегистрируйтесь | НЕ регистрируйтесь |
|---|---|
|
|
В приведенном ниже образце кода показано, как зарегистрировать наложения элементов управления видео в контейнере для показа объявлений:
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];
Когда они больше не нужны, их можно удалить, вызвав следующий метод:
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()
}