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

Выберите платформу: 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.6, расширения 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"> .

  • Refrain from covering the AdDisplayContainer with any overlays (transparent or opaque), since these will be flagged as obstructions by the OM SDK and reduce viewability.

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

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

Для тестирования 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()
}