在 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。 |
此事件的 isBackendEvent 和 isCustomerEvent 均为 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。