---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ads.yandex.com/helpcenter/en/dev/ios/slider.md
  - https://ads.yandex.com/helpcenter/ru/dev/ios/slider.md
  - https://ads.yandex.com/helpcenter/zh/dev/ios/slider.md
  - href: ru/dev/ios/slider.md
    type: text/markdown
    title: Markdown version
  - href: llms.txt
    type: text/markdown
    title: llms.txt
---
> **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/_includes/native-ads.md -->
Нативная реклама — реклама, внешний вид которой может определяться на стороне приложения. Данная особенность позволяет изменять визуальный стиль объявлений и места их размещения с учетом особенностей дизайна приложения.
<!-- endsource: ru/dev/_includes/native-ads.md -->

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

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

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

<!-- source: ru/dev/_includes/pre-ios.md -->
1. Выполните шаги по интеграции SDK, описанные в [Быстром старте](https://ads.yandex.com/helpcenter/ru/dev/ios/quick-start.md).
2. Заранее [проинициализируйте](https://ads.yandex.com/helpcenter/ru/dev/ios/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/_includes/pre-ios.md -->

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

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

2. Создайте запрос `AdRequest` с идентификатором рекламного блока и `NativeAdOptions` для дополнительных параметров.

3. Вызовите метод `loadAd(with:options:completion:)` для загрузки рекламы.

4. Если реклама загрузилась успешно — используйте объект `SliderAd` для отображения.

5. Если при загрузке произошла ошибка — обработайте ее.

{% list tabs %}

- Swift Concurrency

  ```swift
  let adLoader = SliderAdLoader()
  let request = AdRequest(adUnitID: "<AdUnitID>")
  let options = NativeAdOptions()

  do {
      let sliderAd = try await adLoader.loadAd(with: request, options: options)
      // Отобразите рекламу
  } catch {
      // Ошибка загрузки
  }
  ```

- Completion handler

  ```swift
  let adLoader = SliderAdLoader()
  let request = AdRequest(adUnitID: "<AdUnitID>")
  let options = NativeAdOptions()

  adLoader.loadAd(with: request, options: options) { [weak self] result in
      switch result {
      case .success(let sliderAd):
          // Отобразите рекламу
          break
      case .failure:
          break
      }
  }
  ```

{% endlist %}

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

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

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

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

{% note tip %}

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

{% endnote %}

Вызовите метод `bind(with:)` на объекте `SliderAd`, передав в него контейнер для слайдера объявлений.

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

```swift
adLoader.loadAd(with: request, options: options) { [weak self] result in
    guard case .success(let sliderAd) = result else { return }

    sliderAd.delegate = self

    // Создаем контейнер для слайдера; замените NativeAdView своим наследником этого класса
    let sliderAdView = NativeAdView()

    do {
        try sliderAd.bind(with: sliderAdView)
    } catch {
        // Проверьте сообщение об ошибке и исправьте проблему
        return
    }

    for subAd in sliderAd.ads {
        subAd.delegate = self

        // Создаем рекламное view для каждого объявления; замените NativeAdView своим наследником
        let subAdView = NativeAdView()

        do {
            try subAd.bind(with: subAdView)
        } catch {
            return
        }

        // Добавляем объявление в контейнер и располагаем его
        sliderAdView.addSubview(subAdView)
    }
}
```
