微信小程序
安装
包在 packages/miniprogram,按工作区依赖引用。导入路径以 package.json 的导出为准:
import { WebCount } from '@webcount/miniprogram/wx';示例工程在 examples/miniprogram/weixin/。
初始化
appId 填小程序 appid,并先在控制台登记。endpoint 只写域名,路径由 SDK 拼接。
WebCount.preInit({
siteKey: 'YOUR_SITE_KEY',
endpoint: 'https://YOUR_ORIGIN',
appId: 'YOUR_APPID',
});
App({
onLaunch() {
WebCount.init();
},
});国内模式传 region: 'cn':用户同意后再调用 init,并调用 grantConsent(['analytics']),否则事件不会发出。
页面浏览
preInit 之后,冷启动发送 $mp_launch 与 $mp_show,页面进入和离开发送 $mp_view_screen 与 $mp_page_leave。框架不能改写全局 Page 时,用同入口导出的 wrapPage 包住页面配置。手发当前屏用 trackScreen。
事件
WebCount.track('purchase', { revenue: 19.9, currency: 'CNY' });事件名最长 100 个字符。自定义属性最多 30 个,字符串值最长 200。
身份
WebCount.login(openid, undefined, { type: 'openid' });
WebCount.logout();登录标识最长 200 个字符。识别模式才写入设备标识,见 身份关联。
限制
| 项目 | 默认 | 说明 |
|---|---|---|
| 本地队列 | 10000 条 | 同时受 7 天和 1 MB 上限约束 |
| 点击 | 关闭 | 只有 autoTrack: true 才上报点击 |
| 应用标识 | 必填 | 未登记的 appid 会被收数端丢弃 |
错误
缺少 siteKey 时初始化失败并记一条内部错误,不会发出启动事件。未登记的 appid 被收数端丢弃,调用方看不到异常。收数域名没加进小程序的合法域名时,请求发不出去。429、5xx 和网络失败从 1 秒起退避,上限 300 秒,期间事件留在本地队列。登录标识超过 200 字符或属于占位词时,login 被忽略。能力对照见 SDK 总览与支持矩阵。
支付宝小程序
安装
import { WebCount } from '@webcount/miniprogram/my';源码在 packages/miniprogram。调用顺序可参考微信示例 examples/miniprogram/weixin/。
初始化
WebCount.preInit({
siteKey: 'YOUR_SITE_KEY',
endpoint: 'https://YOUR_ORIGIN',
appId: 'YOUR_APPID',
});
App({
onLaunch() {
WebCount.init();
},
});appId 用支付宝小程序的 appid,并在控制台登记。国内模式传 region: 'cn':用户同意后再调用 init,并调用 grantConsent(['analytics'])。
页面浏览
preInit 绑定的生命周期发送 $mp_launch、$mp_show、$mp_hide,页面显示和隐藏对应 $mp_view_screen 与 $mp_page_leave,分享记 $mp_share。这些名字不要自己再发一遍。不能改写全局 Page 时使用同入口导出的 wrapPage。手发屏幕用 trackScreen。
事件
WebCount.track('purchase', { revenue: 19.9 });事件名最长 100 个字符。自定义属性最多 30 个,字符串值最长 200。
身份
WebCount.login(userId, undefined, { type: 'openid' });type 可以是 login、email、mobile、unionid、openid 或 custom,邮箱和手机号会先做哈希。标识最长 200 字符,占位词会被拒绝。退出调用 logout。
限制
| 项目 | 默认 | 说明 |
|---|---|---|
| 本地队列 | 10000 条 | 7 天或 1 MB 也会截断 |
| 点击 | 关闭 | autoTrack: true 才打开 |
| 应用标识 | 必填 | 未登记会被丢弃 |
错误
未传 siteKey 时不会开始采集,也没有 $mp_launch。未登记的 appid 被丢弃。收数域名要配进小程序的请求域名。失败请求按退避留在本地队列。页面若没有走 preInit 挂上的生命周期,也不会自动有 $mp_view_screen,这时用 wrapPage 或 trackScreen。细节见 SDK 总览与支持矩阵。
抖音小程序
核心与微信、支付宝入口相同。
安装
import { WebCount } from '@webcount/miniprogram/tt';包目录是 packages/miniprogram。
初始化
WebCount.preInit({
siteKey: 'YOUR_SITE_KEY',
endpoint: 'https://YOUR_ORIGIN',
appId: 'YOUR_APPID',
});
App({
onLaunch() {
WebCount.init();
},
});appId 填抖音小程序 appid,并在控制台登记。endpoint 只写域名,路径由 SDK 拼接。国内模式传 region: 'cn':用户同意后再调用 init,并调用 grantConsent(['analytics'])。
页面浏览
启动序列是 $mp_launch 然后 $mp_show,退到后台是 $mp_hide。进入页面发送 $mp_view_screen,离开发送 $mp_page_leave。分享记 $mp_share,收藏记 $mp_add_favorites。这些预置名由生命周期发出,业务代码里用自己的事件名即可。不能改写全局 Page 时用 wrapPage。当前屏也可以 trackScreen。
事件
WebCount.track('purchase', { revenue: 19.9, currency: 'CNY' });名称最长 100 个字符,自定义属性最多 30 个,字符串值最长 200。
身份
WebCount.login(openid, undefined, { type: 'openid' });
WebCount.logout();登录标识最长 200 个字符,占位词会被忽略。见 身份关联。
限制
| 项目 | 默认 | 说明 |
|---|---|---|
| 本地队列 | 10000 条 | 另有 7 天与 1 MB 上限 |
| 点击 | 关闭 | 显式打开 autoTrack 才采集 |
| 应用标识 | 必填 | 未登记的 appid 会被丢弃 |
错误
siteKey 为空时初始化记内部错误并不发送,实时报表里不会有 $mp_launch。没有启动记录时,先看初始化有没有真正执行。未登记的 appid 被丢弃。收数域名要配进请求白名单。失败批次留在本地,429 与 5xx 从 1 秒起退避,上限 300 秒。不能改写全局 Page 又没用 wrapPage 时,进入页面不会自动发 $mp_view_screen。见 SDK 总览与支持矩阵。