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

При использовании IMA SDK большинство издателей реализуют эти элементы управления, добавляя над контейнером рекламного объявления элемент, который в основном прозрачен. Обычно элементы управления являются дочерними элементами этого элемента, полностью перекрывающими расположенный под ним видеоплеер. Это прозрачное наложение используется для перехвата событий касания и последующего отображения элементов управления пользователям при нажатии.
При расчете видимости рекламы с помощью Open Measurement SDK все элементы, перекрывающие медиаконтент, считаются препятствиями и снижают показатель видимости. В случае, если прозрачное наложение поверх всего контейнера с рекламой создает эффект полного невидимости, рекламный инвентарь может быть объявлен полностью невидимым.
SDK Open Measurement позволяет рассматривать элементы управления видео как «дружественные» препятствия, необходимые для удобства пользователя. После регистрации в качестве дружественных эти элементы управления исключаются из измерения видимости рекламы.
Благодаря поддержке IAB и MRC, SDK IMA предоставляет API для регистрации этих наложений в SDK Open Measurement. Эти элементы управления должны представлять собой полностью прозрачные наложения или небольшие кнопки. Любые другие представления, не связанные с элементами управления видео, регистрироваться не должны.
| РЕГИСТРАЦИЯ | НЕ регистрируйтесь |
|---|---|
|
|
Приведенный ниже пример кода демонстрирует, как зарегистрировать наложения элементов управления видео на контейнере отображения рекламы:
UIView *myTransparentTapOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 250)];
UIButton *myPauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 10)];
// Substitute "myTransparentTapOverlay" and "myPauseButton" with the elements
// you want to register as video controls 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];
После завершения работы с этими препятствиями их можно удалить, вызвав следующий метод:
[displayContainer unregisterAllFriendlyObstructions];