不少同学在做毕业设计时,把精力全放在功能能否跑通上,直到写论文的数据分析或系统评估章节,才发现手里没有可用的用户行为数据,只能凭印象描述系统效果。其实只要在开发阶段顺手加上埋点,就能为后续论证积累材料,成本并不高。
埋点之前先想清楚要回答什么问题,比如核心功能的使用频率如何、用户在哪个步骤放弃操作、不同入口带来的访问量差异。目标不明确就会采集一堆无用字段,后期清理反而更费时间。一般控制在三到八个关键事件即可。
事件模型设计要统一规范。事件名建议采用“模块_动作”的格式,例如 search_submit、order_cancel,便于聚合同类行为。每个事件都带上公共属性:匿名化的用户标识、时间戳、页面路径、来源渠道和客户端版本;业务属性按需追加,比如搜索场景只记录关键词长度与筛选条件数量,不记录原文,减少隐私风险。
上报实现上,前端可先在内存或本地缓存中暂存记录,按条数或时间窗口批量发送,减少请求次数。页面关闭时的最后一笔数据可以用 navigator.sendBeacon 发出,避免请求被浏览器中断。网络异常要有重试与本地补偿机制,服务端则先写入原始日志表,再做清洗和聚合,保留可回溯的原始数据。
隐私与合规不能忽略。手机号、身份证号、密码、聊天内容等敏感信息一律不采集,用户标识做匿名化处理,并在系统说明中告知采集范围与用途。这既是规范要求,也是答辩时容易被追问的点。
正式使用前,逐条触发事件并核对上报内容,维护一份埋点表,记录事件名、触发时机、属性字段和责任人。论文中写清指标定义、统计口径和时间范围,数据分析的结论才有说服力,也不会因为口径含糊被质疑。