Нативные объявления имеют множество продвинутых функций, которые позволяют выполнять дополнительные настройки и обеспечивать наилучшее качество рекламы. В этом руководстве рассказывается, как использовать продвинутые функции нативных объявлений.
Требования
- Интегрируйте формат нативных объявлений.
Управление объектами
В этом разделе рассказывается, как настраивать объекты креативов в нативных объявлениях. Вы можете указать предпочтительное соотношение сторон для медиаобъектов, а также способ скачивания и показа объектов изображений.
Элементы управления предпочтительным соотношением сторон медиаконтента
Настройки соотношения сторон медиафайлов позволяют указать предпочтительное соотношение сторон для рекламных креативов.
Вызовите NativeAdRequest.Builder.setMediaAspectRatio() со значением NativeAd.NativeMediaAspectRatio.
Если значение не задано, возвращаемое объявление может иметь любое соотношение сторон.
Это позволит вам улучшить взаимодействие с пользователем, указав предпочтительный тип соотношения сторон.
В примере ниже SDK получает указание отдавать предпочтение изображениям или видео с определенным соотношением сторон.
Kotlin
val adRequest = NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
listOf(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build()
Java
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
List.of(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build();
Настройки скачивания изображений
Управление скачиванием изображений позволяет указать, что должно возвращаться SDK: объекты изображений или только URI.
Позвоните по номеру NativeAdRequest.Builder.disableImageDownloading().
По умолчанию скачивание изображений отключено.
Если эта функция отключена, GMA Next-Gen SDK автоматически заполняет поля с изображением и URI.
Если этот параметр включен, SDK заполняет только URI, что позволяет скачивать изображения по своему усмотрению.
В примере ниже SDK возвращает только URI.
Kotlin
val adRequest = NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
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);
Java
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
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 получает команду вернуть несколько объектов изображений.
Размещение пометки "Выбор рекламы"
В этом разделе рассказывается, как разместить оверлей "Выбор рекламы". Вы можете разместить его в одном из четырех углов экрана или в специальной области просмотра.
Настройки расположения значка "Выбор рекламы"
С помощью настроек положения значка "Выбор рекламы" можно выбрать, в каком углу он будет показываться.
Вызовите NativeAdRequest.Builder.setAdChoicesPlacement() со значением NativeAdRequest.AdChoicesPlacement.
Если значение не задано, значок "Выбор рекламы" будет размещен в правом верхнем углу.
Если задать этот параметр, значок "Выбор рекламы" будет размещен в указанном месте.
В примере ниже показано, как задать собственное положение значка "Выбор рекламы".
Kotlin
val adRequest = NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
listOf(NativeAd.NativeAdType.NATIVE))
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build()
Java
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
List.of(NativeAd.NativeAdType.NATIVE))
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build();
Специальный режим просмотра значка "Выбор рекламы"
Функция пользовательского представления позволяет разместить значок "Выбор рекламы" в любом месте. Это отличается от настроек положения значка "Выбор рекламы", который можно разместить только в одном из четырех углов.
Вызовите NativeAdView.setAdChoicesView() со значением AdChoicesView.
В примере ниже показано, как настроить собственное представление "Выбор рекламы" со значком "Выбор рекламы", отображаемым внутри AdChoicesView.
Kotlin
override fun onNativeAdLoaded(nativeAd: NativeAd) {
val nativeAdView = NativeAdView(applicationContext)
val adChoicesView = AdChoicesView(this)
nativeAdView.adChoicesView = adChoicesView
}
Java
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().
По умолчанию звук отключен.
Если параметр отключен, приложение запрашивает видео со звуком.
Если этот параметр включен, приложение запрашивает, чтобы видео начиналось с отключенным звуком.
В примере ниже показано, как запустить видео со звуком.
Kotlin
val videoOptions = VideoOptions.Builder()
.setStartMuted(false)
.build()
val adRequest = NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
listOf(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Java
VideoOptions videoOptions = VideoOptions.Builder()
.setStartMuted(false)
.build()
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
List.of(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Собственные элементы управления воспроизведением
Это позволяет запрашивать специальные элементы управления видео, чтобы воспроизводить, приостанавливать или отключать звук в видео.
Чтобы задать начальное состояние звука в объявлениях, вызовите VideoOptions.Builder.setCustomControlsRequested().
По умолчанию персонализированные элементы управления отключены.
Если отключить эту функцию, в видео будут показываться элементы управления, отрисованные SDK.
Если в объявлении есть видеоконтент и включены специальные элементы управления, то они должны показываться вместе с объявлением, поскольку в нем самом элементов управления нет. Затем элементы управления могут вызывать соответствующие методы в
VideoOptions.Builder.setCustomControlsRequested().
В примере ниже показано, как запросить видео с собственными элементами управления воспроизведением.
Kotlin
val videoOptions: VideoOptions.Builder()
.setCustomControlsRequested(true)
.build()
val adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
listOf(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Java
VideoOptions VideoOptions = VideoOptions.Builder()
.setCustomControlsRequested(true)
.build()
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
List.of(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Как проверить, включены ли специальные элементы управления
Поскольку во время запроса неизвестно, будет ли возвращенное объявление поддерживать собственные элементы управления видео, необходимо проверить, включены ли они.
Kotlin
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();
}
}
};
Java
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.
Специальные жесты по умолчанию отключены.
Если эта функция отключена, в приложении поддерживается обычное поведение при клике.
Если этот параметр включен, приложение поддерживает специальные жесты пролистывания.
В примере ниже реализован специальный жест пролистывания вправо, а обычное нажатие сохранено.
Kotlin
Java
Как отслеживать события жестов пролистывания
Чтобы отслеживать события жестов пролистывания, вызовите NativeAd.setAdEventCallback() с NativeAdEventCallback и реализуйте метод onAdSwipeGestureClicked().
Kotlin
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)
Java
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, не реагируют на настройки специальных указаний по кликам.