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

Warning

Онбординги устарели начиная с Adapty SDK v4. Используйте флоу: в отличие от онбордингов, которые работают внутри WebView, флоу рендерятся нативно на устройстве — плавные анимации, нативный внешний вид, быстрая загрузка и никакой зависимости от WebView.

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

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

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

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

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

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

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

Adapty.getOnboarding("YOUR_PLACEMENT_ID") { result ->
    when (result) {
        is AdaptyResult.Success -> {
            val onboarding = result.value
            // the requested onboarding
        }
        is AdaptyResult.Error -> {
            val error = result.error
            // handle the error
        }
    }
}

Параметры:

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

опциональный

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

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

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

Подробнее о кодах локализаций и рекомендациях по их использованию — в разделе Локализации и коды локалей.

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

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

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

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

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

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

Ограничивает таймаут этого метода. Если сервер Adapty не отвечает вовремя или возвращает ошибку, SDK возвращает кешированный онбординг. Если кеш пуст и сервер превысил таймаут или вернул ошибку, SDK запрашивает онбординг с резервного сервера (копия CDN, обслуживающая только аудиторию All Users данного плейсмента). В крайнем случае SDK возвращает онбординг из вашего резервного файла.

SDK v3 использует те же три источника, но в другом порядке.

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

Для Android: TimeInterval можно создать с помощью функций-расширений (например, 5.seconds, где .seconds из import com.adapty.utils.seconds) или TimeInterval.seconds(5). Чтобы снять ограничение, используйте TimeInterval.INFINITE.

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

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

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

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

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

Warning

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

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

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

Adapty.getOnboardingForDefaultAudience("YOUR_PLACEMENT_ID") { result ->
    when (result) {
        is AdaptyResult.Success -> {
            val onboarding = result.value
            // Handle successful onboarding retrieval
        }
        is AdaptyResult.Error -> {
            val error = result.error
            // Handle error case
        }
    }
}

Параметры:

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

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

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

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

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

Подробнее о кодах локализации и рекомендациях по их использованию см. в разделе Локализации и коды локалей.

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

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

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

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

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