Оптимизация загрузки пейвола в Android SDK
Надёжная загрузка пейвола на Android решает три задачи: быстрый рендеринг, возврат пейвола с таргетингом по аудитории и корректный фолбэк при медленной сети. Правила ниже описывают тайминг, кэширование и паттерны резервного отображения.
Предполагается, что Adapty.activate() и Adapty.identify() уже выполнены. См. Порядок вызовов в Android SDK.
Правила и подводные камни
| Делать | Не делать | Почему |
|---|---|---|
| Загружайте только тот плейсмент, который собираетесь показать. | Предзагружать все плейсменты одновременно при запуске. | Массовая предзагрузка блокирует главный поток и вызывает чёрный экран во время пакетного запроса. |
Вызывайте getPaywall после того, как атрибуция успела разрешиться — например, через 1–2 секунды после activate или после срабатывания setOnProfileUpdatedListener. | Вызывать getPaywall в Application.onCreate(). | Атрибуция ещё не применилась. Пейвол разрешается по аудитории по умолчанию и молча обходит сегменты и персонализацию ASA. |
Задайте loadTimeout и настройте резервный пейвол для каждого плейсмента. | Ждать ответа getPaywall бесконечно. | Без таймаута пользователи с плохим соединением видят пустой экран до тех пор, пока сеть не ответит — или просто закрывают приложение. |
Подробнее о параметрах fetchPolicy и loadTimeout — в разделе Получение пейволов и продуктов, о выборе подходящего плейсмента — в разделе Плейсменты. |
Настройка для слабого интернета
Для рынков со стабильно слабым интернетом (сельские районы, транспорт, регионы с плохой маршрутизацией):
- Устанавливайте
fetchPolicyвAdaptyPlacementFetchPolicy.ReturnCacheDataElseLoadпри каждом запросе, кроме самого первого. - Настройте резервный пейвол для каждого плейсмента в дашборде Adapty.
- Установите
loadTimeoutв 3–5 секунд и принимайте резервный пейвол при срабатывании таймаута. - Не блокируйте отображение пейвола на
getProfile. ВызывайтеgetPaywallнезависимо, чтобы медленная загрузка профиля не тормозила интерфейс.