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

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

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

Требования

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

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

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

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

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