Получение онбордингов во Flutter SDK

После того как вы разработали визуальную часть онбординга с помощью конструктора в дашборде Adapty, вы можете отобразить его в своём Flutter-приложении. Первый шаг — получить онбординг, связанный с плейсментом, и его конфигурацию отображения, как описано ниже.

Перед началом убедитесь, что:

  1. Вы установили Adapty Flutter SDK версии 3.8.0 или выше.
  2. Вы создали онбординг.
  3. Вы добавили онбординг в плейсмент.

Получение онбординга

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

Для наилучшей производительности загружайте конфигурацию онбординга заблаговременно, чтобы изображения успели скачаться до показа пользователям.

Чтобы получить онбординг, используйте метод getOnboarding:

try {
  final onboarding = await Adapty().getOnboarding(placementId: "YOUR_PLACEMENT_ID");
} on AdaptyError catch (e) {
    //handle error
} catch (e) { 
    //handle error
}

Затем вызовите метод createOnboardingView, чтобы получить отображение, которое будет показываться пользователю.

Результат метода createOnboardingView можно использовать только один раз. Если вам нужно использовать его снова, заново вызовите метод createOnboardingView. Повторный вызов без пересоздания может привести к ошибке AdaptyUIError.viewAlreadyPresented.


try {
    final onboardingView = await Adapty().createOnboardingView(onboarding: onboarding);
} on AdaptyError catch (e) { 
    //handle error
} catch (e) { 
    //handle error
}

Параметры:

ПараметрНаличиеОписание
placementIdобязательныйИдентификатор нужного плейсмента. Это значение вы указывали при создании плейсмента в дашборде Adapty.
locale

необязательный

по умолчанию: en

Идентификатор локализации онбординга. Ожидается языковой код, состоящий из одного или двух подтегов, разделённых символом минус (-). Первый подтег — язык, второй — регион.

Пример: en означает английский, pt-br — бразильский португальский.

fetchPolicyпо умолчанию: .reloadRevalidatingCacheData

По умолчанию SDK пытается загрузить данные с сервера и возвращает кешированные данные в случае ошибки. Мы рекомендуем этот вариант, так как он гарантирует, что пользователи всегда получают самые актуальные данные.

Однако если ваши пользователи работают при нестабильном интернете, рассмотрите использование .returnCacheDataElseLoad — оно вернёт кешированные данные, если они есть. В таком случае пользователи могут получить не самые свежие данные, зато загрузка будет быстрее независимо от качества соединения. Кеш обновляется регулярно, поэтому его безопасно использовать в течение сессии, чтобы избежать лишних сетевых запросов.

Обратите внимание: кеш сохраняется при перезапуске приложения и очищается только при переустановке или вручную.

Adapty SDK хранит онбординги локально на двух уровнях: регулярно обновляемый кеш, описанный выше, и резервные онбординги. Также используется CDN для ускорения загрузки и отдельный резервный сервер на случай недоступности CDN. Эта система обеспечивает получение актуальной версии онбордингов даже при нестабильном интернет-соединении.

loadTimeoutпо умолчанию: 5 сек

Это значение ограничивает таймаут метода. Если таймаут истекает, возвращаются кешированные данные или локальный резервный вариант.

Обратите внимание: в редких случаях метод может завершиться с небольшой задержкой сверх указанного в loadTimeout, так как операция может включать несколько запросов.

Параметры ответа:

ПараметрОписание
OnboardingОбъект AdaptyOnboarding с идентификатором и конфигурацией онбординга, Remote Config и рядом других свойств.

Ускорение загрузки онбординга с помощью онбординга для аудитории по умолчанию

Как правило, онбординги загружаются практически мгновенно, так что беспокоиться об ускорении этого процесса обычно не нужно. Однако если у вас много аудиторий и онбордингов, а пользователи работают при слабом интернете, загрузка онбординга может занять больше времени, чем хотелось бы. В таких ситуациях имеет смысл показывать онбординг по умолчанию, чтобы обеспечить плавный пользовательский опыт вместо отсутствия онбординга вовсе.

Для этого можно использовать метод getOnboardingForDefaultAudience, который загружает онбординг указанного плейсмента для аудитории All Users. Однако важно понимать, что рекомендуемый подход — загружать онбординг методом getOnboarding, как описано в разделе Получение онбординга выше.

Рассмотрите использование getOnboarding вместо getOnboardingForDefaultAudience, поскольку второй метод имеет существенные ограничения:

  • Проблемы совместимости: может создавать сложности при поддержке нескольких версий приложения — потребуется либо обратно совместимый дизайн, либо придётся мириться с некорректным отображением в старых версиях.
  • Отсутствие персонализации: показывает контент только для аудитории «Все пользователи», без таргетинга по стране, атрибуции или пользовательским атрибутам.

Если скорость загрузки для вашего случая важнее этих недостатков, используйте getOnboardingForDefaultAudience, как показано ниже. В противном случае используйте getOnboarding, как описано выше.

try {
    final onboarding = await Adapty().getOnboardingForDefaultAudience(placementId: 'YOUR_PLACEMENT_ID');
} on AdaptyError catch (adaptyError) {
    // handle error
} catch (e) {
    // handle unknown error
}

Параметры:

ПараметрНаличиеОписание
placementIdобязательныйИдентификатор нужного плейсмента. Это значение вы указывали при создании плейсмента в дашборде Adapty.
locale

необязательный

по умолчанию: en

Идентификатор локализации онбординга. Ожидается языковой код, состоящий из одного или двух подтегов, разделённых символом минус (-). Первый подтег — язык, второй — регион.

Пример: en означает английский, pt-br — бразильский португальский.

fetchPolicyпо умолчанию: .reloadRevalidatingCacheData

По умолчанию SDK пытается загрузить данные с сервера и возвращает кешированные данные в случае ошибки. Мы рекомендуем этот вариант, так как он гарантирует, что пользователи всегда получают самые актуальные данные.

Однако если ваши пользователи работают при нестабильном интернете, рассмотрите использование .returnCacheDataElseLoad — оно вернёт кешированные данные, если они есть. В таком случае пользователи могут получить не самые свежие данные, зато загрузка будет быстрее независимо от качества соединения. Кеш обновляется регулярно, поэтому его безопасно использовать в течение сессии, чтобы избежать лишних сетевых запросов.

Обратите внимание: кеш сохраняется при перезапуске приложения и очищается только при переустановке или вручную.

Adapty SDK хранит онбординги локально на двух уровнях: регулярно обновляемый кеш, описанный выше, и резервные онбординги. Также используется CDN для ускорения загрузки и отдельный резервный сервер на случай недоступности CDN. Эта система обеспечивает получение актуальной версии онбордингов даже при нестабильном интернет-соединении.