埋点 SDK 怎么讲

使用方式

一句话定性

埋点 SDK 不要讲成“封装一个 track() 方法”,而要讲成“把业务行为稳定地翻译成一套可分析、可治理、可长期演进的数据语言”。

推荐主线

我讲这条线时,通常只讲三件事。第一是事件模型,要尽量从零散 UI 事件往稳定业务事件或领域事件收敛。第二是 SDK 分层,包括事件定义、公共上下文、采集方式和上报链路。第三是数据质量,也就是 schema 校验、去重、调试能力和灰度对账这些治理机制。

最容易被追问的 3 个点

  • 为什么你强调领域事件,而不是只埋 UI 事件
  • 埋点和监控 SDK 的边界怎么分
  • 数据质量怎么保证,不然埋了也没法分析

深挖点 1:为什么强调领域事件

我会说,因为 UI 很容易变,但业务语义更稳定。同一个业务动作,今天可能是点按钮,明天可能是快捷键,后天可能是自动触发。如果埋点只绑在 UI 上,交互一改数据就断;如果尽量对齐“订单已提交”“任务已完成”这种业务事件,历史数据和跨端口径会稳定很多。

深挖点 2:SDK 分层到底怎么拆

我一般会拆成四层。第一层是事件定义层,负责事件名规范、字段 schema、版本控制和分类。第二层是上下文层,自动补页面、来源、用户、设备、实验桶、会话这些公共字段。第三层是采集层,支持手动埋点和必要的自动采集。第四层是上报层,也就是队列、批量、重试、采样和 sendBeacon 兜底这些 transport 能力。这样业务接入简单,但内部仍然可扩展、可治理。

深挖点 3:数据质量怎么保证

埋点最怕的不是少一点,而是看起来很多,实际上不能分析。所以我会补几件事:schema 校验、必填校验、事件去重、开发环境调试面板、灰度阶段抽样对账。否则最后平台里会堆很多名字相似、字段不一致、语义模糊的数据,业务根本不敢用。

如果面试官追问“埋点和监控 SDK 有什么区别”

我会说,监控 SDK 主要看系统健康、错误和性能,埋点 SDK 主要看业务行为和转化漏斗。它们在队列、上报、重试这类底层能力上可以复用,但事件模型和分析视角不能混,不然最后谁都看不清。

最后一句收口

所以如果让我收一句,我会说埋点 SDK 的价值不在于把事件发出去,而在于让后面的分析平台、告警平台和业务决策真正建立在一套稳定可信的数据语义上。

关联入口