Настройка расширенных функций, Настройка расширенных функций

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

Native ads have many advanced features that allow you to make additional customizations and make the best possible ad experience. This guide shows you how to use the advanced features of native ads.

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

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

This section details how to customize the creative assets in your native ads. You have the option to specify a preferred aspect ratio for media assets and how the image assets are downloaded and displayed.

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

Функция «Управление соотношением сторон медиафайлов» позволяет задать предпочтительное соотношение сторон рекламных креативов.

Вызовите метод 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();

Котлин

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();

Котлин

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();

Котлин

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

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

Размещение рекламы AdChoices

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

Управление размещением AdChoices

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

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

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

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

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

Java

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

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

Котлин

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

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

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

The AdChoices custom view feature lets you position the AdChoices icon in a custom location. This is different from AdChoices position controls, which only allows specification of one of the four corners.

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

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

Java

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

Котлин

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();

Котлин

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.

If the ad does have video content and custom controls are enabled, you should then display your custom controls along with the ad, as the ad won't show any controls itself. The controls can then call the relevant methods on the

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();

Котлин

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();
}

Котлин

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

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

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

  1. Отобразите представление пользовательских элементов управления как дочерний элемент представления нативной рекламы. Такой подход позволяет расчетам видимости OpenMeasure учитывать пользовательские элементы управления как удобное препятствие.
  2. Avoid rendering an invisible overlay over the entire media view. Overlays block clicks on the media view, negatively impacting native ads performance. Instead, create a small overlay that is just large enough to fit the controls.

Настраиваемые жесты щелчка

Custom click gestures is a native ads feature that lets you register swipes on ad views as ad clicks. It works with apps that use swipe gestures for content navigation. This guide shows you how to enable custom click gestures on your native ads.

Вызовите метод 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);

Котлин

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();

Котлин

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