Оптимизация загрузки пейволов в Unity SDK
Надёжная загрузка пейвола в Unity решает три задачи: быстрый рендеринг, возврат пейвола, нацеленного на нужную аудиторию, и корректная работа в резервном режиме при медленной сети. Правила ниже охватывают тайминг, кеширование и резервные паттерны для достижения этих целей.
Правила предполагают, что Adapty.Activate() и Adapty.Identify() уже выполнены. См. Порядок вызовов в Unity SDK.
Правила и подводные камни
| Делайте так | Не делайте так | Почему |
|---|---|---|
| Загружайте тот плейсмент, который собираетесь показать. | Не загружайте все плейсменты одновременно при запуске. | Массовая предзагрузка блокирует главный поток и вызывает чёрный экран во время пика нагрузки. |
Вызывайте GetPaywall после того, как атрибуция успела разрешиться — например, через 1–2 секунды после Activate или после срабатывания OnLoadLatestProfile. | Не вызывайте GetPaywall в Awake(). | Атрибуция ещё не получена. Пейвол разрешается относительно аудитории по умолчанию и незаметно игнорирует сегменты и персонализацию ASA. |
Задайте loadTimeout и настройте резервный пейвол для каждого плейсмента. | Не ждите ответа GetPaywall бесконечно. | Без таймаута пользователи с плохим соединением видят пустой экран, пока сеть не ответит — или просто закрывают приложение. |
Подробнее о параметрах fetchPolicy и loadTimeout см. в Получение пейволов и продуктов, а о выборе нужного плейсмента — в Плейсменты. |
Настройка для нестабильного соединения
Для рынков с постоянно плохим качеством связи (сельская местность, транспорт, регионы с проблемной маршрутизацией):
- Устанавливайте
fetchPolicyвAdaptyPlacementFetchPolicy.ReturnCacheDataElseLoadпри каждом запросе, кроме самого первого. - Настройте резервный пейвол для каждого плейсмента в дашборде Adapty.
- Задайте
loadTimeoutв диапазоне 3–5 секунд и принимайте резервный пейвол при срабатывании таймаута. - Не блокируйте отображение пейвола ожиданием
GetProfile. ВызывайтеGetPaywallнезависимо, чтобы медленная загрузка профиля не задерживала интерфейс.