Как настроить расширенные встроенные функции

Выберите платформу: Android iOS Android (устаревшая версия)

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

Требования

Настройки объектов

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

Настройки соотношения сторон

Настройки соотношения сторон медиаконтента позволяют задать предпочтительное соотношение сторон креативов.

Задайте для параметра GADNativeAdMediaAdLoaderOptions mediaAspectRatio значение GADMediaAspectRatio.

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

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

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

Swift

let nativeOptions = NativeAdMediaAdLoaderOptions()
nativeOptions.mediaAspectRatio = .any

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  rootViewController: self,
  adTypes: [.native],
  options: [nativeOptions])

Objective-C

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

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"nativeAdUnitID"
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ nativeOptions ]];

Замените nativeAdUnitID идентификатором рекламного блока.

Управление скачиванием изображений

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

Задайте для параметра GADNativeAdImageAdLoaderOptions disableImageLoading значение BOOL.

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

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

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

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

Swift

let nativeOptions = NativeAdImageAdLoaderOptions()
nativeOptions.isImageLoadingDisabled = true

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  rootViewController: self,
  adTypes: [.native],
  options: [nativeOptions])

Objective-C

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

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"nativeAdUnitID"
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ nativeOptions ]];

Настройки данных изображений

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

  • Настройки данных изображений по умолчанию отключены.

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

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

В приведенном ниже примере SDK получает инструкции вернуть несколько объектов изображений.

Swift

let nativeOptions = NativeAdImageAdLoaderOptions()
nativeOptions.shouldRequestMultipleImages = true

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  rootViewController: self,
  adTypes: [.native],
  options: [nativeOptions])

Objective-C

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

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"nativeAdUnitID"
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ nativeOptions ]];

Места размещения значка "Выбор рекламы"

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

Настройки положения значка "Выбор рекламы"

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

Задайте для параметра GADNativeAdViewAdOptions preferredAdChoicesPosition значение GADAdChoicesPosition.

  • Если значение не задано, значок "Выбор рекламы" будет размещен в правом верхнем углу.

  • Если задано, значок "Выбор рекламы" размещается в указанном месте.

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

Swift

let nativeOptions = NativeAdViewAdOptions()
nativeOptions.preferredAdChoicesPosition = .topRightCorner

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  rootViewController: self,
  adTypes: [.native],
  options: [nativeOptions])

Objective-C

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

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"nativeAdUnitID"
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ nativeOptions ]];

Специальный режим просмотра AdChoices

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

Задайте свойство GADNativeAd.adChoicesView с помощью GADAdChoicesView до отрисовки, и контент значка "Выбор рекламы" будет отрисован внутри GADAdChoicesView.

В следующем примере показано, как задать собственное представление AdChoices. Значок "Выбор рекламы" показывается в элементе GADAdChoicesView:

Swift

private func createAdChoicesView(nativeAdView: NativeAdView) {
  // 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
}

Objective-C

- (void)createAdChoicesViewWithNativeAdView:(GADNativeAdView *)nativeAdView {
  // Define a custom position for the AdChoices icon.
  CGRect customRect = CGRectMake(100, 100, 15, 15);
  GADAdChoicesView *customAdChoicesView = [[GADAdChoicesView alloc] initWithFrame:customRect];
  [nativeAdView addSubview:customAdChoicesView];
  nativeAdView.adChoicesView = customAdChoicesView;
}

Управление воспроизведением

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

Поведение при запуске без звука

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

Задайте для параметра GADVideoOptions startMuted значение BOOL.

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

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

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

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

Swift

let videoOptions = VideoOptions()
videoOptions.shouldStartMuted = false

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  rootViewController: self,
  adTypes: [.native],
  options: [videoOptions])

Objective-C

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

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"nativeAdUnitID"
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ videoOptions ]];

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

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

Задайте для параметра GADVideoOptions customControlsRequested значение BOOL.

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

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

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

GADVideoController.

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

Swift

let videoOptions = VideoOptions()
videoOptions.areCustomControlsRequested = true

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  rootViewController: self,
  adTypes: [.native],
  options: [videoOptions])

Objective-C

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

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"nativeAdUnitID"
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ videoOptions ]];

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

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

Swift

private func checkCustomControlsEnabled(nativeAd: NativeAd) -> Bool {
  let videoController = nativeAd.mediaContent.videoController
  return videoController.areCustomControlsEnabled
}

Objective-C

- (BOOL)checkCustomControlsEnabledWithNativeAd:(GADNativeAd *)nativeAd {
  GADVideoController *videoController = nativeAd.mediaContent.videoController;
  return videoController.customControlsEnabled;
}

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

При создании собственных элементов управления видео следуйте приведенным ниже рекомендациям.

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

Специальные жесты

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

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

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

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

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

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

Swift

let swipeGestureOptions = NativeAdCustomClickGestureOptions(
  swipeGestureDirection: .right,
  tapsAllowed: true)

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  rootViewController: self,
  adTypes: [.native],
  options: [swipeGestureOptions])

Objective-C

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

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"nativeAdUnitID"
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ swipeGestureOptions ]];

Как отслеживать события жестов пролистывания

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

Swift

// Called when a swipe gesture click is recorded, as configured in
// NativeAdCustomClickGestureOptions.
func nativeAdDidRecordSwipeGestureClick(_ nativeAd: NativeAd) {
  print("A swipe gesture click has occurred.")
}

// Called when a swipe gesture click or a tap click is recorded.
func nativeAdDidRecordClick(_ nativeAd: NativeAd) {
  print("A swipe gesture click or tap click has occurred.")
}

Objective-C

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

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

Медиация

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