Отслеживание просмотров экранов флоу в Capacitor SDK

Каждый раз, когда пользователь открывает экран во флоу, SDK передаёт в ваше приложение событие flow_screen_showed. Пересылайте его в Amplitude, Mixpanel или любую другую продуктовую аналитику, которую вы используете, чтобы анализировать экраны флоу вместе с остальными событиями вашего приложения.

Tip

Чтобы отследить, до какого экрана доходят пользователи во флоу, код не нужен — метрики флоу уже показывают просмотры, завершения и отвал по каждому экрану в дашборде Adapty. Используйте этот гайд, если вам нужны те же данные в собственной аналитике вместе с событиями, о которых Adapty не знает.

Прежде чем начать

Вам понадобится:

  • Adapty Capacitor SDK v4 или новее: колбэк аналитики флоу отсутствует в более ранних версиях.
  • Версия флоу, опубликованная после выхода этой функции: Adapty генерирует события экранов при публикации флоу, поэтому флоу, опубликованный до этого момента, не передаёт никаких событий. Если события не поступают в приложение, опубликуйте новую версию флоу и попробуйте снова.

Что вы получаете

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

ПараметрОписание
instanceIdИдентификатор экрана, который открыл пользователь.
screen_orderПорядковый номер экрана во флоу.
is_last_screentrue, если у экрана нет следующего шага. Флоу с ветвлением может завершаться на нескольких разных экранах — каждый из них возвращает true.

Оба поля isBackendEvent и isCustomerEvent равны true для этого события: Adapty продолжает его учитывать, и ваше приложение тоже его получает.

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

Передавайте каждый просмотр экрана в аналитику

Сначала проверяйте имя события, прежде чем читать что-либо ещё, — флоу передаёт другие события через тот же колбэк.

view.setEventHandlers({
  onAnalytics(name, params) {
    if (name === 'flow_screen_showed') {
      const screenId = params.instanceId;
      const screenOrder = params.screen_order;

      // Send screenId and screenOrder to your analytics provider here.
    }
    return false; // keep the flow open
  },
});

Запуск кода, когда пользователь достигает последнего экрана

is_last_screen равно true на экране, дальше которого флоу не может продвинуться. Используйте это, чтобы открыть контент, отметить онбординг как завершённый или отправить собственное событие о завершении — без добавления действия кнопки в конструкторе.

view.setEventHandlers({
  onAnalytics(name, params) {
    if (name === 'flow_screen_showed' && params.is_last_screen) {
      // The user reached the end of the flow.
    }
    return false; // keep the flow open
  },
});

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