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

Начиная с SDK v4 (бета), вы можете создавать флоу как более мощную альтернативу онбордингам. В отличие от онбордингов, которые работают внутри WebView, флоу рендерятся нативно на устройстве — это обеспечивает плавные анимации, привычный iOS-интерфейс, быструю загрузку и отсутствие зависимости от WebView. Подробнее: Получение флоу и пейволов и Отображение флоу и пейволов.

После того как вы разработали визуальную часть онбординга с помощью билдера в дашборде 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, поскольку последний имеет важные ограничения:

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

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

Adapty.getOnboardingForDefaultAudience(placementId: "YOUR_PLACEMENT_ID") { result in
    switch result {
        case let .success(onboarding):
            // запрошенный онбординг
        case let .failure(error):
            // обработка ошибки
    }
}

Параметры:

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

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

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

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

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

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

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

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

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

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

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