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

Чтобы обеспечить бесперебойный пользовательский опыт, важно настроить резервные версии ваших флоу. Когда приложение запрашивает флоу, 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, вносите через живой флоу.