Слайдер рекламных объявлений

Нативная реклама — реклама, внешний вид которой может определяться на стороне приложения. Данная особенность позволяет изменять визуальный стиль объявлений и места их размещения с учетом особенностей дизайна приложения.

Отрисовка рекламы производится нативными средствами платформы, что увеличивает её производительность и качество.

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

Пререквизит

  1. Выполните шаги по интеграции sdk, описанные в Быстром старте.
  2. Заранее проинициализируйте рекламный SDK.
  3. Убедитесь, что используете самую актуальную версию Yandex Mobile Ads SDK, а в случае использовании медиации — наиболее свежую версию единой сборки.

Загрузка слайдера

  1. Создайте экземпляр класса NativeAdLoader для получения рекламных объявлений в рамках слайдера.

  2. Создайте конфигурацию запроса nativeAdRequestConfiguration с помощью класса NativeAdRequestConfiguration. В качестве параметров запроса можно передать идентификатор рекламного блока, способ загрузки изображений, возраст, гендерные признаки и другие данные, способные улучшить качество подбора рекламы.

  3. Установите делегат для получения рекламы, который реализует протокол NativeAdLoaderDelegate.

  4. Чтобы отслеживать процесс загрузки рекламы, реализуйте методы протокола NativeAdLoaderDelegate: -nativeAdLoader:didFailLoadingWithError:, -nativeAdLoader:didLoadAd:.

  5. Отправьте загрузчику сообщение loadAdWithRequestConfiguration:, чтобы загрузить рекламу.

  6. Если реклама загрузилась, будет вызван метод:

    func nativeAdLoader(_ loader: NativeAdLoader, didLoad ad: NativeAd)
    
  7. Если реклама не загрузилась, будет вызван следующий метод:

    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 {
            // Обработать как обычную нативную рекламу
        }
    }