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

# Адаптивный sticky-баннер

<!-- source: ru/dev/_includes/adaptive-sticky-banner.md -->
Адаптивный sticky-баннер — небольшое, автоматически обновляемое рекламное объявление. Оно располагается в нижней или верхней части экрана приложения. Баннер не перекрывает основной контент и часто используется в приложениях-играх.
<!-- endsource: ru/dev/_includes/adaptive-sticky-banner.md -->

<!-- source: ru/dev/_includes/adaptive-sticky-banner.md -->
Адаптивный sticky-баннер обеспечивает максимальную эффективность за счет оптимизации размера рекламы для каждого устройства. Данный тип рекламы позволяет разработчикам указывать максимально допустимую ширину объявления, при этом оптимальный размер рекламы определяется автоматически.
<!-- endsource: ru/dev/_includes/adaptive-sticky-banner.md -->

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

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

{% endcut %}

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

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

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

## Имплементация {#implement}
Основные шаги по интеграции адаптивного sticky-баннера:

* Добавить composable `Banner` и передать `BannerAdSize.Sticky` с шириной контейнера.
* Подписаться на события жизненного цикла через `BannerEvents`.

## Особенности подключения адаптивного sticky-баннера {#features}

1. Создать состояние через `rememberBannerAdState()` с размером `BannerAdSize.Sticky` (ширина контейнера в `dp`). При необходимости передать `BannerEvents`.
2. Запустить загрузку вызовом `loadAd(AdRequest)` — обычно из `LaunchedEffect`, когда готовы идентификатор слота и ширина.
3. Передать состояние в `Banner` через параметр `state`.

Пример размещения на экране:

```kotlin
@Composable
fun StickyBannerSlot(adRequest: AdRequest, width: Dp) {
    val bannerState = rememberBannerAdState(
        adSize = BannerAdSize.Sticky(width),
        events = BannerEvents(
            onAdLoaded = { adInfo -> /* ad loaded */ },
            onAdFailedToLoad = { error -> /* handle error */  },
            onAdClicked = { /* ad clicked */ },
            onImpression = { data -> /* impression tracked */ },
        ),
    )

    LaunchedEffect(adRequest) {
        bannerState.loadAd(adRequest)
    }

    Banner(
        state = bannerState,
        modifier = Modifier.fillMaxWidth(),
    )
}
```

Для загрузки нужен `adUnitId`. На этапе интеграции можно использовать `demo-banner-yandex`; перед релизом замените на боевой идентификатор. Параметры запроса расширяйте через `AdRequest` (например `targeting`, `parameters`, `preferredTheme`) — дополнительный контекст улучшает подбор рекламы. Подробнее — в разделе [Таргетирование рекламы](https://ads.yandex.com/helpcenter/ru/dev/compose-multiplatform/target.md).

Ширину задавайте по доступной области: рекомендуется полная ширина родителя или экрана с учетом отступов и safe area. Высота объявления подбирается автоматически.

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

## Особенности подключения адаптивного sticky-баннера {#features}

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

2. Адаптивные sticky-баннеры лучше всего работают на полной доступной ширине. Чаще всего это ширина экрана устройства. Учитывайте отступы в приложении и безопасную зону экрана.

3. Для одного и того же устройства размер sticky-баннера остается стабильным.

4. Высота адаптивного sticky-баннера не менее 50 dp и не превышает 15% высоты экрана.

## Тестирование интеграции адаптивного sticky-баннера {#test}

{% list tabs %}

- Android

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

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

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

  {% note warning %}

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

  {% endnote %}

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

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

  Проверить корректность интеграции адаптивного sticky-баннера можно через встроенный в 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 banner was integrated successfully
  ```

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

- iOS

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

  <!-- source: ru/dev/_includes/test-ios-inline-banner.md -->
  Для проверки корректной интеграции рекламы и тестирования приложения используйте тестовую рекламу. Для гарантированного возврата тестовых объявлений на каждый запрос за рекламой вы можете использовать специальный демонстрационный идентификатор рекламного места.

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

  {% note warning %}

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

  {% endnote %}

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

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

  <!-- source: ru/dev/_includes/test-integration-ios.md -->
  Проверить корректность интеграции рекламы можно через нативный инструмент Console.

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

  ```swift
  YandexAds.enableLogging()
  ```

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

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

  <img src= "https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/common/integration-ios-2.png">
  <!-- endsource: ru/dev/_includes/test-integration-ios.md -->

{% endlist %}

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

* <!-- source: ru/dev/_includes/github-pubdev-links.md -->
  Link to [GitHub](https://github.com/yandexmobile/yandex-ads-multiplatform).
  <!-- endsource: ru/dev/_includes/github-pubdev-links.md -->
