小程序统计文档
产品边界
小程序统计不复用网站的 URL、referrer、PV 与跳出率口径:来源是宿主平台的场景值(scene),页面是页面路由(pages/…),数据写入独立的 mini_events 表,控制台有自己的 13 个报表页。
接入流程
下载 SDK
SDK 已发布到 npm(fmeng-mini-sdk),不依赖任何厂商模块,自动识别微信 wx / 支付宝 my / 抖音 tt / 百度 swan 运行时。推荐用 npm 安装,然后在微信开发者工具中执行「工具 - 构建 npm」:
不用 npm 的项目,可以直接下载文件放进小程序目录(如 libs/fmeng-mini-sdk.js),require 的路径改成对应文件:
初始化
在 app.js 最顶部初始化。必须在 App() 之前执行,SDK 才能自动包装 App 与 Page 的生命周期:
可选参数:autoTrack(false 关闭或按项配置 { app, page, share, error, performance })、appVersion(缺省读取正式版版本号)、batchSize(每批条数,默认 10)、flushInterval(攒批毫秒数,默认 3000)、sessionTimeout(会话超时,默认 30 分钟无活动)。
自动采集
开启自动采集(默认)后,以下事件无需写代码:
| 事件 | 触发时机 | 关键字段 |
|---|---|---|
app_launch | App.onLaunch | scene, query, page_route |
app_show | App.onShow(冷启动与切回前台) | scene, query, page_route |
app_hide | App.onHide,随后立即发送 | duration(本次前台时长) |
page_view | Page.onShow | page_route, query |
share | onShareAppMessage / onShareTimeline(页面定义了才采集) | share_source, page_route |
error | App.onError / onUnhandledRejection | message, stack, source |
performance | Page.onLoad → onReady | page_ready |
每批请求还会带上机型、系统版本、网络类型与屏幕尺寸;访客 ID 与会话 ID 保存在本地存储,30 分钟无活动后开始新的访问。
手动上报
在页面里通过 getApp().fmeng 调用。自定义事件名 ≤64 个字符,属性最多 30 个,值为字符串、数字或布尔:
框架与多端
Taro、uni-app 等框架由框架自己调用 App() / Page(),SDK 改写不到全局函数时,用 wrapApp / wrapPage 包装选项对象:
支付宝、抖音、百度小程序使用同一份 SDK,平台由运行时自动识别;场景值体系各不相同,报表按原值展示(场景值名称与分类目前只覆盖微信)。
指标口径
- 打开次数:进入前台的次数(app_show),冷启动与从后台切回都算一次。
- 访问人数:去重用户;新用户为首次打开时间落在所选范围内的用户。
- 访问次数:会话数,30 分钟无活动后再打开算新的一次访问。
- 次均停留:每次访问的前台时长(app_hide 上报的时长之和;缺失时用首末事件间隔)。
- 跳出率:只浏览了 1 个页面的访问 ÷ 有页面浏览的访问。
- 页面停留:同一次访问中下一次页面浏览或切到后台的时间减去本次浏览时间,单次最长计 30 分钟。
- 留存:首次打开日期在所选范围内的新用户,第 N 天仍有打开的比例(N = 1~7、14、30)。
- 性能:耗时类取 P75(75% 的样本不慢于该值),帧率取 P25(75% 的样本不低于该值)。