更多: 应用统计
简短回答
屏幕浏览记录为 $screen_view 事件,在 应用统计 › 行为分析 › 屏幕与路径 里查看。Android 上 Activity 自动采集;iOS 上 UIKit 视图控制器自动采集。Fragment、Jetpack Compose、对话框和 SwiftUI 视图需要加一行:TapCub.trackScreen("名称")(SwiftUI 用 .wcScreen("名称") 修饰符)。React Native 和 Flutter 由导航钩子或观察者发送屏幕。
屏幕浏览就是 App 里的页面浏览:告诉你人们打开了哪些屏幕、按什么顺序、停留多久。
各平台怎么采集屏幕
| 平台 | 自动采集 | 需要你加 |
|---|---|---|
| Android | Activity,在 onResume 时 | Fragment、Compose 和对话框调用 TapCub.trackScreen("Home") |
| iOS | UIKit 视图控制器,在 viewDidAppear 时(跳过容器和系统类) | SwiftUI 用 .wcScreen("Checkout") 或 TapCub.trackScreen("Checkout") |
| HarmonyOS | router 页面和 Navigation 目标页 | 其他情况调用 trackScreen |
| React Native | 否 | <NavigationContainer onStateChange={TapCub.navigationHook} />,不用 React Navigation 时调用 trackScreen |
| Flutter | 否 | MaterialApp(navigatorObservers: [TapCub.navigatorObserver]);路由需要 settings.name |
| 小程序 | 页面显示和隐藏($mp_view_screen) | 自定义视图调用 trackScreen |
React Native 和 Flutter 上,连续两次相同的屏幕名只发送一次。
给屏幕起好名字
屏幕名就是报表里的行,要有意识地起:
- Android: 给 Activity 加
@TapCubScreen("Order")注解,否则用类名。 - iOS: UIKit 默认用类名,可以通过
TapCubScreenNaming修改。 - 用稳定、能读懂的名字,比如
Checkout、ProductDetail,不要用ProductDetailViewController2。 - 名字里不要带 ID。
Product/123会让每个商品各占一行;ID 放进属性里发送。 - 跳过只会制造噪声的屏幕,比如启动页:Android 用
TapCub.ignoreScreen(SplashActivity::class.java),iOS 用TapCub.ignoreScreen(SplashVC.self),HarmonyOS 用TapCub.ignoreScreen('Splash')。
要带上更多上下文就加属性:Android 上 TapCub.trackScreen("Product", mapOf("product_id" to "sku_42"))。
看屏幕报表
应用统计 › 行为分析 › 屏幕与路径 按 $screen_name 汇总,列名是「屏幕」。每一行有:
- 访问量: 屏幕浏览事件数。
- 占比: 占当前筛选下全部访问量的比例。
- 人数: 去重的用户或设备数,取决于项目的计数口径。
- 平均停留: 取自
$screen_leave事件上的时长。没有离开事件时这一格为空,不等于零秒。
路径部分展示同一会话里相邻的屏幕,只保留较大的流向。要从某个起点或终点屏幕做完整的逐步分析,用行为分析里的路径模型,见分析用户路径。小程序里同一个报表叫「页面」,在 小程序统计 › 页面与事件 下。
常见问题
为什么屏幕表是空的? App 没有发送 $screen_view:页面在 Fragment、Compose 或 SwiftUI 里却没调用 trackScreen;关掉了自动屏幕采集(autoTrackScreens = false);或者 React Native、Flutter 上没接导航钩子或观察者。
为什么 Flutter 不发屏幕? 路由没有 settings.name,没有名字的路由会被跳过。
App 有点击热力图吗? 没有。App 和小程序没有网页那样的点击热力图;Android 和 iOS 上的点按记录为 $app_click 事件。
相关
更新记录1
- 更新更新内容
- 首次发布
这篇回答解决你的问题了吗?
我们会根据反馈修改和补充这篇内容。
提交没有成功,请稍后再试。
谢谢你的反馈,我们会据此改进这篇内容。你已经反馈过这篇了,谢谢。