先保留原始重复触发记录,再单独标记去重后的转化,不要直接覆盖或删除原始数据。这样做的原因是:重复触发既可能是埋点代码在页面内被加载两次,也可能是用户回退后再次提交,还可能是广告平台回传与站内统计各记一次。三种原因对应不同的修复动作,如果先把原始记录清掉,后续就无法区分是修复生效,还是某条回传链路本来就断了。
判断依据不是数量,而是事件里能区分个体的字段。假设某条转化事件带有订单号或线索编号,同一编号在短时间内出现两条记录,基本可以按重复触发处理;如果编号不同、时间间隔合理,则更可能是两次真实转化,不应合并。
实际操作上,可以先在事件表里加一列 raw_event_id,保留每次触发的原始行,再用订单号或线索编号做分组,另建一列 dedup_group 标记同组记录。这样修复前后都能回看:哪些是原始触发,哪些是后续被判定为重复的行。结果会直接影响下一步——如果重复行集中在同一 raw_event_id 前缀下,优先查页面代码;如果分散在不同来源参数下,优先查回传配置。
这三种处理方式不是递进关系,而是对应不同的业务前提。
只记录“修复完成”这个时间点不够,因为广告平台的数据回传和站内统计往往存在延迟。更稳妥的做法是保留修复前一段时间、修复动作本身、修复后一段时间的连续记录,并在每条记录上标注 fix_stage,取值如 before、during、after。
这样做的实际用途是:当修复后转化数下降时,可以判断下降是重复被消除,还是真实转化同时减少。假设修复前某天记录 100 条、其中约 20 条为重复,修复后某天记录 80 条,如果这 80 条与修复前的去重后数量接近,说明修复主要影响的是重复部分;如果明显低于修复前去重后的数量,就要检查是否误伤了正常触发。这个比较只用于定位方向,不能单独证明因果,因为投放量、落地页和受众本身也可能同期变化。
转化总数归零、回传量突然下降、平台报表与站内报表差距缩小,这些现象都可能有别的解释。总数归零可能是回传凭证过期或接口报错;回传量下降可能是投放暂停;两边差距缩小可能只是统计延迟错开。要确认修复正确,至少需要同时满足:原始记录仍可查、重复分组标记稳定、修复后真实转化的编号仍能正常回传。
如果只有“数字变好看了”而缺少原始记录支撑,就不应据此调整出价或预算。付费广告的转化数据会影响出价决策,而投放广告本身并不构成自然搜索排名的保证,两者是不同机制,修复转化记录时也不必把自然流量指标混进来判断。
这套顺序的核心不是追求报表立刻干净,而是让每一次判断都能回到修复前的证据。只要原始记录还在,即使第一次修复方向选错,也还能重新分组、重新比较,而不必从零重建转化数据。