Резервные флоу

Чтобы обеспечить бесперебойный пользовательский опыт, важно настроить резервные версии ваших флоу. Когда приложение запрашивает флоу, SDK Adapty обращается к нашим серверам для получения его конфигурации. Если устройство не может подключиться к Adapty (проблемы с сетью, недоступность сервера), SDK переходит к локальным данным:

  • Если пользователь уже видел этот флоу, SDK отдаёт кешированную копию.
  • Если кеша нет, SDK загружает резервный файл конфигурации, встроенный в приложение.

Adapty автоматически генерирует эти резервные файлы. Резервный бандл флоу общий с пейволами — один JSON-файл на платформу содержит резервные варианты и для флоу, и для пейволов. SDK читает нужный раздел в зависимости от запроса.

Резервные флоу входят в состав Adapty SDK 4.0+. Если в диалоге загрузки выбрать более раннюю версию SDK, файл будет содержать только варианты пейволов и онбордингов — без флоу. Убедитесь, что ваше приложение использует версию SDK с поддержкой флоу, прежде чем полагаться на резервный флоу.

Перед началом работы

  1. Создайте флоу во Flow Builder.
  2. Создайте плейсмент для флоу.

Скачайте резервный файл

  1. Откройте страницу Placements.
  2. Нажмите кнопку Fallbacks в правом верхнем углу.
  3. Выберите нужную платформу из выпадающего списка.
  4. Выберите версию 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; локализованные варианты не включаются в бандл.