Резервные флоу
Чтобы обеспечить бесперебойный пользовательский опыт, важно настроить резервные версии ваших флоу. Когда приложение запрашивает флоу, SDK Adapty обращается к нашим серверам для получения его конфигурации. Если устройство не может подключиться к Adapty (проблемы с сетью, недоступность сервера), SDK переходит к локальным данным:
- Если пользователь уже видел этот флоу, SDK отдаёт кешированную копию.
- Если кеша нет, SDK загружает резервный файл конфигурации, встроенный в приложение.
Adapty автоматически генерирует эти резервные файлы. Резервный бандл флоу общий с пейволами — один JSON-файл на платформу содержит резервные варианты и для флоу, и для пейволов. SDK читает нужный раздел в зависимости от запроса.
Резервные флоу входят в состав Adapty SDK 4.0+. Если в диалоге загрузки выбрать более раннюю версию SDK, файл будет содержать только варианты пейволов и онбордингов — без флоу. Убедитесь, что ваше приложение использует версию SDK с поддержкой флоу, прежде чем полагаться на резервный флоу.
Перед началом работы
- Создайте флоу во Flow Builder.
- Создайте плейсмент для флоу.
Скачайте резервный файл
- Откройте страницу Placements.
- Нажмите кнопку Fallbacks в правом верхнем углу.
- Выберите нужную платформу из выпадающего списка.
- Выберите версию SDK, которая соответствует той, что поставляется с вашим приложением. Выберите Adapty SDK v4.0.0 and higher (или более позднюю версию), чтобы получить бандл, включающий флоу.
Браузер скачает JSON-файл для каждой платформы — например, ios_4_0_0_fallback.json.
Пример записи резервного флоу (нажмите, чтобы раскрыть)
"PLACEMENT_ID": {
"data": [
{
"developer_id": "PLACEMENT_ID",
"variation_id": "cb1c0ef8-aecd-4a53-a6f3-b98266e66884",
"flow_id": "daf25858-3fa2-4981-8500-9c8a30e5b7e6",
"flow_name": "FLOW_NAME",
"flow_version_id": "FLOW_VERSION_ID",
"placement_audience_version_id": "a9eb3ab8-3178-477d-84d4-ef9d3978e48b",
"audience_name": "All Users",
"ab_test_name": "",
"cross_placement_info": null,
"weight": 100,
"variations": [
{
"variation_id": "cb1c0ef8-aecd-4a53-a6f3-b98266e66884",
"paywall_id": "PAYWALL_ID",
"paywall_name": "PAYWALL_NAME",
"ab_test_name": "",
"products": [],
"revision": 1,
"custom_payload": null,
"weight": 100
}
],
"remote_configs": []
}
],
"meta": {
"placement": {
"developer_id": "PLACEMENT_ID",
"is_tracking_purchases": true,
"audience_name": "All Users",
"placement_audience_version_id": "a9eb3ab8-3178-477d-84d4-ef9d3978e48b",
"revision": 0,
"ab_test_name": ""
}
}
}Точная структура может меняться между версиями SDK. Всегда используйте файл, сгенерированный Adapty для вашей версии SDK, а не создавайте его вручную.
После скачивания
Добавьте файл в код приложения, а затем следуйте гайду по настройке для вашей платформы. Те же API, которые загружают резервные пейволы, также загружают резервные флоу, как только ваше приложение перейдёт на версию SDK с поддержкой флоу:
Ограничения
Резервные флоу жёстко закодированы и хранятся локально, поэтому они не обладают всеми динамическими возможностями живых флоу:
- Один вариант на плейсмент. Если у плейсмента несколько флоу (разные аудитории, варианты A/B-теста), резервный файл использует вариант с наибольшим весом или наиболее широкой аудиторией.
- Без A/B-тестирования. A/B-тест живого флоу разрешается на сервере; резервный вариант всегда обслуживает один выбранный вариант.
- Без удалённых обновлений. Обновление резервного файла требует нового релиза приложения. Изменения, которые вы обычно вносите через Remote Config, вносите через живой флоу.
- Только локаль по умолчанию. Резервный файл использует локаль
en; локализованные варианты не включаются в бандл.