2 清洗:6 步检查

结论:每条事件依次过 6 步检查,50 ms 内写入画像库;不通过的事件带着原因码丢弃。

这一步看哪些指标:清洗延迟、清洗通过率

丢弃的意思只有一个:事件进隔离区,保留 7 天,不进画像库。

flowchart TD S1["1 链接"] --> S2["2 字段"] S2 --> S3["3 迟到"] S3 --> S4["4 无效流量"] S4 --> S5["5 去重"] S5 --> S6["6 统一字段"] S6 --> C[("画像库")] S1 -. "unknown_link / disabled_link / bad_sig" .-> Q["隔离区 7 天"] S2 -. "invalid_field:字段名" .-> Q S3 -. "late" .-> P["只进报表"] S4 -. "ivt" .-> Q S5 -. "duplicate" .-> Q S6 -. "no_device_key" .-> Z["频次按 0 计"]
步骤检查原因码不通过时
2 字段imp_id 有值且不是未替换的宏;imp_time 是数字invalid_field:字段名(例:invalid_field:imp_time)进隔离区
3 迟到imp_time 距 received_at 不超过 300 slate只进报表,不更新用户卡片,不算丢弃
4 无效流量UA 不为空且不是爬虫;IP 和设备键没超过限流ivt进隔离区
5 去重同一链接、同一 imp_id,24 小时内只算一次duplicate进隔离区
6 统一字段时间统一为毫秒;取设备键no_device_key照常进报表;频次按 0 计

去重键和窗口

imp_id 是曝光的去重键,点击的去重键是 click_id。窗口是 24 小时。腾讯重发同一个 imp_id,只算一次。全站只在这里定义。

设备键

设备键就是“这台手机的编号”。我们按顺序取第一个有值的:OAID(安卓广告编号)、IDFA(苹果广告编号)、CAID(国内 iOS 替代编号)、MUID(腾讯给的编号)。频次和归因都按它算。没有设备键的事件记为 no_device_key(无设备键)。

哈希规则:腾讯给的编号已经是 MD5 哈希,直接用,不再哈希一次。ADX 给的是原始编号,按腾讯同样的方法哈希一次(同样的大小写和格式),再拿去比。这样同一台手机两边得到同一个设备键。

其他规则

规则做法
幂等同一事件收到两次,结果和收到一次一样。
背压队列积压时,接收端仍在 10 ms 内返回 204,事件先进队列。积压超过 1 s 告警。
期望字段链接可以设置期望字段(例如必须带 OAID)。缺少时事件照常通过,但在监控里标为 unexpected:字段名。

字段级原因码参照 Mixpanel Import API 的 strict 模式:每条失败记录都写明是哪个字段出错。

上一步:1 接收下一步:3 计算