4. 埋点事件定义规范:事件命名规范、属性命名规范、枚举值规范

好,咱们进入埋点方案里最「磨人」的一环——定义规范。

说实话,我见过太多团队,埋点代码写得飞起,结果上线三个月后,数据对不上、指标算不清、新同学看不懂。为什么?说白了,就是一开始没定好规矩。

这一节,我把我在风控领域摸爬滚打这些年,沉淀下来的命名规范和枚举值规范,掰开了讲给你听。

4.1 事件命名规范:一眼看懂,别猜

事件命名,我个人的习惯是「三段式」:领域_动作_对象

你想想看,一个事件如果叫 click_btn,三个月后你还能记得这是哪个页面的哪个按钮吗?反正我不行。

推荐格式:

{业务域}_{行为类型}_{具体对象}

例如:trade_submit_orderrisk_rule_triggereduser_login_success

我在项目中遇到过一件事:有个同事把「用户点击风控申诉按钮」埋成了 click_appeal。结果后来产品要区分「申诉页面的点击」和「申诉结果的点击」,完全分不开。嗯,这就是命名的坑。

几个硬性规则:

  • 全部小写,单词间用下划线连接
  • 动词用过去式(如 submittedtriggered
  • 不要带版本号(如 v2_new
  • 长度控制在 40 个字符以内

我的小技巧:命名前先查一下已有事件列表,避免重复。我曾经因为没查,埋了两个语义一样但名字不同的事件,最后数据清洗时差点崩溃。

4.2 属性命名规范:统一、可扩展

属性是事件的「血肉」。事件名定了,属性如果乱写,数据质量一样完蛋。

我建议属性命名遵循 「驼峰式」,并且加上类型前缀。为什么?因为下游ETL同学看到属性名就能知道数据类型,不用再翻文档。

类型 前缀 示例
字符串 str_ str_orderId
数值 num_ num_amount
布尔 is_ / has_ is_riskHit
时间 ts_ ts_created
枚举 enum_ enum_riskLevel

举个例子,一个「风控规则触发」事件,它的属性可能是这样:

{
  "event": "risk_rule_triggered",
  "properties": {
    "str_ruleId": "R001",
    "str_ruleName": "高频交易拦截",
    "num_score": 85,
    "is_blocked": true,
    "ts_triggered": 1695000000000,
    "enum_riskLevel": "high"
  }
}

你看,一眼就知道每个字段是什么类型、什么含义。这就是规范的力量。

注意:不要用 null 或空字符串表示「无」。我建议统一用 ""0,或者干脆不传。否则下游处理时,null"" 的语义容易混淆。

4.3 枚举值规范:别让「其他」成为黑洞

枚举值,是埋点里最容易出幺蛾子的地方。

我记得有一次,一个「风控决策结果」字段,有人填了 pass,有人填了 PASS,还有人填了 通过。你猜最后数据清洗花了多久?整整两天。

我的建议:

  • 全部使用小写英文,下划线连接
  • 每个枚举值必须有明确的定义文档
  • 预留一个 unknown 兜底,但不要滥用

举个例子,风控等级枚举:

enum RiskLevel {
  low      // 低风险,正常放行
  medium   // 中风险,需二次验证
  high     // 高风险,直接拦截
  critical // 严重风险,人工介入
  unknown  // 未知,兜底值
}

这里有个坑:unknown 只能用于「确实无法判断」的情况,不能因为偷懒不传值就填 unknown。我曾经在项目里发现,某个接口因为异常没返回结果,结果所有事件都变成了 unknown,导致整个风控报表失效。嗯,后来我们加了个告警:unknown 占比超过 5% 就报警。

枚举值变更流程:

  1. 先在文档中新增枚举值定义
  2. 通知所有下游消费方(ETL、报表、算法)
  3. 再上线代码
  4. 观察一周,确认无异常后,清理旧值

4.4 知识体系总览

下面这张图,是我梳理的埋点事件定义规范的核心逻辑。你可以把它当作一个检查清单,每次新建事件时对照着走一遍。

埋点事件定义规范核心逻辑 事件命名 领域_动作_对象 属性命名 驼峰 + 类型前缀 枚举值 小写英文 + 文档化 高质量、可复用的埋点数据 下游消费零歧义,清洗成本降低 60% 检查清单:命名唯一?类型明确?枚举文档化?下游已通知?

最后说一句:规范不是用来束缚你的,是用来保护你的。你想想看,如果每个事件都按这个标准来,后续的数据治理、指标回溯、甚至算法建模,都会顺畅很多。

我在团队里推行这套规范时,一开始也有人嫌麻烦。但三个月后,当别人还在为「这个字段是啥意思」吵架时,我们的数据已经稳定跑了好几个风控模型。嗯,这就是规范的价值。


公众号:蓝海资料掘金营,微信deep3321