Оптимизация загрузки пейвола в Capacitor SDK

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

Предполагается, что adapty.activate() и adapty.identify() уже выполнены. См. Порядок вызовов в Capacitor SDK.

Правила и подводные камни

Делайте такНе делайте такПочему
Загружайте плейсмент непосредственно перед показом.Предзагружайте все плейсменты одновременно при запуске.Массовая предзагрузка блокирует главный поток и вызывает чёрный экран во время запроса.
Вызывайте getPaywall после того, как атрибуция успеет разрешиться — например, через 1–2 секунды после activate или после срабатывания слушателя onLatestProfileLoad.Вызывайте getPaywall при запуске приложения в App.tsx.Атрибуция ещё не получена. Пейвол разрешается для аудитории по умолчанию и незаметно обходит сегменты и персонализацию ASA.
Задайте loadTimeoutMs и настройте резервный пейвол для каждого плейсмента.Ждите ответа getPaywall без ограничения времени.Без таймаута пользователи с плохим соединением видят пустой экран до тех пор, пока сеть не ответит — или закрывают приложение.
Подробнее о параметрах fetchPolicy и loadTimeoutMs см. в разделе Получение пейволов и продуктов, а о выборе подходящего плейсмента — в разделе Плейсменты.

Настройка для нестабильного соединения

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

  • Устанавливайте fetchPolicy: 'return_cache_data_else_load' для каждого запроса, кроме самого первого.
  • Настройте резервный пейвол для каждого плейсмента в дашборде Adapty.
  • Задайте loadTimeoutMs в диапазоне 3000–5000 миллисекунд и используйте резервный пейвол при срабатывании таймаута.
  • Не ставьте отображение пейвола в зависимость от adapty.getProfile(). Вызывайте getPaywall независимо, чтобы медленная загрузка профиля не блокировала интерфейс.