用户行为收集与埋点
# 用户行为监控
# 前端埋点
所谓埋点是数据采集领域(尤其是用户行为数据采集领域)的术语,其实严格来说,我们之前对错误数据的采集,对性能数据的采集,都算是一种埋点。
埋点方案:
- 代码埋点:用户触发某个动作后手动上报数据,优点时准确性高,能满足自定义的场景,缺点有侵入性,和目标系统耦合大,不利于维护与复用。
可视化埋点:由可视化工具进行配置采集指定元素——查找 dom 并绑定事件,优点是简单,缺点是准确性较低,针对性和自定义埋点能力较弱。- 全埋点(无埋点):由前端自动采集全部事件并上报,前端也就没有埋点成本,由数据分析平台或后端过滤有用数据,优点是数据全面,缺点是数据量大,噪声数据多。
用户关键行为相关的埋点类型:
- 页面埋点:统计用户进入或离开页面的各种维度信息,如页面浏览次数(PV)、页面停留时间、路由切换等。
- 点击埋点:统计用户在应用内的每一次点击事件,如新闻的浏览次数、文件下载的次数、推荐商品的命中次数等
- 曝光埋点:统计具体区域是否被用户浏览到,如活动的引流入口的显示、投放广告的显示等。
# PV、UV
PV(page view) 是页面浏览量,UV(Unique visitor)用户访问量。PV 只要访问一次页面就算一次,UV 同一天内多次访问只算一次。
对于前端来说,只要每次进入页面上报一次 PV 就行,UV 的统计可以放在服务端来做
# 页面停留时长
用户进入页面记录一个初始时间,用户离开页面时用当前时间减去初始时间,就是用户停留时长。这个计算逻辑可以放在 beforeunload
事件里做。
# 页面跳转
利用 addEventListener()
监听 popstate
、hashchange
页面跳转事件。需要注意的是调用history.pushState()
或history.replaceState()
不会触发popstate
事件。只有在做出浏览器动作时,才会触发该事件,如用户点击浏览器的回退按钮(或者在Javascript代码中调用history.back()
或者history.forward()
方法)。同理,hashchange
也一样。
# Vue 路由变更
Vue 可以利用 router.beforeEach
钩子进行路由变更的监听。