Варианты нативной рекламы

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

У нативной рекламы есть много дополнительных функций, которые позволяют вам делать дополнительные настройки и создавать наилучший возможный опыт использования рекламы. Это руководство показывает, как использовать дополнительные функции нативной рекламы.

Предпосылки

Контроль активов

Предпочтительные элементы управления соотношением сторон медиа-файлов

Элементы управления соотношением сторон медиафайлов позволяют вам указать предпочтения по соотношению сторон рекламных объявлений.

Установите GADNativeAdMediaAdLoaderOptions mediaAspectRatio с помощью GADMediaAspectRatio .

  • Если этот параметр не установлен, возвращаемое объявление может иметь любое соотношение сторон медиа.

  • После настройки вы сможете улучшить пользовательский интерфейс, указав предпочтительный тип соотношения сторон.

В следующем примере SDK указывается, что следует отдавать предпочтение возвращаемому изображению или видео с определенным соотношением сторон.

GADNativeAdMediaAdLoaderOptions *nativeOption = [[GADNativeAdMediaAdLoaderOptions alloc] init];
nativeOption.mediaAspectRatio = GADMediaAspectRatioAny;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOption ]];

Управление загрузкой изображений

Управление загрузкой изображений позволяет вам решить, будут ли возвращаться SDK ресурсы изображений или только URI.

Задайте GADNativeAdImageAdLoaderOptions disableImageLoading значение BOOL .

  • Контроль загрузки изображений по умолчанию отключен.

  • Если эта функция отключена, Google Mobile Ads SDK автоматически заполняет как изображение, так и URI.

  • При включении SDK заполняет только URI, позволяя вам загружать реальные изображения по вашему усмотрению.

В следующем примере SDK указывается возвращать только URI.

GADNativeAdImageAdLoaderOptions *nativeOption = [[GADNativeAdImageAdLoaderOptions alloc] init];
nativeOption.disableImageLoading = YES;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOption ]];

  • Элементы управления полезной нагрузкой изображений по умолчанию отключены.

  • Если эта функция отключена, ваше приложение дает команду SDK предоставить только первое изображение для любых ресурсов, содержащих серию.

  • При включении ваше приложение показывает, что оно готово отображать все изображения для любых активов, имеющих более одного.

В следующем примере SDK получает команду вернуть несколько графических ресурсов.

GADNativeAdImageAdLoaderOptions *nativeOption = [[GADNativeAdImageAdLoaderOptions alloc] init];
nativeOption.shouldRequestMultipleImages = YES;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOption ]];

Размещение AdChoices

Элементы управления положением AdChoices

Элементы управления положением AdChoices позволяют выбрать, в каком углу будет отображаться значок AdChoices.

Установите GADNativeAdViewAdOptions preferredAdChoicesPosition со значением GADAdChoicesPosition .

  • Если этот параметр не установлен, значок AdChoices будет располагаться в правом верхнем углу.

  • Если установлено, AdChoices размещается в указанной пользователем позиции по запросу.

В следующем примере показано, как задать пользовательское положение изображения AdChoices.

GADNativeAdViewAdOptions *nativeOptions = [[GADNativeAdViewAdOptions alloc] init];
nativeOptions.preferredAdChoicesPosition = GADAdChoicesPositionTopLeftCorner;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOptions ]];

Пользовательский вид AdChoices

Функция пользовательского представления AdChoices позволяет вам разместить значок AdChoices в пользовательском месте. Это отличается от элементов управления положением AdChoices, которые позволяют указать только один из четырех углов.

Установите свойство GADNativeAd.adChoicesView с GADAdChoicesView перед рендерингом, и содержимое AdChoices будет отображаться внутри GADAdChoicesView .

Следующий пример демонстрирует, как настроить пользовательское представление AdChoices. Значок AdChoices будет отображаться внутри GADAdChoicesView .

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {

    ...

    
    GADAdChoicesView *customAdChoicesView =
        [[GADAdChoicesView alloc] initWithFrame: CGRectMake(..., ..., ..., ...)];

    [nativeAdView addSubview:customAdChoicesView];
    nativeAdView.adChoicesView = customAdChoicesView;

    // Associate the native ad view with the native ad object. This is
    // required to make the ad clickable.
    // Note: this should always be done after populating the ad views.
    nativeAdView.nativeAd = nativeAd;
}

Быстрый

func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
    refreshAdButton.isEnabled = true

    ...
    // Define a custom position for the AdChoices icon.
    let customRect = CGRect(x: 100, y: 100, width: 15, height: 15)
    let customAdChoicesView = AdChoicesView(frame: customRect)
    nativeAdView.addSubview(customAdChoicesView)
    nativeAdView.adChoicesView = customAdChoicesView

    // Associate the native ad view with the native ad object. This is
    // required to make the ad clickable.
    // Note: this should always be done after populating the ad views.
    nativeAdView.nativeAd = nativeAd;
}

Видеоконтроль

Начать отключение звука

Функция отключения звука при запуске видео позволяет отключать или включать начальный звук видео.

Задайте GADVideoOptions startMuted со значением BOOL .

  • По умолчанию отключение звука включено.

  • Если эта функция отключена, приложение будет требовать, чтобы видео начиналось со звука.

  • Если эта функция включена, ваше приложение попросит, чтобы видео начиналось с отключенным звуком.

В следующем примере показано, как запустить видео с включенным звуком.

GADVideoOptions *nativeOptions = [[GADVideoOptions alloc] init];
nativeOptions.startMuted = NO;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOptions ]];

Пользовательские элементы управления воспроизведением

Это позволяет вам запрашивать пользовательские элементы управления видеовходом для воспроизведения, приостановки или отключения звука видео.

Задайте GADVideoOptions customControlsRequested со значением BOOL .

  • Пользовательские элементы управления воспроизведением по умолчанию отключены.

  • Если этот параметр отключен, в вашем видео будут отображаться элементы управления вводом, визуализированные SDK.

Если в рекламе есть видеоконтент и включены пользовательские элементы управления, вам следует отобразить ваши пользовательские элементы управления вместе с рекламой, поскольку сама реклама не будет отображать никаких элементов управления. Элементы управления могут затем вызывать соответствующие методы на

GADVideoController .

В следующем примере показано, как запросить видео с пользовательскими элементами управления воспроизведением.

GADVideoOptions *nativeOptions = [[GADVideoOptions alloc] init];
nativeOptions.customControlsRequested = YES;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOptions ]];

Проверьте, включены ли пользовательские элементы управления.

Поскольку на момент запроса неизвестно, будет ли возвращенное объявление поддерживать пользовательские элементы управления видео, необходимо проверить, включены ли в нем пользовательские элементы управления.

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd*)nativeAd {

  GADVideoController *videoController = nativeAd.mediaContent.videoController;
  BOOL canShowCustomControls = videoController.customControlsEnabled;

}

Быстрый

func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
  let videoController = nativeAd.mediaContent.videoController
  let canShowCustomControls = videoController?.customControlsEnabled() == true
}

Рендеринг пользовательских элементов управления видео

Рендеринг пользовательских элементов управления видео с использованием следующих рекомендаций:

  1. Отобразите представление пользовательских элементов управления как дочерний элемент представления нативной рекламы. Этот подход гарантирует, что расчеты видимости открытых измерений будут рассматривать пользовательские элементы управления как дружественное препятствие.
  2. Избегайте отображения невидимого наложения поверх всего вида мультимедиа. Наложения блокируют клики по виду мультимедиа, что негативно влияет на производительность нативной рекламы. Вместо этого создайте небольшое наложение, которое будет достаточно большим, чтобы вместить элементы управления.

Пользовательские жесты нажатия

Пользовательские жесты кликов — это функция нативной рекламы, которая позволяет регистрировать свайпы при просмотре рекламы как клики по рекламе. Она предназначена для работы с приложениями, которые используют жесты свайпов для навигации по контенту. В этом руководстве показано, как включить пользовательские жесты кликов в нативной рекламе.

Инициализируйте экземпляр GADNativeAdCustomClickGestureOptions с выбранным направлением смахивания. Вам также нужно указать, хотите ли вы, чтобы нажатия были разрешены как щелчки.

  • Пользовательские жесты нажатия по умолчанию отключены.

  • Если эта функция отключена, кликами будут считаться только нажатия.

  • Если эта функция включена, жесты смахивания будут считаться щелчками, и вы можете указать, будут ли нажатия по-прежнему считаться щелчками.

В следующем примере показано, как реализовать пользовательский жест смахивания вправо, сохранив обычное поведение нажатия.

GADNativeAdCustomClickGestureOptions *swipeGestureOptions = [[GADNativeAdCustomClickGestureOptions alloc]
        initWithSwipeGestureDirection:UISwipeGestureRecognizerDirectionRight
                          tapsAllowed:YES];

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
self.adLoader = [[GADAdLoader alloc]
        initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
      rootViewController:self
                 adTypes:@[ GADAdLoaderAdTypeNative ]
                 options:@[ swipeGestureOptions ]];

Прослушивание событий жестов смахивания

При регистрации нажатия жеста смахивания Google Mobile Ads SDK вызывает метод делегата nativeAdDidRecordSwipeGestureClick: в GADNativeAdDelegate в дополнение к существующему методу делегата nativeAdDidRecordClick: :.

#pragma mark - GADNativeAdDelegate implementation

// Called when a swipe gesture click is recorded.
- (void)nativeAdDidRecordSwipeGestureClick:(GADNativeAd *)nativeAd {
  NSLog(@"A swipe gesture click has occurred.");
}

// Called when a swipe gesture click or a tap click is recorded, as configured in
// GADNativeAdCustomClickGestureOptions.
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  NSLog(@"A swipe gesture click or tap click has occurred.");
}

Медиация

Пользовательские жесты клика работают только с нативными объявлениями, которые отображает Google Mobile Ads SDK. Источники объявлений, которым требуются сторонние SDK для отображения, не реагируют на настройку пользовательских направлений клика.