数据产品设计:一文看懂埋点技术

数据产品设计:一文看懂埋点技术
最新回答
寄信给风

2026-10-24 10:11:32

埋点技术是APP数据采集的主要方式,分为前端埋点和后端埋点,前端埋点又包括代码埋点、可视化埋点和“无埋点”三种技术。以下是详细介绍:

一、前端埋点技术
  • 代码埋点

    出现时间:出现时间很早,Google Analytics年代就已有类似方案。

    提供方案的服务商:

    百度统计

    友盟

    TalkingData

    Sensors Analytics(提供iOS、Android、Web等主流平台方案)

    技术原理:在APP、界面初始化时,初始化第三方数据分析服务商的SDK,在某个事件发生时调用SDK里的数据发送接口发送数据。例如统计APP里某个按钮的点击次数,在按钮的OnClick函数里调用SDK数据发送接口。

    优点:

    可精确选择发送数据时机。

    方便设置自定义属性、自定义事件,传递丰富数据到服务端。

    缺点:

    埋点代价大,每个控件埋点都需添加代码,工作量大且需技术人员完成。

    更新代价大,更新埋点方案要改代码并通过应用市场分发,部分用户不更新APP导致埋点代码无法更新。

    存在数据传输时效性和可靠性问题,需在后端收集数据解决。

  • 可视化埋点

    演进原因:代码埋点代价大,参考软件思维用可视化交互手段代替写代码;代码埋点更新需等待APP更新,参考游戏做法把核心代码和配置、资源分开,在APP启动时通过网络更新配置和资源。

    提供方案的服务商:

    Mixpanel(开源了iOS和Android端SDK源代码)

    TalkingData

    诸葛IO

    iOS和Android平台:

    以Mixpanel为例,使用简单,点击支持的控件类型实例,在弹出窗口设置点击按钮的发送事件,点击Deploy按钮下发配置。所有嵌入Mixpanel SDK的APP在启动时或定时获取配置,用户点击按钮时发送对应事件到后端。

- Web端:以Sensors Analytics方案为例,使用者在网页内引入其JavaScript SDK代码,从后台可视化埋点管理界面跳转到网站界面进入可视化埋点模式,点击网页html元素,SDK获取元素信息,设置元素与事件关联后保存配置信息。用户普通模式访问网页时,SDK加载配置信息,界面元素被点击时收集事件。- 优点:解决了代码埋点的埋点代价大和更新代价大两个问题。- 缺点: - 功能覆盖有限,不是所有控件操作都能定制。 - 不能自己设置属性,只能上传SDK自动收集的默认属性和通过代码设置的全局公共属性。 - 作为前端埋点方案,未解决传输时效性和数据可靠性问题。
  • “无埋点”

    出现时间:出现较早,Heap在2013年推出技术方案,百度在2009年用无埋点方案分析页面元素点击情况,2011年百度质量部推出录制安卓App全部操作找崩溃原因的服务。

    与可视化埋点区别:可视化埋点通过界面配置收集哪些控件操作数据;“无埋点”先尽可能收集所有控件操作数据,再通过界面配置哪些数据需要分析。

    优点:

    解决数据“回溯”问题,从部署SDK时就开始收集数据。

    可自动获取启发性信息,如界面上每个控件被点击的概率,哪些控件值得进一步分析。

    缺点:

    未解决覆盖功能范围、灵活自定义属性、传输时效性和数据可靠性欠佳的问题。

    全部搜集控件事件会给服务器和网络传输带来更大负载。

二、前端采集与后端采集对比
  • 以京东订单提交页面为例

    前端埋点获取数据:可视化埋点可采集到某时某刻某人提交订单;前端代码埋点可拿到订单金额、商品名称、用户级别等前端有记录的信息。

    后端埋点获取数据:可拿到商品库存、商品成本、用户风险级别等只在后端有记录的信息。

  • 前端埋点优缺点

    优点:可视化埋点使用、部署简单。

    缺点:数据获取能力比代码埋点弱,拿不到未在前端保存的信息。

  • 后端埋点优缺点

    优点:

    实时收集,数据准确,无延时上报。

    改变埋点时,上报数据立即改变。

    能收集不在APP内发生的行为,如统计从其他APP引流的安装量。

    缺点:

    不能收集不需要请求服务器的数据。

    用户没联网时不能采集数据。