You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 KiB
25 KiB
小程序埋点规划文档
一、项目概述
本项目是一个基于微信小程序的药品查询应用,包含三个主要角色端:
-
患者端 (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 编码 | 页面路径 | 说明 |
|---|---|---|
| 患者端 | ||
| patient_start_view | pages/start/index | 启动页 |
| patient_tourists_view | pages/tourists/index | 游客页 |
| patient_work_view | pages/work/index | 工作人员入口 |
| patient_home_view | pages/index/index | 患者首页 |
| 地推端 | ||
| 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 | 地推修改手机号 |
| 店员端 | ||
| 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 | 店员修改手机号 |
| 隐私协议 | ||
| privacy_policy_view | privacy/pages/policy/index | 隐私政策 |
| user_agreement_view | privacy/pages/policy1/index | 用户协议 |
3.2 点击事件埋点 (Click Event)
3.2.1 启动页 (pages/start/index)
该页面暂无点击事件埋点。
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 | "提交"/"重新提交"入组材料 | 上传入组材料 |
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 用户类型定义
enum UserType {
PATIENT = 2, // 患者
PROMOTER = 3, // 地推/邀约专员
PHARMACIST = 4, // 店员
}
4.3 页面名称映射
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 技术实现方案
-
创建埋点工具类 (
utils/tracking.ts)-
封装埋点上报方法,调用
report-behavior接口 -
管理通用参数
-
处理埋点队列和批量上报
-
-
页面混入 (Mixin)
-
在页面生命周期中自动上报页面浏览事件
-
统一处理页面参数
-
-
点击事件拦截
-
使用自定义属性标记可埋点元素
-
统一监听并上报点击事件
-
5.3 代码示例
// 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)
}
// 页面中使用示例
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 |