Browse Source
实现埋点功能,包括: 1. 创建埋点工具类 utils/tracking.ts 2. 在所有页面添加页面浏览埋点 3. 为关键交互元素添加点击事件埋点 4. 更新埋点规划文档 tracking_plan.mdmaster
29 changed files with 822 additions and 11 deletions
@ -0,0 +1,566 @@
@@ -0,0 +1,566 @@
|
||||
# 小程序埋点规划文档 |
||||
|
||||
## 一、项目概述 |
||||
|
||||
本项目是一个基于微信小程序的药品查询应用,包含三个主要角色端: |
||||
|
||||
* **患者端** (pages/): 患者用户访问 |
||||
|
||||
* **地推端** (ground/): 邀约专员使用 |
||||
|
||||
* **店员端** (doctor/): 药店工作人员使用 |
||||
|
||||
*** |
||||
|
||||
## 二、页面结构梳理 |
||||
|
||||
### 2.1 主包页面 (pages/) |
||||
|
||||
| 页面路径 | 页面名称 | 说明 | |
||||
| -------------------- | ------ | ---------------- | |
||||
| pages/start/index | 启动页 | 应用入口,处理扫码参数和身份跳转 | |
||||
| pages/tourists/index | 游客页 | 未登录用户选择身份入口 | |
||||
| pages/work/index | 工作人员入口 | 选择地推/店员/患者身份 | |
||||
| pages/index/index | 患者首页 | 患者主页面,项目选择、适应症选择 | |
||||
|
||||
### 2.2 地推端分包 (ground/) |
||||
|
||||
| 页面路径 | 页面名称 | 说明 | |
||||
| --------------------------------- | ----- | ------------ | |
||||
| ground/pages/login/index | 地推登录 | 地推人员登录/注册 | |
||||
| ground/pages/home/index | 地推首页 | 数据统计看板、图表展示 | |
||||
| ground/pages/pharmacist/index | 店员列表 | 邀约的店员列表及搜索筛选 | |
||||
| ground/pages/my/index | 地推我的 | 个人信息、设置 | |
||||
| ground/pages/invite/index | 地推邀约码 | 专属邀约二维码展示 | |
||||
| ground/pages/stat/index | 邀约明细 | 详细统计数据 | |
||||
| ground/pages/changeNickname/index | 修改姓名 | 修改地推人员姓名 | |
||||
| ground/pages/changeTel/index | 修改手机号 | 修改地推人员手机号 | |
||||
|
||||
### 2.3 店员端分包 (doctor/) |
||||
|
||||
| 页面路径 | 页面名称 | 说明 | |
||||
| --------------------------------- | ----- | ------------ | |
||||
| doctor/pages/login/index | 店员登录 | 店员登录/注册第一步 | |
||||
| doctor/pages/loginForm/index | 店员注册 | 店员注册表单 | |
||||
| doctor/pages/home/index | 店员首页 | 数据统计看板、待处理事项 | |
||||
| doctor/pages/patientList/index | 患者列表 | 邀约的患者列表及状态管理 | |
||||
| doctor/pages/articleList/index | 教育列表 | 健康教育文章列表 | |
||||
| doctor/pages/article/index | 文章详情 | 教育文章详情 | |
||||
| doctor/pages/my/index | 店员我的 | 个人信息、设置 | |
||||
| doctor/pages/invite/index | 店员邀约码 | 专属邀约二维码展示 | |
||||
| doctor/pages/stat/index | 邀约明细 | 详细统计数据 | |
||||
| doctor/pages/changeNickname/index | 修改姓名 | 修改店员姓名 | |
||||
| doctor/pages/changeTel/index | 修改手机号 | 修改店员手机号 | |
||||
|
||||
### 2.4 隐私协议分包 (privacy/) |
||||
|
||||
| 页面路径 | 页面名称 | 说明 | |
||||
| --------------------------- | ---- | ----------- | |
||||
| privacy/pages/policy/index | 隐私政策 | 个人信息及隐私保护政策 | |
||||
| privacy/pages/policy1/index | 用户协议 | 用户与隐私保护协议 | |
||||
|
||||
*** |
||||
|
||||
## 三、埋点事件规划 |
||||
|
||||
### 3.1 页面浏览埋点 (Page View) |
||||
|
||||
所有页面都需要在 `onLoad` 或 `onShow` 中上报页面浏览事件。 |
||||
|
||||
| pageName 编码 | 页面路径 | 说明 | |
||||
| ----------------------------- | --------------------------------- | ------- | |
||||
| **患者端** | <br /> | <br /> | |
||||
| patient\_start\_view | pages/start/index | 启动页 | |
||||
| patient\_tourists\_view | pages/tourists/index | 游客页 | |
||||
| patient\_work\_view | pages/work/index | 工作人员入口 | |
||||
| patient\_home\_view | pages/index/index | 患者首页 | |
||||
| **地推端** | <br /> | <br /> | |
||||
| ground\_login\_view | ground/pages/login/index | 地推登录 | |
||||
| ground\_home\_view | ground/pages/home/index | 地推首页 | |
||||
| ground\_pharmacist\_view | ground/pages/pharmacist/index | 店员列表 | |
||||
| ground\_my\_view | ground/pages/my/index | 地推我的 | |
||||
| ground\_invite\_view | ground/pages/invite/index | 地推邀约码 | |
||||
| ground\_stat\_view | ground/pages/stat/index | 地推邀约明细 | |
||||
| ground\_change\_name\_view | ground/pages/changeNickname/index | 地推修改姓名 | |
||||
| ground\_change\_tel\_view | ground/pages/changeTel/index | 地推修改手机号 | |
||||
| **店员端** | <br /> | <br /> | |
||||
| doctor\_login\_view | doctor/pages/login/index | 店员登录 | |
||||
| doctor\_register\_view | doctor/pages/loginForm/index | 店员注册 | |
||||
| doctor\_home\_view | doctor/pages/home/index | 店员首页 | |
||||
| doctor\_patient\_view | doctor/pages/patientList/index | 患者列表 | |
||||
| doctor\_article\_view | doctor/pages/articleList/index | 教育列表 | |
||||
| doctor\_article\_detail\_view | doctor/pages/article/index | 文章详情 | |
||||
| doctor\_my\_view | doctor/pages/my/index | 店员我的 | |
||||
| doctor\_invite\_view | doctor/pages/invite/index | 店员邀约码 | |
||||
| doctor\_stat\_view | doctor/pages/stat/index | 店员邀约明细 | |
||||
| doctor\_change\_name\_view | doctor/pages/changeNickname/index | 店员修改姓名 | |
||||
| doctor\_change\_tel\_view | doctor/pages/changeTel/index | 店员修改手机号 | |
||||
| **隐私协议** | <br /> | <br /> | |
||||
| privacy\_policy\_view | privacy/pages/policy/index | 隐私政策 | |
||||
| user\_agreement\_view | privacy/pages/policy1/index | 用户协议 | |
||||
|
||||
*** |
||||
|
||||
### 3.2 点击事件埋点 (Click Event) |
||||
|
||||
#### 3.2.1 启动页 (pages/start/index) |
||||
|
||||
| pageName 编码 | 触发元素 | 说明 | |
||||
| --------------------------- | ---- | ----------- | |
||||
| patient\_start\_scan\_click | 扫码进入 | 用户通过扫码进入小程序 | |
||||
|
||||
#### 3.2.2 游客页 (pages/tourists/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| --------------------------- | ---------- | ------- | |
||||
| click\_tourists\_pharmacist | "我是药店工作人员" | 跳转店员登录 | |
||||
| click\_tourists\_promoter | "我是地推人员" | 跳转地推登录 | |
||||
| click\_avatar\_upload | 头像选择 | 选择/上传头像 | |
||||
| click\_nickname\_save | 昵称输入框失焦 | 保存昵称 | |
||||
|
||||
#### 3.2.3 工作人员入口 (pages/work/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| -------------------- | ---------- | ------ | |
||||
| click\_work\_ground | "我是邀约专员"卡片 | 进入地推登录 | |
||||
| click\_work\_doctor | "我是店员"卡片 | 进入店员登录 | |
||||
| click\_work\_patient | "我是患者"按钮 | 进入患者端 | |
||||
|
||||
#### 3.2.4 患者首页 (pages/index/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| ---------------------------------- | ------------ | --------- | |
||||
| click\_patient\_project\_switch | 项目切换picker | 切换当前项目 | |
||||
| click\_patient\_avatar | 头像选择按钮 | 选择/上传头像 | |
||||
| click\_patient\_nickname\_save | 昵称输入框 | 保存昵称 | |
||||
| click\_patient\_indication\_select | 适应症选项 | 选择适应症并登录 | |
||||
| click\_patient\_agreement\_toggle | 协议同意checkbox | 切换协议同意状态 | |
||||
| click\_patient\_agreement\_view | 《用户与隐私保护协议》 | 查看用户协议 | |
||||
| click\_patient\_work\_entry | "我是工作人员" | 进入工作人员入口 | |
||||
| click\_patient\_jump\_miniprogram | "去腾讯药箱看看" | 跳转腾讯药箱小程序 | |
||||
|
||||
#### 3.2.5 地推登录页 (ground/pages/login/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| --------------------------------- | ------------- | -------- | |
||||
| click\_ground\_login\_wx | "手机号快捷登录"按钮 | 微信一键登录 | |
||||
| click\_ground\_login\_sms\_switch | "使用手机号验证码" | 切换验证码登录 | |
||||
| click\_ground\_login\_sms\_code | "发送验证码" | 发送短信验证码 | |
||||
| click\_ground\_login\_submit | "立即加入"按钮 | 验证码登录提交 | |
||||
| click\_ground\_login\_agreement | 协议勾选 | 切换协议同意状态 | |
||||
| click\_ground\_login\_privacy | 《个人信息及隐私保护政策》 | 查看隐私政策 | |
||||
| click\_ground\_login\_patient | "我是患者" | 切换到患者端 | |
||||
|
||||
#### 3.2.6 地推首页 (ground/pages/home/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| -------------------------------------- | ---------- | --------- | |
||||
| click\_ground\_home\_project\_switch | 项目切换picker | 切换项目 | |
||||
| click\_ground\_home\_invite\_code | 右上角邀约码图标 | 查看邀约码 | |
||||
| click\_ground\_home\_fold1 | "累计邀约"折叠 | 展开/收起累计数据 | |
||||
| click\_ground\_home\_fold2 | "邀约患者统计"折叠 | 展开/收起日度数据 | |
||||
| click\_ground\_home\_stat\_type\_day | "日统计"切换 | 切换到日统计 | |
||||
| click\_ground\_home\_stat\_type\_month | "月统计"切换 | 切换到月统计 | |
||||
| click\_ground\_home\_date\_picker | 日期选择器 | 选择统计日期 | |
||||
| click\_ground\_home\_date\_prev | 日期左箭头 | 上一天/上月 | |
||||
| click\_ground\_home\_date\_next | 日期右箭头 | 下一天/下月 | |
||||
| click\_ground\_home\_chart1\_start | 图表1开始日期 | 选择图表开始日期 | |
||||
| click\_ground\_home\_chart1\_end | 图表1结束日期 | 选择图表结束日期 | |
||||
| click\_ground\_home\_chart2\_start | 图表2开始日期 | 选择图表开始日期 | |
||||
| click\_ground\_home\_chart2\_end | 图表2结束日期 | 选择图表结束日期 | |
||||
| click\_ground\_home\_chart3\_start | 图表3开始日期 | 选择图表开始日期 | |
||||
| click\_ground\_home\_chart3\_end | 图表3结束日期 | 选择图表结束日期 | |
||||
| click\_ground\_home\_detail | "查看明细"按钮 | 进入邀约明细 | |
||||
|
||||
#### 3.2.7 地推店员列表 (ground/pages/pharmacist/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| ------------------------------------------ | ---------- | ------- | |
||||
| click\_ground\_pharmacist\_project\_switch | 项目切换picker | 切换项目 | |
||||
| click\_ground\_pharmacist\_search | 搜索框 | 搜索店员/药店 | |
||||
| click\_ground\_pharmacist\_start\_date | 开始时间picker | 选择开始时间 | |
||||
| click\_ground\_pharmacist\_end\_date | 结束时间picker | 选择结束时间 | |
||||
| click\_ground\_pharmacist\_card | 店员卡片 | 查看店员详情 | |
||||
|
||||
#### 3.2.8 地推我的页 (ground/pages/my/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| --------------------------- | ------- | -------- | |
||||
| click\_ground\_my\_avatar | 头像区域 | 修改头像 | |
||||
| click\_ground\_my\_nickname | "修改姓名" | 进入修改姓名页 | |
||||
| click\_ground\_my\_tel | "修改手机号" | 进入修改手机号页 | |
||||
| click\_ground\_my\_invite | "我的邀约码" | 查看邀约码 | |
||||
| click\_ground\_my\_exit | "退出登录" | 退出登录 | |
||||
|
||||
#### 3.2.9 地推邀约码 (ground/pages/invite/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| --------------------------- | ----- | -------- | |
||||
| click\_ground\_invite\_save | 二维码区域 | 保存二维码到相册 | |
||||
|
||||
#### 3.2.10 地推邀约明细 (ground/pages/stat/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| -------------------------------- | ---------- | ------ | |
||||
| click\_ground\_stat\_start\_date | 开始日期picker | 选择开始日期 | |
||||
| click\_ground\_stat\_end\_date | 结束日期picker | 选择结束日期 | |
||||
|
||||
#### 3.2.11 店员登录页 (doctor/pages/login/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| --------------------------------- | ------------- | -------- | |
||||
| click\_doctor\_login\_wx | "手机号快捷登录"按钮 | 微信一键登录 | |
||||
| click\_doctor\_login\_sms\_switch | "使用手机号验证码" | 切换验证码登录 | |
||||
| click\_doctor\_login\_sms\_code | "发送验证码" | 发送短信验证码 | |
||||
| click\_doctor\_login\_submit | "立即加入"按钮 | 验证码登录提交 | |
||||
| click\_doctor\_login\_agreement | 协议勾选 | 切换协议同意状态 | |
||||
| click\_doctor\_login\_privacy | 《个人信息及隐私保护政策》 | 查看隐私政策 | |
||||
| click\_doctor\_login\_patient | "我是患者" | 切换到患者端 | |
||||
|
||||
#### 3.2.12 店员注册页 (doctor/pages/loginForm/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| ----------------------------------------- | ---------- | -------- | |
||||
| click\_doctor\_register\_name\_input | 姓名输入框 | 输入姓名 | |
||||
| click\_doctor\_register\_pharmacy | 所属药店选择 | 打开药店选择弹窗 | |
||||
| click\_doctor\_register\_project | 项目选择picker | 选择项目 | |
||||
| click\_doctor\_register\_submit | "立即加入店员端" | 提交注册 | |
||||
| click\_doctor\_register\_pharmacy\_search | 药店搜索框 | 搜索药店 | |
||||
| click\_doctor\_register\_area\_picker | 省市区选择 | 选择省市区 | |
||||
| click\_doctor\_register\_pharmacy\_select | 药店列表项 | 选择药店 | |
||||
|
||||
#### 3.2.13 店员首页 (doctor/pages/home/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| -------------------------------------- | ---------- | --------- | |
||||
| click\_doctor\_home\_project\_switch | 项目切换picker | 切换项目 | |
||||
| click\_doctor\_home\_invite\_code | 右上角邀约码图标 | 查看邀约码 | |
||||
| click\_doctor\_home\_fold1 | "累计邀约"折叠 | 展开/收起累计数据 | |
||||
| click\_doctor\_home\_fold2 | "邀约患者统计"折叠 | 展开/收起日度数据 | |
||||
| click\_doctor\_home\_stat\_type\_day | "日统计"切换 | 切换到日统计 | |
||||
| click\_doctor\_home\_stat\_type\_month | "月统计"切换 | 切换到月统计 | |
||||
| click\_doctor\_home\_date\_picker | 日期选择器 | 选择统计日期 | |
||||
| click\_doctor\_home\_date\_prev | 日期左箭头 | 上一天/上月 | |
||||
| click\_doctor\_home\_date\_next | 日期右箭头 | 下一天/下月 | |
||||
| click\_doctor\_home\_chart\_start | 图表开始日期 | 选择图表开始日期 | |
||||
| click\_doctor\_home\_chart\_end | 图表结束日期 | 选择图表结束日期 | |
||||
| click\_doctor\_home\_detail | "查看明细"按钮 | 进入邀约明细 | |
||||
|
||||
#### 3.2.14 店员患者列表 (doctor/pages/patientList/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| ---------------------------------------- | ---------- | -------- | |
||||
| click\_doctor\_patient\_project\_switch | 项目切换picker | 切换项目 | |
||||
| click\_doctor\_patient\_search | 搜索框 | 搜索患者 | |
||||
| click\_doctor\_patient\_jump\_status | 跳转状态picker | 筛选跳转状态 | |
||||
| click\_doctor\_patient\_enroll\_status | 入组状态picker | 筛选入组状态 | |
||||
| click\_doctor\_patient\_jump\_start | 跳转开始时间 | 选择跳转开始时间 | |
||||
| click\_doctor\_patient\_jump\_end | 跳转结束时间 | 选择跳转结束时间 | |
||||
| click\_doctor\_patient\_enroll\_start | 入组开始时间 | 选择入组开始时间 | |
||||
| click\_doctor\_patient\_enroll\_end | 入组结束时间 | 选择入组结束时间 | |
||||
| click\_doctor\_patient\_preview | "查看提交材料" | 预览材料图片 | |
||||
| click\_doctor\_patient\_upload\_jump | "提交"跳转材料 | 上传跳转材料 | |
||||
| click\_doctor\_patient\_upload\_enroll | "提交"入组材料 | 上传入组材料 | |
||||
| click\_doctor\_patient\_reupload\_jump | "重新提交"跳转 | 重新上传跳转材料 | |
||||
| click\_doctor\_patient\_reupload\_enroll | "重新提交"入组 | 重新上传入组材料 | |
||||
|
||||
#### 3.2.15 教育列表 (doctor/pages/articleList/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| ------------------------------ | -------- | -------- | |
||||
| click\_doctor\_article\_tab | 分类tab | 切换文章分类 | |
||||
| click\_doctor\_article\_banner | Banner轮播 | 点击Banner | |
||||
| click\_doctor\_article\_card | 文章卡片 | 查看文章详情 | |
||||
| click\_doctor\_article\_like | 点赞按钮 | 点赞文章 | |
||||
|
||||
#### 3.2.16 文章详情 (doctor/pages/article/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| ------------------------------------ | ---- | ---- | |
||||
| click\_doctor\_article\_detail\_like | 点赞按钮 | 点赞文章 | |
||||
|
||||
#### 3.2.17 店员我的页 (doctor/pages/my/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| --------------------------- | ------- | -------- | |
||||
| click\_doctor\_my\_avatar | 头像区域 | 修改头像 | |
||||
| click\_doctor\_my\_nickname | "修改姓名" | 进入修改姓名页 | |
||||
| click\_doctor\_my\_tel | "修改手机号" | 进入修改手机号页 | |
||||
| click\_doctor\_my\_invite | "我的邀约码" | 查看邀约码 | |
||||
| click\_doctor\_my\_exit | "退出登录" | 退出登录 | |
||||
|
||||
#### 3.2.18 店员邀约码 (doctor/pages/invite/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| --------------------------- | ----- | -------- | |
||||
| click\_doctor\_invite\_save | 二维码区域 | 保存二维码到相册 | |
||||
|
||||
#### 3.2.19 店员邀约明细 (doctor/pages/stat/index) |
||||
|
||||
| 事件名 | 触发元素 | 说明 | |
||||
| -------------------------------- | ---------- | ------ | |
||||
| click\_doctor\_stat\_type\_day | "日统计"切换 | 切换到日统计 | |
||||
| click\_doctor\_stat\_type\_month | "月统计"切换 | 切换到月统计 | |
||||
| click\_doctor\_stat\_start\_date | 开始日期picker | 选择开始日期 | |
||||
| click\_doctor\_stat\_end\_date | 结束日期picker | 选择结束日期 | |
||||
|
||||
*** |
||||
|
||||
## 四、埋点事件汇总 |
||||
|
||||
### 4.1 事件类型统计 |
||||
|
||||
| 事件类型 | 事件数量 | 说明 | |
||||
| ------------ | -------- | ------- | |
||||
| 页面浏览 (view) | 25 | 所有页面 | |
||||
| 点击事件 (click) | 115+ | 所有可点击元素 | |
||||
| **总计** | **140+** | - | |
||||
|
||||
### 4.2 用户类型定义 |
||||
|
||||
```typescript |
||||
enum UserType { |
||||
PATIENT = 2, // 患者 |
||||
PROMOTER = 3, // 地推/邀约专员 |
||||
PHARMACIST = 4, // 店员 |
||||
} |
||||
``` |
||||
|
||||
### 4.3 页面名称映射 |
||||
|
||||
```typescript |
||||
const PageNameMap = { |
||||
// 患者端 |
||||
'pages/start/index': '启动页', |
||||
'pages/tourists/index': '游客页', |
||||
'pages/work/index': '工作人员入口', |
||||
'pages/index/index': '患者首页', |
||||
|
||||
// 地推端 |
||||
'ground/pages/login/index': '地推登录', |
||||
'ground/pages/home/index': '地推首页', |
||||
'ground/pages/pharmacist/index': '店员列表', |
||||
'ground/pages/my/index': '地推我的', |
||||
'ground/pages/invite/index': '地推邀约码', |
||||
'ground/pages/stat/index': '地推邀约明细', |
||||
'ground/pages/changeNickname/index': '地推修改姓名', |
||||
'ground/pages/changeTel/index': '地推修改手机号', |
||||
|
||||
// 店员端 |
||||
'doctor/pages/login/index': '店员登录', |
||||
'doctor/pages/loginForm/index': '店员注册', |
||||
'doctor/pages/home/index': '店员首页', |
||||
'doctor/pages/patientList/index': '患者列表', |
||||
'doctor/pages/articleList/index': '教育列表', |
||||
'doctor/pages/article/index': '文章详情', |
||||
'doctor/pages/my/index': '店员我的', |
||||
'doctor/pages/invite/index': '店员邀约码', |
||||
'doctor/pages/stat/index': '店员邀约明细', |
||||
'doctor/pages/changeNickname/index': '店员修改姓名', |
||||
'doctor/pages/changeTel/index': '店员修改手机号', |
||||
|
||||
// 隐私协议 |
||||
'privacy/pages/policy/index': '隐私政策', |
||||
'privacy/pages/policy1/index': '用户协议', |
||||
} |
||||
``` |
||||
|
||||
*** |
||||
|
||||
## 五、埋点接口规范 |
||||
|
||||
### 5.1 接口信息 |
||||
|
||||
**请求地址:** `POST /app/common/common/report-behavior` |
||||
|
||||
**请求参数:** |
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 | |
||||
| -------- | ------ | -- | -------------- | |
||||
| pageName | string | 是 | 页面名称编码(埋点事件标识) | |
||||
|
||||
### 5.2 技术实现方案 |
||||
|
||||
1. **创建埋点工具类** (`utils/tracking.ts`) |
||||
|
||||
* 封装埋点上报方法,调用 `report-behavior` 接口 |
||||
|
||||
* 管理通用参数 |
||||
|
||||
* 处理埋点队列和批量上报 |
||||
|
||||
2. **页面混入 (Mixin)** |
||||
|
||||
* 在页面生命周期中自动上报页面浏览事件 |
||||
|
||||
* 统一处理页面参数 |
||||
|
||||
3. **点击事件拦截** |
||||
|
||||
* 使用自定义属性标记可埋点元素 |
||||
|
||||
* 统一监听并上报点击事件 |
||||
|
||||
### 5.3 代码示例 |
||||
|
||||
```typescript |
||||
// utils/tracking.ts |
||||
|
||||
/** |
||||
* 上报用户行为埋点 |
||||
* @param pageName 埋点事件标识,格式:page_action_element |
||||
*/ |
||||
export function reportBehavior(pageName: string) { |
||||
const app = getApp<IAppOption>() |
||||
|
||||
wx.ajax({ |
||||
method: 'POST', |
||||
url: '/app/common/common/report-behavior', |
||||
data: { |
||||
pageName, |
||||
}, |
||||
}).catch(() => { |
||||
// 埋点上报失败不阻塞业务流程 |
||||
}) |
||||
} |
||||
|
||||
/** |
||||
* 页面浏览埋点 |
||||
* @param pagePath 页面路径 |
||||
*/ |
||||
export function trackPageView(pagePath: string) { |
||||
const pageNameMap: Record<string, string> = { |
||||
// 患者端 |
||||
'pages/start/index': 'patient_start_view', |
||||
'pages/tourists/index': 'patient_tourists_view', |
||||
'pages/work/index': 'patient_work_view', |
||||
'pages/index/index': 'patient_home_view', |
||||
|
||||
// 地推端 |
||||
'ground/pages/login/index': 'ground_login_view', |
||||
'ground/pages/home/index': 'ground_home_view', |
||||
'ground/pages/pharmacist/index': 'ground_pharmacist_view', |
||||
'ground/pages/my/index': 'ground_my_view', |
||||
'ground/pages/invite/index': 'ground_invite_view', |
||||
'ground/pages/stat/index': 'ground_stat_view', |
||||
'ground/pages/changeNickname/index': 'ground_change_name_view', |
||||
'ground/pages/changeTel/index': 'ground_change_tel_view', |
||||
|
||||
// 店员端 |
||||
'doctor/pages/login/index': 'doctor_login_view', |
||||
'doctor/pages/loginForm/index': 'doctor_register_view', |
||||
'doctor/pages/home/index': 'doctor_home_view', |
||||
'doctor/pages/patientList/index': 'doctor_patient_view', |
||||
'doctor/pages/articleList/index': 'doctor_article_view', |
||||
'doctor/pages/article/index': 'doctor_article_detail_view', |
||||
'doctor/pages/my/index': 'doctor_my_view', |
||||
'doctor/pages/invite/index': 'doctor_invite_view', |
||||
'doctor/pages/stat/index': 'doctor_stat_view', |
||||
'doctor/pages/changeNickname/index': 'doctor_change_name_view', |
||||
'doctor/pages/changeTel/index': 'doctor_change_tel_view', |
||||
|
||||
// 隐私协议 |
||||
'privacy/pages/policy/index': 'privacy_policy_view', |
||||
'privacy/pages/policy1/index': 'user_agreement_view', |
||||
} |
||||
|
||||
const pageName = pageNameMap[pagePath] |
||||
if (pageName) { |
||||
reportBehavior(pageName) |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* 点击事件埋点 |
||||
* @param eventName 事件标识 |
||||
*/ |
||||
export function trackClick(eventName: string) { |
||||
reportBehavior(eventName) |
||||
} |
||||
``` |
||||
|
||||
```typescript |
||||
// 页面中使用示例 |
||||
import { trackPageView, trackClick } from '@/utils/tracking' |
||||
|
||||
const app = getApp<IAppOption>() |
||||
|
||||
Page({ |
||||
onLoad() { |
||||
// 页面浏览埋点需要在登录后上报 |
||||
app.waitLogin().then(() => { |
||||
trackPageView('pages/index/index') |
||||
}) |
||||
}, |
||||
|
||||
handleWork() { |
||||
// 上报点击事件 |
||||
trackClick('patient_home_work_click') |
||||
|
||||
wx.navigateTo({ |
||||
url: '/pages/work/index', |
||||
}) |
||||
}, |
||||
}) |
||||
``` |
||||
|
||||
### 5.3 埋点验证清单 |
||||
|
||||
实施完成后,需要验证以下埋点是否正常上报: |
||||
|
||||
* [ ] 所有页面的 view 事件 |
||||
|
||||
* [ ] 所有可点击元素的 click 事件 |
||||
|
||||
*** |
||||
|
||||
## 六、数据统计维度 |
||||
|
||||
### 6.1 用户行为分析 |
||||
|
||||
* **日活跃用户 (DAU)**:按用户类型统计 |
||||
|
||||
* **页面访问热度**:各页面PV/UV排名 |
||||
|
||||
* **用户留存率**:次日/7日/30日留存 |
||||
|
||||
* **使用时长**:平均使用时长、页面停留时长 |
||||
|
||||
### 6.2 功能使用分析 |
||||
|
||||
* **登录转化率**:各端登录成功率 |
||||
|
||||
* **项目切换频次**:用户切换项目的频率 |
||||
|
||||
* **功能使用分布**:各功能按钮点击率 |
||||
|
||||
* **搜索使用情况**:搜索功能使用频次 |
||||
|
||||
### 6.3 业务数据分析 |
||||
|
||||
* **邀约转化漏斗**:扫码 -> 注册 -> 绑定 -> 跳转 -> 入组 |
||||
|
||||
* **材料上传完成率**:各状态转化情况 |
||||
|
||||
* **内容互动数据**:文章阅读、点赞数据 |
||||
|
||||
* **邀约码使用**:邀约码查看、保存次数 |
||||
|
||||
*** |
||||
|
||||
## 七、附录 |
||||
|
||||
### 7.1 埋点事件汇总表 |
||||
|
||||
| 事件类型 | 事件数量 | 说明 | |
||||
| ------------ | -------- | ------- | |
||||
| 页面浏览 (view) | 25 | 所有页面 | |
||||
| 点击事件 (click) | 115+ | 所有可点击元素 | |
||||
| **总计** | **140+** | - | |
||||
|
||||
### 7.2 版本记录 |
||||
|
||||
| 版本 | 日期 | 说明 | |
||||
| ---- | ---------- | ------ | |
||||
| v1.0 | 2026-03-10 | <br /> | |
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,39 @@
@@ -0,0 +1,39 @@
|
||||
/** |
||||
* 埋点工具类 |
||||
* 用于上报用户行为数据到服务端 |
||||
*/ |
||||
|
||||
/** |
||||
* 上报用户行为埋点 |
||||
* @param pageName 埋点事件标识,格式:{role}_{page}_{action}_{element} |
||||
*/ |
||||
export function reportBehavior(pageName: string) { |
||||
|
||||
wx.ajax({ |
||||
method: 'POST', |
||||
url: '/app/common/common/report-behavior', |
||||
data: { |
||||
pageName, |
||||
}, |
||||
loading: false, |
||||
showMsg: false, |
||||
}).catch(() => { |
||||
// 埋点上报失败不阻塞业务流程
|
||||
}) |
||||
} |
||||
|
||||
/** |
||||
* 页面浏览埋点 |
||||
* @param pageName 页面埋点编码,如 'patient_start_view' |
||||
*/ |
||||
export function trackPageView(pageName: string) { |
||||
reportBehavior(pageName) |
||||
} |
||||
|
||||
/** |
||||
* 点击事件埋点 |
||||
* @param eventName 事件标识,如 'patient_start_click_pharmacist' |
||||
*/ |
||||
export function trackClick(eventName: string) { |
||||
reportBehavior(eventName) |
||||
} |
||||
Loading…
Reference in new issue