Варианты нативной рекламы

Выберите платформу: Android iOS

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

Предпосылки

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

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

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

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

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

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

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

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

AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

Управление загрузкой изображений

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

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

  • Контроль загрузки изображений по умолчанию отключен.

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

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

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

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

AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
                              .withNativeAdOptions(nativeAdOptions)
                              .forNativeAd(nativeAd -> {
                                List<Uri> imageUris = new ArrayList<>();
                                for (Image image : nativeAd.getImages()) {
                                  imageUris.add(image.getUri());
                                }
                              })
                              .build();

Элементы управления полезной нагрузкой изображения

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

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

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

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

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

В следующем примере SDK получает команду вернуть несколько графических ресурсов.

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

AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

Размещение AdChoices

Элементы управления положением AdChoices

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

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

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

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

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

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

AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

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

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

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

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


public void onNativeAdLoaded(NativeAd ad) {
    NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
    AdChoicesView adChoicesView = new AdChoicesView(this);
    nativeAdView.setAdChoicesView(adChoicesView);
}

Видеоконтроль

Начать отключение звука

Функция отключения звука при запуске видео позволяет отключать или включать начальный звук видео.

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

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

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

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

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

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

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

AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
                              .withNativeAdOptions(adOptions).build();

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

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

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

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

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

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

VideoController .

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

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

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

AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
                              .withNativeAdOptions(adOptions).build();

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

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

Котлин

NativeAd.OnNativeAdLoadedListener { ad ->
  val mediaContent = ad.mediaContent
  if (mediaContent != null) {
    val videoController = mediaContent.videoController
    val canShowCustomControls = videoController.isCustomControlsEnabled
  }
}

Ява

@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
  MediaContent mediaContent = nativeAd.getMediaContent();
  if (mediaContent != null) {
    VideoController videoController = mediaContent.getVideoController();
    boolean canShowCustomControls = videoController.isCustomControlsEnabled();
  }
}

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

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

  1. Отобразите представление пользовательских элементов управления как дочерний элемент представления нативной рекламы. Этот подход гарантирует, что расчеты видимости открытых измерений будут рассматривать пользовательские элементы управления как дружественное препятствие.
  2. Избегайте отображения невидимого наложения поверх всего вида мультимедиа. Наложения блокируют клики по виду мультимедиа, что негативно влияет на производительность нативной рекламы. Вместо этого создайте небольшое наложение, которое будет достаточно большим, чтобы вместить элементы управления.

Пользовательские жесты нажатия

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

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

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

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

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

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

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

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

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
AdLoader.Builder builder = new AdLoader
    .Builder(this, 'ca-app-pub-3940256099942544/2247696110')
    .withNativeAdOptions(adOptions);

Прослушивание событий жестов смахивания

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

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

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

Медиация

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