---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ads.yandex.com/helpcenter/en/dev/android/compose/interstitial.md
  - https://ads.yandex.com/helpcenter/ru/dev/android/compose/interstitial.md
  - https://ads.yandex.com/helpcenter/zh/dev/android/compose/interstitial.md
  - href: ru/dev/android/compose/interstitial.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

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

<!-- source: ru/dev/_includes/interstitial.md -->
Межстраничная реклама (interstitial) — полноэкранный формат рекламы, встраиваемый в контент приложения во время естественных пауз, таких как переход между уровнями игры или окончание выполнения целевого действия.
<!-- endsource: ru/dev/_includes/interstitial.md -->

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

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

{% cut "Внешний вид" %}

<img src="https://yastatic.net/s3/doc-binary/src/docs/support/mobile-ads/ru/monetization/_images/interstitial-ru-ex.png" width="200">


{% endcut %}

Это руководство покажет, как интегрировать межстраничную рекламу в Android‐приложение с помощью расширения Jetpack Compose. В дополнение к примерам кода и инструкции оно содержит рекомендации и ссылки на дополнительные ресурсы.

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

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

<!-- source: ru/dev/_includes/pre-jetpack-compose.md -->
Для использования Compose-расширения добавьте зависимость в `build.gradle.kts`:

```kotlin
dependencies {
    implementation("com.yandex.android:mobileads:8.2.0")
    implementation("com.yandex.android:mobileads-compose:8.2.0")

    // Compose BOM (at least 2024.01.00)
    implementation(platform("androidx.compose:compose-bom:2025.03.00"))
}
```
<!-- endsource: ru/dev/_includes/pre-jetpack-compose.md -->

## Имплементация {#implement}

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

1. Использовать `rememberInterstitialAdLoader()` для создания загрузчика рекламы.
2. Загрузить рекламу через suspend-функцию `loadAd()` с обработкой результата `InterstitialAdLoadResult`.
3. Зарегистрировать слушатель методов обратного вызова событий рекламного объявления `InterstitialAdEventListener`.
4. Показать объявление `InterstitialAd`.

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

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

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

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

4. Когда composable покидает дерево, `cancelLoading()` вызывается автоматически. Явно освобождать ресурсы загрузчика не нужно.

## Загрузка рекламы {#load}

Для загрузки межстраничной рекламы используйте `rememberInterstitialAdLoader()`. Загрузка выполняется через suspend-функцию `loadAd()`, которая возвращает `InterstitialAdLoadResult`.

Для загрузки рекламного объявления потребуется идентификатор рекламного места, полученный в интерфейсе Рекламной сети Яндекса (adUnitId).

Расширить параметры запроса за рекламой можно через `AdRequest.Builder()`, передав в запросе данные об интересах пользователя, контекстные данные страницы, локацию или другие дополнительные данные. Дополнительные контекстные данные на запросе могут значительно улучшить качество рекламы. Подробнее читайте в разделе [Таргетирование рекламы](https://ads.yandex.com/helpcenter/ru/dev/android/target.md).

### Пример загрузки межстраничного объявления

```kotlin
@Composable
fun MyScreen(activity: Activity) {
    var interstitialAd by remember { mutableStateOf<InterstitialAd?>(null) }

    val loader = rememberInterstitialAdLoader()

    LaunchedEffect(Unit) {
        val adRequest = AdRequest.Builder("your-ad-unit-id").build()
        when (val result = loader.loadAd(adRequest)) {
            is InterstitialAdLoadResult.Success -> interstitialAd = result.ad
            is InterstitialAdLoadResult.Failure -> {
                // Ad failed to load with AdRequestError.
                // Attempting to load a new ad from here is strongly discouraged.
            }
        }
    }
}
```

<!-- source: ru/dev/_includes/ad-attributes.md -->
Если вы размещаете рекламу через систему Adfox, после загрузки баннера данные `campaignId`, `bannerId` и `placeId` доступны из объектов `interstitialAdLoader` через свойство `adAttributes` типа `AdAttributes`.
<!-- endsource: ru/dev/_includes/ad-attributes.md -->

## Показ объявления {#ad-view}

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

Перед показом объявления установите слушатель методов обратного вызова рекламного объявления `InterstitialAdEventListener`.

```kotlin
@Composable
fun MyScreen(activity: Activity) {
    var interstitialAd by remember { mutableStateOf<InterstitialAd?>(null) }

    val loader = rememberInterstitialAdLoader()

    LaunchedEffect(Unit) {
        val adRequest = AdRequest.Builder("your-ad-unit-id").build()
        when (val result = loader.loadAd(adRequest)) {
            is InterstitialAdLoadResult.Success -> interstitialAd = result.ad
            is InterstitialAdLoadResult.Failure -> {
                // Ad failed to load with AdRequestError.
            }
        }
    }

    LaunchedEffect(interstitialAd) {
        interstitialAd?.apply {
            setAdEventListener(object : InterstitialAdEventListener {
                override fun onAdShown() {
                    // Called when ad is shown.
                }
                override fun onAdFailedToShow(adError: AdError) {
                    // Called when an InterstitialAd failed to show.
                    loadInterstitialAd()
                }
                override fun onAdDismissed() {
                    // Called when ad is dismissed.
                    // Now you can preload the next interstitial ad.
                    loadInterstitialAd()
                }
                override fun onAdClicked() {
                    // Called when a click is recorded for an ad.
                }
                override fun onAdImpression(impressionData: ImpressionData?) {
                    // Called when an impression is recorded for an ad.
                }
            })
            show(activity)
        }
    }
}
```

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

<!-- source: ru/dev/_includes/test-android-interstitial.md -->
### Использование демоблоков для тестирования рекламы {#demo-blocks}

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

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

{% note warning %}

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

{% endnote %}

Список всех доступных демонстрационных идентификаторов рекламного места доступен в разделе [Демоблоки для тестирования](https://ads.yandex.com/helpcenter/ru/dev/android/demo-blocks.md).

### Проверка корректной интеграции рекламы {#test-int}

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

Для просмотра отчета, выполните поиск по ключевому слову YandexAds в инструменте отладки Android-приложений [Logcat](https://developer.android.com/studio/command-line/logcat).
```bash
adb logcat -v brief '*:S YandexAds'
```

В случае успешной интеграции вы увидите следующее сообщение:
```bash
adb logcat -v brief '*:S YandexAds'
mobileads$ adb logcat -v brief '*:S YandexAds'
I/YandexAds(13719): [Integration] Ad type interstitial was integrated successfully
```

В случае обнаружения проблем при интеграции межстраничной рекламы вы получите подробный отчет о проблемах и рекомендации по их устранению.
<!-- endsource: ru/dev/_includes/test-android-interstitial.md -->

## Дополнительные ресурсы {#resources}

* <!-- source: ru/dev/_includes/github-pubdev-links.md -->
  Ссылка на [github](https://github.com/yandexmobile/yandex-ads-sdk-android).
  <!-- endsource: ru/dev/_includes/github-pubdev-links.md -->
