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

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

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

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

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

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

Установите 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 ]];

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

Некоторые объявления содержат серию изображений, а не одно. Используйте эту функцию, чтобы указать, готово ли ваше приложение отображать все изображения или только одно.

Установите GADNativeAdImageAdLoaderOptions shouldRequestMultipleImages значение BOOL .
  • По умолчанию элементы управления полезной нагрузкой изображения отключены.

  • Если этот параметр отключен, ваше приложение дает 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.

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 .

Цель-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: GADAdLoader, didReceive nativeAd: GADNativeAd) {
    refreshAdButton.isEnabled = true

    ...
    // Define a custom position for the AdChoices icon.
    let customRect = CGRect(x: 100, y: 100, width: 15, height: 15)
    let customAdChoicesView = GADAdChoicesView(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 ]];

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

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

Цель-C

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

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

}

Быстрый

func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADNativeAd) {
        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: Delegate в GADNativeAdDelegate в дополнение к существующему методу nativeAdDidRecordClick: Delegate.

#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 , не реагируют на настройку пользовательских направлений кликов.