Слайдер рекламных объявлений
Нативная реклама — реклама, внешний вид которой может определяться на стороне приложения. Данная особенность позволяет изменять визуальный стиль объявлений и места их размещения с учетом особенностей дизайна приложения.
Отрисовка рекламы производится нативными средствами платформы, что увеличивает её производительность и качество.
Нативные объявления улучшают впечатления от рекламы, поэтому вы можете показывать больше объявлений, не теряя интерес пользователей. Это позволяет обеспечить максимальный доход от рекламы в долгосрочной перспективе.
Пререквизит
- Выполните шаги по интеграции sdk, описанные в Быстром старте.
- Заранее проинициализируйте рекламный SDK.
- Убедитесь, что используете самую актуальную версию Yandex Mobile Ads SDK, а в случае использовании медиации — наиболее свежую версию единой сборки.
Загрузка слайдера
-
Создайте экземпляр класса
NativeAdLoader
для получения рекламных объявлений в рамках слайдера. -
Создайте конфигурацию запроса
nativeAdRequestConfiguration
с помощью классаNativeAdRequestConfiguration
. В качестве параметров запроса можно передать идентификатор рекламного блока, способ загрузки изображений, возраст, гендерные признаки и другие данные, способные улучшить качество подбора рекламы. -
Установите делегат для получения рекламы, который реализует протокол
NativeAdLoaderDelegate
. -
Чтобы отслеживать процесс загрузки рекламы, реализуйте методы протокола
NativeAdLoaderDelegate
:-nativeAdLoader:didFailLoadingWithError:
,-nativeAdLoader:didLoadAd:
. -
Отправьте загрузчику сообщение
loadAdWithRequestConfiguration:
, чтобы загрузить рекламу. -
Если реклама загрузилась, будет вызван метод:
func nativeAdLoader(_ loader: NativeAdLoader, didLoad ad: NativeAd)
-
Если реклама не загрузилась, будет вызван следующий метод:
func nativeAdLoader(_ loader: NativeAdLoader, didFailLoadingWithError error: Error)
Пример общего запроса за рекламой
// Создание загрузчика
adLoader = NativeAdLoader()
adLoader.delegate = self
// Создание конфигурации запроса
let requestConfiguration = NativeAdRequestConfiguration(adUnitID: "<AdUnitID>")
// Передача загрузчику конфигурации запроса
adLoader.loadAd(with: requestConfiguration)
// Реализация методов делегата
// ...
func nativeAdLoader(_ loader: NativeAdLoader, didLoad ad: NativeAd) {
// Отобразите рекламу
}
Показ слайдера нативных объявлений
После окончания загрузки слайдера все его компоненты необходимо отобразить.
Успешно загруженный слайдер содержит одно или несколько связанных между собой нативных объявлений. Показ рекламных объявлений в рамках слайдера должен происходить в пределах одного общего контейнера, иначе показ объявлений не будет засчитан.
Ручная настройка внешнего оформления слайдера нативной рекламы
Ручная настройка внешнего оформления слайдера нативной рекламы используется в тех случаях, когда возможностей настройки шаблона недостаточно для получения желаемого результата.
Данный способ позволяет самостоятельно сверстать макет слайдера нативной рекламы, определить расположение компонентов рекламы относительно друг друга. В объявлении могут присутствовать как обязательные, так и опциональные для показа компоненты. Полный их перечень можно найти в разделе Компоненты нативной рекламы.
Совет
Для каждого объявления в слайдере рекомендуется использовать макет, который включает весь набор возможных компонентов. Как показывает практика, макет, включающий весь набор компонентов, приводит к лучшим конверсиям.
Вызовите метод bindAdToSliderView
и передайте в него контейнер для слайдера объявлений.
Внешнее оформление каждого объявления, входящего в слайдер, настраивается одним из способов оформления стандартной нативной рекламы.
func nativeAdLoader(_ loader: NativeAdLoader, didLoad ad: NativeAd) {
self.ad = ad
ad.delegate = self
// Проверяем наличие вложенных объявлений
if ad.ads.count != 0 {
// Создаем контейнер для слайдера; Вместо YMANativeAdView должен быть ваш наследник этого класса
let sliderAdView = YMANativeAdView()
// Вызываем метод bindAd(toSliderView: _) и передаем в него контейнер
do {
try ad.bindAd(toSliderView: sliderAdView)
} catch {
// Проверяем сообщение об ошибке и исправляем проблему
return
}
for subAd in ad.ads {
// Подписываемся на делегат
subAd.delegate = self
// Создаем рекламное view для объявления
// Вместо YMANativeAdView должен быть ваш наследник этого класса
let subAdView = YMANativeAdView()
// Вызываем метод bind(with: subAdView) для объявления
do {
try subAd.bind(with: subAdView)
} catch {
// Проверяем сообщение об ошибке и исправляем проблему
return
}
// Добавляем объявление в контейнер
sliderAdView.addSubview(subAdView)
// Располагаем объявление в контейнере
}
} else {
// Обработать как обычную нативную рекламу
}
}