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

Чтобы обеспечить бесперебойный пользовательский опыт, важно настроить резервные версии ваших флоу.

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

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

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

Important

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

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

  1. Создайте флоу в Flow & Paywall 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, вносите через живой флоу.