Загрузка рекламы

Внимание.

Это архивная версия документации. Актуальная документация по всем платформам находится здесь.

  1. Загрузка рекламных объявлений
  2. Загрузка нескольких рекламных объявлений
  3. Способы загрузки изображений

Загрузка рекламных объявлений

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

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

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

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

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

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

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

    func nativeAdLoader(_ loader: YMANativeAdLoader, didFailLoadingWithError error: Error)

    Подробно о возможных ошибках см. раздел YMANativeErrorCode.

Общий запрос за рекламой
// Создание загрузчика
adLoader = YMANativeAdLoader()
adLoader.delegate = self

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

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

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

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

Примеры с демонстрационным AdUnitID

Чтобы посмотреть, как реклама будет отображаться в приложении, используйте демонстрационный AdUnitID:
  • для рекламы типа App Install — demo-native-app-yandex;
  • для рекламы типа Content — demo-native-content-yandex;
  • для рекламы с видео — demo-native-video-yandex.

Загрузка нескольких рекламных объявлений

Yandex Mobile Ads SDK предоставляет возможность загрузки нескольких рекламных объявлений одним запросом (до девяти объявлений).

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

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

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

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

  5. Отправьте загрузчику конфигурацию запроса и количество запрашиваемых объявлений (параметр adsCount).

    adLoader.loadAds(with: requestConfiguration, adsCount: adsCount)
// Создание конфигурации запроса
let requestConfiguration = YMAMutableNativeAdRequestConfiguration(adUnitID: AdUnitID)

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

// Передача загрузчику конфигурации запроса и количество запрашиваемых рекламных объявлений
adLoader.loadAds(with: requestConfiguration, adsCount: adsCount)

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

func nativeBulkAdLoader(_ nativeBulkAdLoader: YMANativeBulkAdLoader, didLoad ads: [YMANativeAd]) {
    ...
    // Отдельная работа с каждым объектом id<YMANativeAd>. Подробности в разделе "Настройка внешнего оформления рекламы".
}
Примечание.

Yandex Mobile Ads SDK не гарантирует, что будет загружено запрошенное количество объявлений. Полученный массив будет содержать от 0 до adsCount объектов NativeAd. Все полученные объекты рекламы можно показывать отдельно друг от друга, используя описанные выше способы внешнего оформления нативных объявлений.

Способы загрузки изображений

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

Передайте YES в качестве значения свойства shouldLoadImagesAutomatically при создании конфигурации:

let requestConfiguration = YMAMutableNativeAdRequestConfiguration(adUnitID: AdUnitID)
requestConfiguration.shouldLoadImagesAutomatically = true

В полученном объявлении будут присутствовать готовые изображения. Они хранятся в памяти приложения до уничтожения объявления.

Уведомления о процессе загрузки изображений

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

Чтобы включить уведомления о завершении загрузки изображений, вызовите метод -addImageLoadingObserver:

ad?.add(self)

...
func nativeAdDidFinishLoadingImages(_ ad: YMANativeAd) {
    print("Finished loading images")
}