Включить открытое измерение

Выберите платформу: HTML5 Android iOS

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 будет рассматривать их как препятствия, что снизит видимость.

Предварительные требования

Тестирование

Для тестирования 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. Эти элементы управления должны представлять собой полностью прозрачные наложения или небольшие кнопки. Любые другие представления, не связанные с элементами управления видео, регистрироваться не должны.

РЕГИСТРАЦИЯ НЕ регистрируйтесь
  • Прозрачное наложение для захвата касаний пользователя.
  • Кнопки переходного режима
    • Пауза
    • Играть
    • Полноэкранный
    • Cast/AirPlay
    • Крах
    • Прогресс/Поиск
    • Другие действия, связанные с воспроизведением
  • Водяные знаки
  • Всплывающие окна
  • Диалоги
  • Кнопки, не требующие переключения
  • Другие виды, заслоняющие обзор

Приведенный ниже пример кода демонстрирует, как зарегистрировать наложения элементов управления видео на контейнере отображения рекламы:

Objective-C

- (void)registerObstructionsForContainer:(IMAAdDisplayContainer *)displayContainer {
    UIView *transparentTapOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 250)];
    UIButton *myPauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 10)];
    IMAFriendlyObstruction *overlayObstruction =
          [[IMAFriendlyObstruction alloc] initWithView:transparentTapOverlay
                                               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];
}

Быстрый

func registerObstructions(displayContainer: IMAAdDisplayContainer) {
  let transparentTapOverlay = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 250))
  let myPauseButton = UIButton(frame: CGRect(x: 0, y: 0, width: 50, height: 10))

  let overlayObstruction = IMAFriendlyObstruction(
    view: transparentTapOverlay,
    purpose: .notVisible,
    detailedReason: "This overlay is transparent")

  let pauseButtonObstruction = IMAFriendlyObstruction(
    view: myPauseButton,
    purpose: .mediaControls,
    detailedReason: "This is the video player pause button")

  displayContainer.register(overlayObstruction)
  displayContainer.register(pauseButtonObstruction)
}

После завершения работы с этими препятствиями их можно удалить, вызвав следующий метод:

Objective-C

- (void)unregisterObstructionsForContainer:(IMAAdDisplayContainer *)displayContainer {
    // This removes all previously registered friendly obstructions from the container.
    [displayContainer unregisterAllFriendlyObstructions];
}

Быстрый

func unregisterObstructions(displayContainer: IMAAdDisplayContainer) {
  // This removes all previously registered friendly obstructions from the container.
  displayContainer.unregisterAllFriendlyObstructions()
}