Получение онбордингов и их конфигурации

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

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

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

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

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

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

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

do {
    let onboarding = try await Adapty.getOnboarding(placementId: "YOUR_PLACEMENT_ID")
    // the requested onboarding
} catch {
    // 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") { result in
    switch result {
        case let .success(onboarding):
            // the requested onboarding
        case let .failure(error):
            // handle the error
    }
}

Параметры:

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

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

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

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

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

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

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

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

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

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

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