- 小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
前端埋点一直没有做过的东西,刚好最近有时间研究一下。前端埋点主要是为了获取用户的基本信息、行为分析产品的使用情况,通过数据监控来进一步完善产品。
1.前端监控分类
前端监控可以分为:数据监控、性能监控和异常监控。
1.1 数据监控,主要指监听用户信息和行为。常见的有:
- PV:页面浏览量或点击量
- UV:访问某个站点或点击某条信息的不同IP地址的人数
- 用户在每一个页面的停留时间
- 用户通过什么入口访问该页面
- 用户在相应页面中触发的行为
1.2 性能监控,主要指监听前端的性能。常见的有:
- 不同用户、机型、系统等的首屏加载时间
- 静态资源整体下载时间
- 页面渲染时间
- 页面交互完成时间
1.3 异常监控,主要指产品代码可能会发生异常,虽然大部分都可以捕获,但有一些问题比较难以排查。常见的有: -Javascript的异常监控
- 样式丢失的异常监控
- 服务器请求的异常监控
2.前端埋点分类
前端埋点可以分为:手动埋点、可视化埋点和无埋点。
2.1 手动埋点
手动代码埋点比较常见,需要调用埋点的业务方在需要采集数据的地方调用埋点的方法。优点是流量可控,业务方可以根据需要在任意地点任意场景进行数据采集,采集信息也完全由业务方来控制。这样的有点也带来了一些弊端,需要业务方来写死方法,如果采集方案变了,业务方也需要重新修改代码,重新发布。
2.2 可视化埋点
可视化埋点是近今年的埋点趋势,很多大厂自己的数据埋点部门也都开始做这块。优点是业务方工作量少,缺点则是技术上推广和实现起来有点难(业务方前端代码规范是个大前提)。阿里的活动页很多都是运营通过可视化的界面拖拽配置实现,这些活动控件元素都带有唯一标识。通过埋点配置后台,将元素与要采集事件关联起来,可以自动生成埋点代码嵌入到页面中。
2.3 无埋点
无埋点则是前端自动采集全部事件,上报埋点数据,由后端来过滤和计算出有用的数据,优点是前端只要加载埋点脚本。缺点是流量和采集的数据过于庞大,服务器性能压力山大,主流的 GrowingIO 就是这种实现方案。