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

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

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

  1. Установлен Adapty Kotlin Multiplatform SDK версии 3.15.0 или выше.
  2. Вы создали онбординг.
  3. Вы добавили онбординг в плейсмент.

Загрузка онбординга

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

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

Для получения онбординга используйте метод getOnboarding:


Adapty.getOnboarding(
    placementId = "YOUR_PLACEMENT_ID",
    locale = "en",
    fetchPolicy = AdaptyPaywallFetchPolicy.Default,
    loadTimeout = 5.seconds
).onSuccess { paywall ->
    // the requested paywall
}.onError { error ->
    // handle the 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, так как последний имеет существенные ограничения:

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

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


Adapty.getOnboardingForDefaultAudience(
    placementId = "YOUR_PLACEMENT_ID",
    locale = "en",
    fetchPolicy = AdaptyPaywallFetchPolicy.Default,
).onSuccess { paywall ->
    // the requested paywall
}.onError { error ->
    // handle the error
}

Параметры:

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

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

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

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

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

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

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

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