---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ads.yandex.com/helpcenter/en/dev/ios7/slider.md
  - https://ads.yandex.com/helpcenter/ru/dev/ios7/slider.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ads.yandex.com/helpcenter/ru/llms.txt

<!--
Используется в Boost: boost/ru/ad-monetization/dev/ios
-->

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

<!-- source: ru/dev/_includes7/native-ads.md -->
Нативная реклама — реклама, внешний вид которой может определяться на стороне приложения. Данная особенность позволяет изменять визуальный стиль объявлений и места их размещения с учетом особенностей дизайна приложения.
<!-- endsource: ru/dev/_includes7/native-ads.md -->

<!-- source: ru/dev/_includes7/native-ads.md -->
Отрисовка рекламы производится нативными средствами платформы, что увеличивает ее производительность и качество.
<!-- endsource: ru/dev/_includes7/native-ads.md -->

<!-- source: ru/dev/_includes7/native-ads.md -->
Нативные объявления улучшают впечатления от рекламы, поэтому вы можете показывать больше объявлений, не теряя интерес пользователей. Это позволяет обеспечить максимальный доход от рекламы в долгосрочной перспективе.
<!-- endsource: ru/dev/_includes7/native-ads.md -->

## Пререквизит {#pre}

<!-- source: ru/dev/_includes7/pre-ios.md -->
1. Выполните шаги по интеграции sdk, описанные в [Быстром старте](https://ads.yandex.com/helpcenter/ru/dev/ios7/quick-start.md).
2. Заранее [проинициализируйте](https://ads.yandex.com/helpcenter/ru/dev/ios7/quick-start.md#init) рекламный SDK.
3. Убедитесь, что используете самую [актуальную версию Yandex Mobile Ads SDK](https://ads.yandex.com/helpcenter/ru/dev/platforms.md), а в случае использовании медиации — наиболее свежую [версию единой сборки](https://ads.yandex.com/helpcenter/ru/dev/platforms.md).
<!-- endsource: ru/dev/_includes7/pre-ios.md -->

## Загрузка слайдера {#load}

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

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

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

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

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

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

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

{% cut "Пример общего запроса за рекламой" %}

```swift
// Создание загрузчика
adLoader = NativeAdLoader()
adLoader.delegate = self

// Создание конфигурации запроса
let requestConfiguration = NativeAdRequestConfiguration(adUnitID: "<AdUnitID>")

// Передача загрузчику конфигурации запроса
adLoader.loadAd(with: requestConfiguration)

// Реализация методов делегата
// ...

func nativeAdLoader(_ loader: NativeAdLoader, didLoad ad: NativeAd) {
    // Отобразите рекламу
}
```

{% endcut %}

## Показ слайдера нативных объявлений {#ad-view}

После окончания загрузки слайдера все его компоненты необходимо отобразить.

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

### Ручная настройка внешнего оформления слайдера нативной рекламы {#config}

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

Данный способ позволяет самостоятельно сверстать макет слайдера нативной рекламы, определить расположение компонентов рекламы относительно друг друга. В объявлении могут присутствовать как обязательные, так и опциональные для показа компоненты. Полный их перечень можно найти в разделе [Компоненты нативной рекламы](https://ads.yandex.com/helpcenter/ru/dev/ios7/components.md).

{% note tip %}

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

{% endnote %}

Вызовите метод `bindAdToSliderView` и передайте в него контейнер для слайдера объявлений.

Внешнее оформление каждого объявления, входящего в слайдер, настраивается одним из [способов оформления](https://ads.yandex.com/helpcenter/ru/dev/ios7/native.md#ad-view) стандартной нативной рекламы.

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