---
title: "Оптимизация загрузки пейвола в Kotlin Multiplatform SDK"
description: "Надёжная загрузка пейволов Adapty: тайминг, кэширование и резервные паттерны для Kotlin Multiplatform."
---

Надёжная загрузка пейвола в Kotlin Multiplatform решает три задачи: быстрый рендеринг, отображение пейвола с учётом аудитории и корректный откат при медленной сети. Правила ниже охватывают тайминг, кэширование и резервные паттерны для достижения этой цели.
:::tip
Предполагается, что `Adapty.activate()` и `Adapty.identify()` уже выполнились. См. [Порядок вызовов в Kotlin Multiplatform SDK](kmp-sdk-call-order).
:::
## Правила и подводные камни \{#rules-and-pitfalls\}
| Делайте так | Не делайте так | Почему |
|---|---|---|
| Загружайте только тот плейсмент, который собираетесь показать.                                                                                                                | Не загружайте все плейсменты одновременно при запуске.        | Массовая загрузка блокирует главный поток и вызывает чёрный экран во время всплеска запросов.                                  |
| Вызывайте `getPaywall` после того, как атрибуция успела разрешиться — например, через 1–2 секунды после `activate` или после срабатывания `setOnProfileUpdatedListener`. | Не вызывайте `getPaywall` при запуске приложения.                       | Атрибуция ещё не пришла. Пейвол разрешается для аудитории по умолчанию и незаметно обходит сегменты и персонализацию ASA. |
| Задайте `loadTimeout` и настройте [резервный пейвол](fallback-paywalls) для каждого плейсмента.                                                           | Не ждите ответа `getPaywall` бесконечно.                     | Без таймаута пользователи с плохим соединением видят пустой экран до тех пор, пока сеть не ответит — или закрывают приложение.     |
Смотрите [Получение пейволов и продуктов](fetch-paywalls-and-products-kmp) для справки по параметрам `fetchPolicy` и `loadTimeout`, а также [Плейсменты](placements) для выбора подходящего плейсмента.
## Настройка для слабого соединения \{#tune-for-poor-connectivity\}

Для рынков с постоянно слабым интернетом (сельская местность, транспорт, регионы с проблемами маршрутизации):

- Устанавливайте `fetchPolicy = AdaptyPaywallFetchPolicy.ReturnCacheDataElseLoad` при каждом запросе, кроме самого первого.
- Настройте [резервный пейвол](fallback-paywalls) для каждого плейсмента в дашборде Adapty.
- Задайте `loadTimeout` в 3–5 секунд и используйте резервный пейвол, когда таймаут срабатывает.
- Не блокируйте отображение пейвола вызовом `Adapty.getProfile()`. Вызывайте `getPaywall` независимо, чтобы медленная загрузка профиля не тормозила интерфейс.