Межстраничная реклама

Межстраничная реклама (interstitial) — полноэкранный формат рекламы, встраиваемый в контент приложения во время естественных пауз, таких как переход между уровнями игры или окончание выполнения целевого действия.

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

В межстраничной рекламе внимание пользователя полностью сконцентрировано на рекламе, за счет чего стоимость ее показа выше.

Внешний вид

Это руководство покажет, как интегрировать межстраничную рекламу в iOS-приложение. В дополнение к примерам кода и инструкции оно содержит рекомендации по использованию данного формата рекламы, а также ссылки на дополнительные ресурсы.

Пререквизит

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

Имплементация

Основные шаги по интеграции межстраничных объявлений:

  • Создать и настроить загрузчик рекламы InterstitialAdLoader.
  • Загрузить рекламу.
  • Передать дополнительные настройки, если вы работаете через систему Adfox.
  • При необходимости, установить делегат для объекта рекламы и реализовать необходимые методы InterstitialAdDelegate.
  • Показать объявление.

Особенности подключения межстраничной рекламы

  1. Все вызовы методов Yandex Mobile Ads SDK необходимо выполнять из главного потока.

  2. Попытка загрузить новое объявление при получении ошибки загрузки настоятельно не рекомендуется. При использовании completion handler это case .failure, при использовании Swift Concurrency — блок catch. Если вам необходимо повторить загрузку из обработчика ошибки, ограничьте повторные попытки загрузки рекламы, чтобы избежать постоянных неудачных запросов за рекламой в случае ограничений подключения к сети.

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

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

Для загрузки interstitial рекламы необходимо создать экземпляр класса InterstitialAdLoader.

Для загрузки рекламы используйте метод loadAd(with:completion:) с completion handler или Swift Concurrency вариант loadAd(with:).

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

В следующем примере показано как загрузить межстраничное объявление из View Controller:

final class InterstitialViewController: UIViewController {
    private lazy var interstitialAdLoader = InterstitialAdLoader()
    private var interstitialAd: InterstitialAd?

    func loadAd() async {
        let request = AdRequest(adUnitID: "R-M-XXXXX-YY")
        do {
            let ad = try await interstitialAdLoader.loadAd(with: request)
            interstitialAd = ad
            ad.delegate = self
        } catch {
            // Ошибка загрузки
        }
    }
}
final class InterstitialViewController: UIViewController {
    private lazy var interstitialAdLoader = InterstitialAdLoader()
    private var interstitialAd: InterstitialAd?

    func loadAd() {
        let request = AdRequest(adUnitID: "R-M-XXXXX-YY")
        interstitialAdLoader.loadAd(with: request) { [weak self] result in
            switch result {
            case .success(let ad):
                self?.interstitialAd = ad
                ad.delegate = self
            case .failure:
                // Ошибка загрузки
                break
            }
        }
    }
}

Показ объявления

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

После успешной загрузки межстраничного объявления сохраните его и покажите:

final class InterstitialViewController: UIViewController {
    private lazy var interstitialAdLoader = InterstitialAdLoader()
    private var interstitialAd: InterstitialAd?

    func showAd() {
        interstitialAd?.show(from: self)
    }
}

Тестирование интеграции межстраничной рекламы

Использование демоблоков для тестирования рекламы

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

Демонстрационный adUnitId: demo-interstitial-yandex.

Важно

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

Список всех доступных демонстрационных идентификаторов рекламного места доступен в разделе Демоблоки для тестирования.

Проверка корректной интеграции рекламы

Проверить корректность интеграции рекламы можно через нативный инструмент Console.

Чтобы получить возможность просматривать расширенные логи, необходимо вызвать метод enableLogging класса YandexAds.

YandexAds.enableLogging()

Для просмотра логов SDK в инструменте Console установите Subsystem = com.mobile.ads.ads.sdk. Вы можете фильтровать логи по категории и уровню ошибки.

В случае обнаружения проблем при интеграции рекламы вы увидите подробный отчет о проблемах и рекомендации по их устранению.

Дополнительные ресурсы