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

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

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

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

  1. Вы создали онбординг.
  2. Вы добавили онбординг в плейсмент.

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

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

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


try {
  const onboarding = await adapty.getOnboarding({ 
    placementId: 'YOUR_PLACEMENT_ID', 
    locale: 'en',
    params: {
      fetchPolicy: 'reload_revalidating_cache_data', // Load from server, fallback to cache
      loadTimeoutMs: 5000 // 5 second timeout
    }
  });
  console.log('Onboarding fetched successfully');
} catch (error) {
  console.error('Failed to fetch onboarding:', error);
}

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

Результат метода createOnboardingView можно использовать только один раз. Если вам нужно использовать его повторно, вызовите метод createOnboardingView заново.


if (onboarding.hasViewConfiguration) {
  try {
    const view = await createOnboardingView(onboarding);
    console.log('Onboarding view created successfully');
  } catch (error) {
    console.error('Failed to create onboarding view:', error);
  }
} else {
  // Use your custom logic
  console.log('Onboarding does not have view configuration');
}

Параметры:

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

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

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

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

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

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

params.fetchPolicy

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

по умолчанию: 'reload_revalidating_cache_data'

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

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

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

params.loadTimeoutMs

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

по умолчанию: 5000 мс

Ограничивает таймаут (в миллисекундах) для этого метода. По истечении таймаута будут возвращены кэшированные данные или локальный резервный пейвол.

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

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

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

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

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

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

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


try {
  const onboarding = await adapty.getOnboardingForDefaultAudience({ 
    placementId: 'YOUR_PLACEMENT_ID', 
    locale: 'en',
    params: {
      fetchPolicy: 'reload_revalidating_cache_data' // Загрузка с сервера, фолбэк на кэш
    }
  });
  console.log('Default audience onboarding fetched successfully');
} catch (error) {
  console.error('Failed to fetch default audience onboarding:', error);
}

Параметры:

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

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

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

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

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

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

params.fetchPolicy

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

по умолчанию: 'reload_revalidating_cache_data'

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

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

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