Нативная реклама обладает множеством расширенных функций, позволяющих настраивать её по своему вкусу и создавать максимально комфортные условия для просмотра. Это руководство покажет вам, как использовать расширенные функции нативной рекламы.
Предпосылки
- Интегрируйте формат нативной рекламы .
Контроль активов
В этом разделе подробно описывается, как настроить креативные ресурсы в нативной рекламе. Вы можете указать предпочтительное соотношение сторон для медиаресурсов, а также способ загрузки и отображения изображений.
Предпочтительные элементы управления соотношением сторон медиа-файла
Элементы управления соотношением сторон медиа-контента позволяют вам указать предпочтения по соотношению сторон рекламных креативов.
 Вызовите NativeAdOptions.Builder.setMediaAspectRatio() со значением NativeAdOptions.MediaAspectRatio .
- Если этот параметр не установлен, возвращаемое объявление может иметь любое соотношение сторон медиа-объекта. 
- После установки вы сможете улучшить пользовательский опыт, указав предпочтительный тип соотношения сторон. 
В следующем примере SDK указывается, что следует отдавать предпочтение возвращаемому изображению или видео с определенным соотношением сторон.
Ява
Котлин
Замените AD_UNIT_ID на идентификатор вашего рекламного блока.
Управление загрузкой изображений
Управление загрузкой изображений позволяет вам решить, будут ли возвращаться SDK ресурсы изображений или только URI.
 Вызовите NativeAdOptions.Builder.setReturnUrlsForImageAssets() с boolean значением.
- Контроль загрузки изображений по умолчанию отключен. 
- Если эта функция отключена, Google Mobile Ads SDK автоматически заполняет как изображение, так и URI. 
- При включении SDK заполняет только URI, позволяя вам загружать изображения по вашему усмотрению. 
В следующем примере SDK получает команду вернуть только URI.
Ява
Котлин
Элементы управления полезной нагрузкой изображения
В некоторых объявлениях используется серия изображений, а не одно. Используйте эту функцию, чтобы указать, готово ли ваше приложение отображать все изображения или только одно.
 Вызовите NativeAdOptions.Builder.setRequestMultipleImages() с boolean значением.
- Элементы управления полезной нагрузкой изображений по умолчанию отключены. 
- Если эта опция отключена, ваше приложение дает SDK команду предоставить только первое изображение для любых ресурсов, содержащих серию. 
- При включении ваше приложение показывает, что оно готово отображать все изображения для любых активов, у которых их больше одного. 
В следующем примере SDK получает команду вернуть несколько графических ресурсов.
Ява
Котлин
Места размещения AdChoices
В этом разделе подробно описано, как разместить наложение AdChoices. Вы можете выбрать его расположение в одном из четырёх углов или отобразить в пользовательском представлении.
Управление позициями AdChoices
Элементы управления положением AdChoices позволяют выбрать, в каком углу будет отображаться значок AdChoices.
 Вызовите NativeAdOptions.Builder.setAdChoicesPlacement() со значением NativeAdOption.AdChoicesPlacement .
- Если не установлено, значок AdChoices будет располагаться вверху справа. 
- Если установлено, AdChoices размещается в указанной пользователем позиции по запросу. 
В следующем примере показано, как настроить пользовательскую позицию изображения AdChoices.
Ява
Котлин
Пользовательский вид AdChoices
Функция пользовательского представления AdChoices позволяет разместить значок AdChoices в нужном месте. Это отличается от настроек положения AdChoices, которые позволяют указать только один из четырёх углов.
 Вызовите NativeAdView.setAdChoicesView() со значением AdChoicesView .
 В следующем примере показано, как настроить пользовательское представление AdChoices со значком AdChoices, отображаемым внутри AdChoicesView . 
Ява
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 значением.
- По умолчанию отключение звука включено. 
- Если эта функция отключена, приложение будет требовать, чтобы видео начиналось со звука. 
- Если эта функция включена, приложение попросит, чтобы видео начиналось с отключенным звуком. 
В следующем примере показано, как запустить видео с включенным звуком.
Ява
Котлин
Пользовательские элементы управления воспроизведением
Это позволяет вам запрашивать пользовательские элементы управления видеовходом для воспроизведения, приостановки или отключения звука видео.
 Вызовите VideoOptions.Builder.setCustomControlsRequested() с boolean значением.
- Пользовательские элементы управления воспроизведением по умолчанию отключены. 
- Если этот параметр отключен, в вашем видео будут отображаться элементы управления вводом, созданные с помощью SDK. 
Если в рекламе есть видеоконтент и включены пользовательские элементы управления, вам следует отображать их вместе с рекламой, поскольку сама реклама не будет отображать никаких элементов управления. Элементы управления могут вызывать соответствующие методы на
В следующем примере показано, как запросить видео с пользовательскими элементами управления воспроизведением.
Ява
Котлин
Проверьте, включены ли пользовательские элементы управления.
Поскольку на момент запроса неизвестно, будет ли возвращенное объявление позволять настраиваемые элементы управления видео, необходимо проверить, включены ли в нем настраиваемые элементы управления.
Ява
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
}
Рендеринг пользовательских элементов управления видео
Рендерите пользовательские элементы управления видео, используя следующие рекомендации:
- Отрисовывайте пользовательские элементы управления как дочерний элемент представления нативной рекламы. Такой подход позволяет при расчёте видимости Open Measurement учитывать пользовательские элементы управления как помеху.
- Избегайте отображения невидимого наложения поверх всего медиа-представления. Наложения блокируют клики по медиа-представлению, что негативно сказывается на эффективности нативной рекламы. Вместо этого создайте небольшое наложение, достаточно большое, чтобы поместить элементы управления.
Пользовательские жесты нажатия
Настраиваемые жесты нажатия — это функция нативной рекламы, которая позволяет регистрировать свайпы при просмотре рекламы как клики по рекламе. Она разработана для приложений, использующих свайпы для навигации по контенту. В этом руководстве показано, как включить настраиваемые жесты нажатия в нативной рекламе.
 Вызовите NativeAdOptions.Builder.enableCustomClickGestureDirection() с NativeAdOptions.SwipeGestureDirection и boolean чтобы указать, нужно ли разрешать нажатия как щелчки.
В следующем примере реализован пользовательский жест смахивания вправо с сохранением обычного поведения вкладки.
- Пользовательские жесты нажатия по умолчанию отключены. 
- Если эта функция отключена, ваше приложение будет поддерживать обычное поведение нажатия. 
- Если эта функция включена, ваше приложение будет поддерживать пользовательские жесты смахивания. 
В следующем примере реализован пользовательский жест смахивания вправо с сохранением обычного поведения вкладки.
Ява
Котлин
Прослушивание событий жестов смахивания
 При регистрации нажатия жеста смахивания Google Mobile Ads SDK вызывает метод onAdSwipeGestureClicked() в AdListener в дополнение к существующему методу onAdClicked() . 
Ява
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 , не поддерживают настройку пользовательских инструкций клика.