Нативная реклама обладает множеством расширенных функций, позволяющих настраивать её по своему вкусу и создавать максимально комфортные условия для просмотра. Это руководство покажет вам, как использовать расширенные функции нативной рекламы.
Предпосылки
- Интегрируйте формат нативной рекламы .
Контроль активов
Настройте элементы управления собственными рекламными активами.
Предпочтительные элементы управления соотношением сторон медиа-файла
Элементы управления соотношением сторон медиа-контента позволяют вам указать предпочтения по соотношению сторон рекламных креативов.
Вызовите NativeAdRequest.Builder.setMediaAspectRatio()
со значением NativeAd.NativeMediaAspectRatio
.
Если этот параметр не установлен, возвращаемое объявление может иметь любое соотношение сторон медиа-объекта.
После установки вы сможете улучшить пользовательский опыт, указав предпочтительный тип соотношения сторон.
В следующем примере SDK указывается, что следует отдавать предпочтение возвращаемому изображению или видео с определенным соотношением сторон.
Котлин
val adRequest = NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build()
Ява
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build();
Управление загрузкой изображений
Управление загрузкой изображений позволяет вам решить, будут ли возвращаться SDK ресурсы изображений или только URI.
Вызовите NativeAdRequest.Builder.disableImageDownloading()
.
Контроль загрузки изображений по умолчанию отключен.
Если эта опция отключена, Google Mobile Ads SDK автоматически заполняет как изображение, так и URI.
При включении SDK заполняет только URI, позволяя вам загружать изображения по вашему усмотрению.
В следующем примере SDK получает команду вернуть только URI.
Котлин
val adRequest = NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.disableImageDownloading()
.build()
val adCallback: NativeAdLoaderCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
// Get the image uri.
val imageUri = nativeAd.image?.uri
}
};
// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);
Ява
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.disableImageDownloading()
.build();
NativeAdLoaderCallback adLoaderCallback =
new NativeAdLoaderCallback() {
@Override
public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
// Get the image uri.
Uri imageUri = nativeAd.getImage().getUri();
}
};
// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);
Элементы управления полезной нагрузкой изображений по умолчанию отключены.
Если эта опция отключена, ваше приложение дает SDK команду предоставить только первое изображение для любых ресурсов, содержащих серию.
При включении ваше приложение показывает, что оно готово отображать все изображения для любых активов, у которых их больше одного.
В следующем примере SDK получает команду вернуть несколько графических ресурсов.
Места размещения AdChoices
Настройте отображение значка AdChoices.
Управление позициями AdChoices
Элементы управления положением AdChoices позволяют выбрать, в каком углу будет отображаться значок AdChoices.
Вызовите NativeAdRequest.Builder.setAdChoicesPlacement()
со значением NativeAdRequest.AdChoicesPlacement
.
Если не установлено, значок AdChoices будет располагаться вверху справа.
Если установлено, AdChoices размещается в указанной пользователем позиции по запросу.
В следующем примере показано, как настроить пользовательскую позицию изображения AdChoices.
Котлин
val adRequest = NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build()
Ява
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build();
Пользовательский вид AdChoices
Функция пользовательского представления AdChoices позволяет разместить значок AdChoices в нужном месте. Это отличается от настроек положения AdChoices, которые позволяют указать только один из четырёх углов.
Вызовите NativeAdView.setAdChoicesView()
со значением AdChoicesView
.
В следующем примере показано, как настроить пользовательское представление AdChoices со значком AdChoices, отображаемым внутри AdChoicesView
.
Котлин
override fun onNativeAdLoaded(nativeAd: NativeAd) {
val nativeAdView = NativeAdView(applicationContext)
val adChoicesView = AdChoicesView(this)
nativeAdView.adChoicesView = adChoicesView
}
Ява
public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
AdChoicesView adChoicesView = new AdChoicesView(this);
nativeAdView.setAdChoicesView(adChoicesView);
}
Видеоконтроль
Настройте поведение видеоресурсов.
Начать отключение звука
Функция отключения звука при запуске видео позволяет отключать или включать начальный звук видео.
Вызовите VideoOptions.Builder.setStartMuted()
с boolean
значением и вызовите NativeAdOptions.Builder.setVideoOptions()
.
По умолчанию отключение звука включено.
Если эта функция отключена, приложение будет требовать, чтобы видео начиналось со звука.
Если эта функция включена, приложение попросит, чтобы видео начиналось с отключенным звуком.
В следующем примере показано, как запустить видео с включенным звуком.
Котлин
val videoOptions = VideoOptions.Builder()
.setStartMuted(false)
.build()
val adRequest = NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Ява
VideoOptions videoOptions = VideoOptions.Builder()
.setStartMuted(false)
.build()
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Пользовательские элементы управления воспроизведением
Это позволяет вам запрашивать пользовательские элементы управления видеовходом для воспроизведения, приостановки или отключения звука видео.
Чтобы отключить звук рекламы, вызовите VideoOptions.Builder.setCustomControlsRequested()
.
Пользовательские элементы управления воспроизведением по умолчанию отключены.
Если этот параметр отключен, в вашем видео будут отображаться элементы управления вводом, созданные с помощью SDK.
Если в рекламе есть видеоконтент и включены пользовательские элементы управления, вам следует отображать их вместе с рекламой, поскольку сама реклама не будет отображать никаких элементов управления. Элементы управления могут вызывать соответствующие методы на
VideoOptions.Builder.setCustomControlsRequested()
.
В следующем примере показано, как запросить видео с пользовательскими элементами управления воспроизведением.
Котлин
val videoOptions: VideoOptions.Builder()
.setCustomControlsRequested(true)
.build()
val adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Ява
VideoOptions VideoOptions = VideoOptions.Builder()
.setCustomControlsRequested(true)
.build()
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Проверьте, включены ли пользовательские элементы управления.
Поскольку на момент запроса неизвестно, будет ли возвращенное объявление позволять настраиваемые элементы управления видео, необходимо проверить, включены ли в нем настраиваемые элементы управления.
Котлин
val adCallback: NativeAdLoaderCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
val mediaContent = nativeAd.mediaContent;
if (mediaContent != null) {
val videoController = mediaContent.videoController;
val canShowCustomControls = videoController?.isCustomControlsEnabled();
}
}
};
Ява
NativeAdLoaderCallback adCallback =
new NativeAdLoaderCallback() {
@Override
public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
VideoController videoController = mediaContent.getVideoController();
if (videoController != null) {
boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}
}
}
};
Рендеринг пользовательских элементов управления видео
Рендерите пользовательские элементы управления видео, используя следующие рекомендации:
- Отрисовывайте пользовательские элементы управления как дочерний элемент представления нативной рекламы. Такой подход позволяет при расчёте видимости Open Measurement учитывать пользовательские элементы управления как помеху.
- Избегайте отображения невидимого наложения поверх всего медиа-представления. Наложения блокируют клики по медиа-представлению, что негативно сказывается на эффективности нативной рекламы. Вместо этого создайте небольшое наложение, достаточно большое, чтобы поместить элементы управления.
Пользовательские жесты нажатия
Настраиваемые жесты нажатия — это функция нативной рекламы, которая позволяет регистрировать свайпы при просмотре рекламы как клики по рекламе. Она разработана для приложений, использующих свайпы для навигации по контенту. В этом руководстве показано, как включить настраиваемые жесты нажатия в нативной рекламе.
Вызовите NativeAdRequest.Builder.enableCustomClickGestureDirection()
с NativeAd.SwipeGestureDirection
и boolean
значением.
В следующем примере реализован пользовательский жест смахивания вправо с сохранением обычного поведения вкладки.
Пользовательские жесты нажатия по умолчанию отключены.
Если эта функция отключена, ваше приложение будет поддерживать обычное поведение нажатия.
Если эта функция включена, ваше приложение будет поддерживать пользовательские жесты смахивания.
В следующем примере реализован пользовательский жест смахивания вправо с сохранением обычного поведения вкладки.
Котлин
val adOptions = NativeAdOptions
.Builder()
.enableCustomClickGestureDirection(
/* swipeDirection */ 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.
val adRequest = NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.withNativeAdOptions(adOptions)
.build();
Ява
NativeAdOptions adOptions = new NativeAdOptions
.Builder()
.enableCustomClickGestureDirection(
/* swipeDirection */ 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.
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.withNativeAdOptions(adOptions)
.build();
Прослушивание событий жестов смахивания
Чтобы прослушивать события жестов смахивания, вызовите NativeAd.setAdEventCallback()
с NativeAdEventCallback
и реализуйте метод onAdSwipeGestureClicked()
.
Котлин
val adCallback: NativeAdLoaderCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
// Implement the onAdSwipeGestureClicked() method.
val nativeAdCallback: NativeAdEventCallback = object : NativeAdEventCallback {
override fun onAdSwipeGestureClicked() {
// A swipe gesture click has occurred.
}
}
}
}
// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adCallback)
Ява
NativeAdLoaderCallback adCallback =
new NativeAdLoaderCallback() {
@Override
public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
// Implement the onAdSwipeGestureClicked() method.
NativeAdEventCallback nativeAdCallback = new NativeAdEventCallback() {
@Override
public void onAdSwipeGestureClicked() {
// A swipe gesture click has occurred.
}
};
}
};
// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adCallback);
Медиация
Пользовательские жесты клика работают только с нативными объявлениями, которые отображает Google Mobile Ads SDK. Источники рекламы, для отображения которых требуются сторонние SDK , не поддерживают настройку пользовательских инструкций клика.