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

Внимание.

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

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

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

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

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

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

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

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

    С помощью класса YMAMutableNativeAdRequestConfiguration передайте код, полученный в интерфейсе Adfox (подробнее смотрите в помощи по Adfox).
    // Код из интерфейса Adfox для работы с прямыми кампаниями.
    var parameters = [String: String]()
    parameters["adf_ownerid"] = "<example>"
    parameters["adf_p1"] = "<example>"
    parameters["adf_p2"] = "<example>"
    parameters["adf_pfc"] = "<example>"
    parameters["adf_pfb"] = "<example>"
    parameters["adf_pt"] = "<example>"
    parameters["adf_pd"] = "<example>"
    parameters["adf_pw"] = "<example>"
    parameters["adf_pv"] = "<example>"
    parameters["adf_prr"] = "<example>"
    parameters["adf_pdw"] = "<example>"
    parameters["adf_pdh"] = "<example>"
    let requestConfiguration = YMAMutableNativeAdRequestConfiguration(adUnitID: "R-M-XXXXXX")
    requestConfiguration.age = age
    requestConfiguration.contextQuery = contextQuery
    requestConfiguration.contextTags = contextTags
    requestConfiguration.gender = gender
    requestConfiguration.location = location
    requestConfiguration.parameters = parameters
    
    adLoader.loadAd(with: requestConfiguration)
  6. Если реклама загрузилась, будет вызван метод:

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

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

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

  8. Опционально, с помощью свойства (nonatomic, copy, readonly) NSString *info протокола YMANativeAd можно получить строку, которая была задана в интерфейсе Adfox, в поле Дополнительный текст.

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

Чтобы посмотреть, как реклама будет отображаться в приложении, используйте демонстрационный AdUnitID:
  • для рекламы типа App Install — demo-native-app-yandex
  • для рекламы типа Content — demo-native-content-yandex
  • для рекламы типа Image — R-M-187883-1. Также необходимо передать список параметров:
    // Код из интерфейса Adfox для работы с прямыми кампаниями.
    parameters["adf_ownerid"] = "168627"
    parameters["adf_p1"] = "bvyhu"
    parameters["adf_p2"] = "fksh"
    parameters["adf_pt"] = "b"

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

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

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

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

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

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

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

    С помощью класса YMAMutableNativeAdRequestConfiguration передайте код, полученный в интерфейсе Adfox (подробнее смотрите в помощи по Adfox).
    // Код из интерфейса Adfox для работы с прямыми кампаниями.
    var parameters = [String: String]()
    parameters["adf_ownerid"] = "<example>"
    parameters["adf_p1"] = "<example>"
    parameters["adf_p2"] = "<example>"
    parameters["adf_pfc"] = "<example>"
    parameters["adf_pfb"] = "<example>"
    parameters["adf_pt"] = "<example>"
    parameters["adf_pd"] = "<example>"
    parameters["adf_pw"] = "<example>"
    parameters["adf_pv"] = "<example>"
    parameters["adf_prr"] = "<example>"
    parameters["adf_pdw"] = "<example>"
    parameters["adf_pdh"] = "<example>"
    let requestConfiguration = YMAMutableNativeAdRequestConfiguration(adUnitID: "R-M-XXXXXX")
    requestConfiguration.age = age
    requestConfiguration.contextQuery = contextQuery
    requestConfiguration.contextTags = contextTags
    requestConfiguration.gender = gender
    requestConfiguration.location = location
    requestConfiguration.parameters = parameters
    
    adLoader.loadAds(with: requestConfiguration, adsCount: adsCount)
Примечание.

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")
}