埋点方案

基于目前的了解,主流的埋点方案有三种:

  1. 代码埋点:国内老牌厂商的方案,如友盟、百度统计,大型云服务商 (如阿里云、华为云) 也有提供。
  2. 可视化埋点 (无痕埋点):通过可视化工具生成配置,在前端解析配置完成埋点,美团正在使用的方案,ref1ref2
  3. 无埋点:监控所有事件,由后端过滤出有用信息,百度有相关产品,但是年久失修,ref

由于只有代码埋点支持后端实现,其他埋点方案中语境仅指向前端。

代码埋点

代码埋点,即通过代码主动上报行为。总体优势是黑盒程度最低,在内容上最灵活,总体劣势是对现有代码侵入性非常强,前后端维护都不便。

代码埋点由分两种,客户端埋点和服务端埋点。

客户端埋点优势明显,可以更轻松地带上用户的路径,劣势同样明显,手机 App 更新埋点需要通过客户端更新,成本高。

服务端埋点优势在于方便更新,不需要更新客户端,同时运行在服务端也可以更好的跟一些业务集成,劣势在于无法收集用户的路径。

可视化埋点

通过可视化的工具生成配置,客户端从服务端请求配置,根据配置自动完成埋点。

优势:

  1. 对代码侵入性弱,方便维护 (仅需引入 sdk)
  2. 方便分发,配置由服务端分发,随时更改无需对应用进行更新
  3. 迭代快速

劣势是由于黑盒,无法高度定制,可能无法采集到所需的全部信息,比如路径

全埋点

监控所有事件的埋点方案,由后端过滤出有用信息。

优势:

  1. 无需前端进行特定埋点,开发便利。
  2. 可收集全部行为数据。

劣势是需要后端处理大量数据,可能会带来性能和存储问题。

我的方案

目前来讲,我希望的方案是前端可视化埋点,后端代码埋点结合的方式。

对于可视化埋点有开源自建方案 Mixpanel,公司自 2009 年成立,之后将方案开源,同时也做了商业化方案,看起来相当可靠,提供了 flutter 和 web 的 sdk,其中 flutter sdk 支持 web,应该能满足当前产品的技术栈,同时海外业务可以直接上他家 SaSS 产品就不用自建了。

相关可视化埋点的 SaSS 产品有神策数据,同样支持 flutter 但不清楚是否支持 flutter web,公司信息显示其较为可靠,比起 Mixpanel 更有吸引力的点是,他的埋点方案宣称是「可视化全埋点」,如果能结合两者的优点,则开发成本可以降的很低。

后端的代码埋点就不是前端的事情了,在此略过。


埋点方案
http://blog.akr.moe/tracking-scheme/
作者
Akara Chen
发布于
2023年8月21日
许可协议