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

Надёжная загрузка пейвола на iOS решает три задачи: быстрый рендеринг, возврат пейвола с нужной аудиторией и корректный фолбэк при медленной сети. Правила ниже охватывают тайминг, кэширование и резервные сценарии.

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

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

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