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

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

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

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

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

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

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

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

try {
    const placementId = 'YOUR_PLACEMENT_ID';
    const locale = 'en';

    const onboarding = await adapty.getOnboarding(placementId, locale);
    // the requested onboarding
} catch (error) {
    // handle the error
}

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

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

// for the Adapty SDK < 3.14 – import {createOnboardingView} from 'react-native-adapty/dist/ui';

if (onboarding.hasViewConfiguration) {
    try {
        const view = await createOnboardingView(onboarding);
    } catch (error) {
        // handle the error
    }
} else {
    //use your custom logic
}

Параметры:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

try {
    const placementId = 'YOUR_PLACEMENT_ID';
    const locale = 'en';

    const onboarding = await adapty.getOnboardingForDefaultAudience(placementId, locale);
    // запрошенный онбординг
} catch (error) {
    // обработка ошибки
}

Параметры:

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

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

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

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

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

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

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

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

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

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

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