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

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

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

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


try {
  const onboarding = await adapty.getOnboardingForDefaultAudience({ 
    placementId: 'YOUR_PLACEMENT_ID', 
    locale: 'en',
    params: {
      fetchPolicy: 'reload_revalidating_cache_data' // Load from server, fallback to cache
    }
  });
  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' — тогда при наличии кэша будут возвращены кэшированные данные. В этом случае пользователи могут не получить самые свежие данные, но зато загрузка будет быстрее независимо от качества соединения. Кэш регулярно обновляется, поэтому его безопасно использовать в течение сессии, чтобы избежать лишних сетевых запросов.

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