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

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

Требования

Управление объектами

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

Настройки предпочтительного соотношения сторон медиаконтента

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

Вызовите NativeAdOptions.Builder.setMediaAspectRatio() со значением NativeAdOptions.MediaAspectRatio.

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

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

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

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

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

Настройки скачивания изображений

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

Вызовите NativeAdOptions.Builder.setReturnUrlsForImageAssets() со значением boolean.

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

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

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

В примере ниже SDK возвращает только URI.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID")
        .withNativeAdOptions(nativeAdOptions)
        .forNativeAd(
            nativeAd -> {
              List<Uri> imageUris = new ArrayList<>();
              for (Image image : nativeAd.getImages()) {
                imageUris.add(image.getUri());
              }
            })
        .build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build()

val loader =
  AdLoader.Builder(context, "AD_UNIT_ID")
    .withNativeAdOptions(nativeAdOptions)
    .forNativeAd { nativeAd ->
      val imageUris = nativeAd.images.mapNotNull { it.uri }
    }
    .build()

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

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

Вызовите NativeAdOptions.Builder.setRequestMultipleImages() со значением boolean.

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

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

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

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

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setRequestMultipleImages(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setRequestMultipleImages(true).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

Размещение пометки "Выбор рекламы"

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

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

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

Вызовите NativeAdOptions.Builder.setAdChoicesPlacement() со значением NativeAdOption.AdChoicesPlacement.

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

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

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

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

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

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

Вызовите NativeAdView.setAdChoicesView() со значением AdChoicesView.

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

Java

NativeAdView nativeAdView = new NativeAdView(context);
AdChoicesView adChoicesView = new AdChoicesView(context);
nativeAdView.setAdChoicesView(adChoicesView);

Kotlin

val nativeAdView = NativeAdView(context)
val adChoicesView = AdChoicesView(context)
nativeAdView.adChoicesView = adChoicesView

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

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

Начало воспроизведения без звука

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

Вызовите VideoOptions.Builder.setStartMuted() со значением boolean.

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

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

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

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

Java

VideoOptions videoOptions = new VideoOptions.Builder().setStartMuted(false).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setStartMuted(false).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

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

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

Вызовите VideoOptions.Builder.setCustomControlsRequested() со значением boolean.

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

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

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

VideoController.

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

Java

VideoOptions videoOptions = new VideoOptions.Builder().setCustomControlsRequested(true).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setCustomControlsRequested(true).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

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

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

Java

MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
  VideoController videoController = mediaContent.getVideoController();
  boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}

Kotlin

val mediaContent = nativeAd.mediaContent
if (mediaContent != null) {
  val videoController = mediaContent.videoController
  val canShowCustomControls = videoController.isCustomControlsEnabled
}

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

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

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

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

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

Вызовите метод NativeAdOptions.Builder.enableCustomClickGestureDirection() с объектом NativeAdOptions.SwipeGestureDirection и логическим значением boolean, чтобы указать, следует ли разрешить нажатия в качестве кликов.

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

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

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

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

Java

NativeAdOptions adOptions =
    new NativeAdOptions.Builder()
        .enableCustomClickGestureDirection(
            NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, /* tapsAllowed= */ true)
        .build();

// ca-app-pub-3940256099942544/2247696110 is a sample ad unit ID that has custom click
// gestures enabled.
AdLoader.Builder builder =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions);

Kotlin

val adOptions =
  NativeAdOptions.Builder()
    .enableCustomClickGestureDirection(NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, true)
    .build()

val builder = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions)

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

Когда регистрируется клик, выполненный с помощью жеста пролистывания, Google Mobile Ads SDK (Legacy) вызывает метод onAdSwipeGestureClicked() для AdListener в дополнение к существующему методу onAdClicked().

Java

AdLoader adLoader =
    new AdLoader.Builder(context, AD_UNIT_ID)
        .withAdListener(
            new AdListener() {
              // Called when a swipe gesture click is recorded.
              @Override
              public void onAdSwipeGestureClicked() {
                // Called when a swipe gesture click is recorded.
                Log.d(TAG, "A swipe gesture click has occurred.");
              }

              @Override
              public void onAdClicked() {
                // Called when a swipe gesture click or a tap click is recorded, as
                // configured in NativeAdOptions.
                Log.d(TAG, "A swipe gesture click or a tap click has occurred.");
              }
            })
        .build();

Kotlin

val adLoader =
  AdLoader.Builder(context, AD_UNIT_ID)
    .withAdListener(
      object : AdListener() {
        override fun onAdSwipeGestureClicked() {
          // Called when a swipe gesture click is recorded.
          Log.d(TAG, "A swipe gesture click has occurred.")
        }

        override fun onAdClicked() {
          // Called when a swipe gesture click or a tap click is recorded, as
          // configured in NativeAdOptions.
          Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
        }
      }
    )
    .build()

Медиация

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