结论先说:修复重复触发时,不要只保留“修复后”的干净数据,而要把修复前后两段记录都留在同一套可对照的日志里,并给每条转化记录加上“是否重复、由哪次触发、修复批次”的标记。只有这样才能在后续复盘时区分“真实转化减少”和“重复计数被消掉”这两种完全不同的现象。
重复触发最常见的来源是页面刷新、表单重复提交、回传接口被重试、或同一用户在短时间内完成两次相似动作。看到同一订单号或同一用户标识出现多条转化,最直接的反应是删掉多余的那条,让报表回到“正常”。
但这个动作会掩盖一个关键信息:重复是发生在修复之前还是之后。如果全部删除,你无法判断修复是否真的生效,也无法判断原来被高估的转化量到底有多少。更稳妥的做法是保留原始记录,只通过标记字段把它排除在常规统计之外。
不需要复杂系统,一张可核对的转化日志表就能支撑判断。建议至少包含以下字段,并保证修复前后使用同一套字段:
event_id:每次触发生成的唯一标识,重复触发时值不同。order_id 或 lead_id:业务侧唯一标识,用来识别同一笔转化。trigger_time:触发时间,精确到秒。source:触发来源,如页面提交、接口重试、回传回调。is_duplicate:标记是否为重复触发。fix_batch:修复批次编号,修复前的记录留空或标为 pre_fix。这样处理之后,常规报表只统计 is_duplicate = false 的记录,而修复前的历史仍可查询。
修复后转化数下降,可能有两种解释:一是重复计数被正确剔除,二是修复动作误伤了正常转化。区分方法是对比同一时间窗口内的业务侧数据,而不是只看广告后台的转化数。
假设某次修复在周二上线。可以取修复前三天和修复后三天,分别统计三项:广告后台转化数、业务侧有效订单数、被标记为重复的记录数。如果广告后台转化数下降,但业务侧有效订单数基本不变,且重复记录数明显减少,那么更可能是重复被消掉,而不是真实转化流失。反过来,如果业务侧有效订单数同步下降,就需要检查修复逻辑是否拦截了正常触发。
这里的关键是:广告后台的转化数只是回传结果,不能单独作为判断依据。业务侧的有效转化才是对照基准。
如果重复触发和正常转化共用同一个业务标识,例如同一用户在同一分钟内先提交了一次真实表单,又因为页面脚本问题重复提交了一次,而两次提交被合并成同一个 lead_id,那么“按业务标识去重”就会把真实的那次也一起消掉。
这种情况下,修复前后的记录虽然都保留了,但 is_duplicate 的标记会失真,后续对比也会得出错误结论。因此,去重逻辑必须能区分“同一业务动作的重复上报”和“两个独立业务动作”。如果做不到,就需要在修复前先补充触发来源字段,再决定哪些记录可以被标记为重复。
在改动去重规则之前,先把当前所有转化记录导出并冻结,保留原始字段和导出时间。然后选一个小流量渠道或一个广告组,只在该范围内启用新的标记规则,观察三到七天。
验证时重点看两件事:一是被标记为重复的记录是否真的对应同一业务动作;二是正常转化的 is_duplicate 是否保持为 false。如果小范围验证通过,再逐步扩大到其他渠道。这样即使修复逻辑有问题,也能在扩大范围前发现,而不是一次性把全部历史记录改乱。