Нативные объявления имеют множество расширенных функций, которые позволяют вам выполнять дополнительные настройки и обеспечивать наилучшее качество рекламы. В этом руководстве показано, как использовать расширенные функции нативной рекламы.
Предварительные условия
- Интегрируйте формат нативной рекламы .
Контроль активов
Предпочтительные элементы управления соотношением сторон мультимедиа
Элементы управления соотношением сторон мультимедиа позволяют указать предпочтение соотношения сторон рекламных объявлений.
Вызовите 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, '/21775744923/example/native')
.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, '/21775744923/example/native')
.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, '/21775744923/example/native')
.withNativeAdOptions(nativeAdOptions)
.build();
Места размещения AdChoices
Управление позициями AdChoices
Элементы управления положением AdChoices позволяют выбрать, в каком углу будет отображаться значок AdChoices.
Вызовите NativeAdOptions.Builder.setAdChoicesPlacement()
со значением NativeAdOption.AdChoicesPlacement
.
Если этот параметр не установлен, значок «Выбор рекламы» располагается в правом верхнем углу.
Если установлено, AdChoices размещается в произвольной позиции по запросу.
В следующем примере показано, как установить пользовательскую позицию изображения AdChoices.
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build();
AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
.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, '/21775744923/example/native')
.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, '/21775744923/example/native')
.withNativeAdOptions(adOptions).build();
Проверьте, включены ли пользовательские элементы управления
Поскольку на момент запроса неизвестно, будут ли в возвращенном объявлении разрешены пользовательские элементы управления видео, необходимо проверить, включены ли в нем специальные элементы управления.
Ява
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
VideoController videoController = mediaContent.getVideoController();
boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}
}
Котлин
NativeAd.OnNativeAdLoadedListener { ad ->
val mediaContent = ad.mediaContent
if (mediaContent != null) {
val videoController = mediaContent.videoController
val canShowCustomControls = videoController.isCustomControlsEnabled
}
}
Рендеринг пользовательских элементов управления видео
Отрисовывайте пользовательские элементы управления видео, используя следующие рекомендации:
- Отобразите представление настраиваемых элементов управления как дочернее представление собственного объявления. Такой подход гарантирует, что при расчете видимости открытых измерений пользовательские элементы управления рассматриваются как удобное препятствие.
- Избегайте рендеринга невидимого наложения на все изображение мультимедиа. Наложения блокируют клики при просмотре мультимедиа, что отрицательно влияет на эффективность нативной рекламы. Вместо этого создайте небольшое наложение, достаточно большое, чтобы вместить элементы управления.
Пользовательские жесты щелчков
Пользовательские жесты щелчков – это встроенная функция рекламы, которая позволяет регистрировать пролистывания при просмотре рекламы как клики по рекламе. Он предназначен для работы с приложениями, которые используют жесты смахивания для навигации по контенту. В этом руководстве показано, как включить пользовательские жесты щелчка в нативных объявлениях.
Вызовите 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, '/21775744923/example/native')
.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 , не реагируют на настройку пользовательских направлений кликов.