先给结论:不要急着删除重复事件,也不要把旧数据直接覆盖。正确顺序是先把“修复前”的原始触发记录冻结下来,再在修复后的新逻辑里加去重标识,最后用同一时间窗口对比两段数据。这样做的原因是,重复触发往往同时暴露计数口径和归因链路两个问题,只修一个会让后续判断失去参照。
重复触发通常有三种可区分的原因,处理前提不同:
页面层和回传层适合“保留旧记录 + 新增去重键”;归因层则要改写统计口径,而不是简单删事件。如果分不清类别就统一删除,后面无法判断修复是否真的生效。
假设一个线索表单在提交成功和感谢页加载时各触发一次转化,导致同一线索被计两次。修复前先做三件事:
lead_id或表单提交时间戳作为去重依据,同一键只允许上报一次。动作的结果会直接影响下一步:如果修复后同一用户标识在短时间内不再出现多条相同事件,说明页面层或回传层问题被控制住;如果仍然重复,说明去重键选错,或者重复来自归因层,需要转去核对渠道标记而不是继续改页面代码。
修复后转化总数下降是常见现象,但下降本身不能证明修复正确。还需要看三个对照:
只有“唯一用户数稳定、重复占比下降、渠道分布没有异常塌陷”同时成立,才适合把修复后数据作为新的统计基准。否则应退回保留状态,继续排查,而不是用新数据覆盖旧结论。
改写口径适用于:重复来自归因层,且业务上确实需要按渠道分别查看贡献。此时应保留修复前记录作为历史对照,同时在新口径里明确“同一业务结果只计一次”,并记录改写规则和生效时间。
退出旧记录适用于:修复前数据已经确认大面积污染,且无法通过去重键还原真实转化。例如重复事件没有稳定ID,时间戳也无法区分先后。这种情况下继续保留旧记录只会干扰判断,应明确标注废弃原因和废弃时间,再以修复后观察期数据重新建立基线。
两种选择的分界不是“旧数据好不好看”,而是“旧数据能否被可靠还原”。能还原就保留并标注,不能还原就退出并说明。
为了让下一次排查有据可依,建议在修复完成后固定三份材料:修复前原始明细、修复后观察明细、去重规则说明。规则说明里写清去重键、生效时间、影响范围。这样当转化数量再次异常时,可以先判断是重复触发回归,还是业务本身变化,而不是从头猜起。修复记录的价值不在于证明某次操作正确,而在于让下一次判断有可对照的起点。