在 React Native SDK 中追踪流程屏幕浏览

每当用户在流程中打开某个屏幕时,SDK 会向你的应用上报一个 flow_screen_showed 事件。将其转发到 Amplitude、Mixpanel 或你使用的任何产品分析工具,便可将流程屏幕数据与应用中的其他事件一起进行分析。

Tip

要查看用户在流程中推进了多远,无需任何代码——流程数据图表已在 Adapty 看板中展示了浏览量、完成量以及每个页面的流失情况。当你需要在自己的分析系统中使用这些数据,或将其与 Adapty 未知的事件关联时,请参考本指南。

开始之前

你需要:

  • Adapty React Native SDK v4 或更高版本:此版本之前的 SDK 不支持流程分析回调。
  • 在此功能发布之后发布的流程版本:Adapty 在发布流程时生成屏幕事件,因此在此之前最后一次发布的流程不会上报任何数据。如果你的应用未收到任何事件,请重新发布一个新版本的流程后再试。

您会收到的数据

每当用户打开某个流程中的屏幕时,该流程就会上报 flow_screen_showed 事件。Adapty 会在其自身的流程分析中统计这些事件,同时也会将其传递给您的应用,以便您在自己的分析系统中构建相同的漏斗。

参数说明
instanceId用户打开的屏幕 ID。
screen_order该屏幕在流程中的位置顺序。
is_last_screen当该屏幕没有后续跳转时为 true。分支流程可能有多个结束屏幕,每个结束屏幕都会上报 true

此事件的 isBackendEventisCustomerEvent 均为 true:Adapty 会持续统计该事件,同时您的应用也会收到它。

界面浏览事件与所有其他流程事件共用同一个分析回调。请参阅处理流程与付费墙事件,了解注册回调的位置。

将每次页面浏览转发至您的分析系统

在读取其他内容之前,请先匹配事件名称,因为流程会通过同一个回调上报其他事件。

const unsubscribe = 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。可以用它来解锁内容、标记用户引导已完成,或发送自定义的完成事件,无需在编辑器中为此添加按钮操作。

const unsubscribe = 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