先给结论:不要直接删掉重复转化,也不要只保留一条。正确做法是把修复前的记录标记为“历史重复”,把修复后的记录标记为“修复后有效”,两套数据都留在同一张明细表里,用状态字段区分。这样既能避免报表把同一线索算两次,又能在后续对账、申诉或复盘时还原当时的真实情况。下面按两种条件展开:重复只发生在统计层,还是已经影响到回传和出价。
如果重复触发来自页面刷新、按钮连点或表单重复提交,但回传给百度的转化请求本身没有重复,那问题主要在报表口径。此时不要急着改动投放,先把明细导出来,按“线索唯一标识 + 触发时间”排序,看重复记录是否集中在某个时间段或某个入口。
实际动作:在明细表新增三个字段——record_status(历史重复 / 修复后有效)、fix_batch(修复批次号)、first_seen(首次触发时间)。把修复前抓到的重复行统一标为“历史重复”,修复后重新抓取的行标为“修复后有效”。
这个动作的结果会直接影响下一步:如果隔离后发现重复集中在某一个落地页,下一步只需检查该页的提交按钮和跳转逻辑;如果分散在多个页面,说明问题在公共脚本层,应该先处理公共埋点,而不是逐页改。注意,报表里的转化数下降不等于修复成功,也可能只是统计窗口还没跑完,或者部分回传延迟,需要等一个完整周期再判断。
如果重复记录已经通过转化回传进入百度,影响的是出价模型和成本核算,处理方式不同。这时不能只改本地表,还要保留回传前后的两份记录,否则你无法解释为什么某天的转化数突然变化。
具体做法是:
这样做的依据是:回传数据一旦发出,平台侧可能已经参与过出价,事后删记录并不能撤销当时的影响。保留双份记录,才能在成本异常时判断是重复回传造成的,还是流量本身变化造成的。
假设一个例子:某条线索在修复前被回传两次,修复后只回传一次。如果直接删掉重复那条,当天转化数会从 3 变成 2,但花费没变,单条成本看起来反而升高。保留双份并标注状态后,你能清楚看到“修复前 3 条中含 1 条重复、修复后 2 条均为有效”,成本变化的原因就落在重复回传上,而不是误判为流量变贵。这是假设的比较方法,不是真实项目数据。
判断属于条件一还是条件二,看三个证据:
如果只有报表重复、回传日志正常,按条件一处理;如果回传日志本身就重复,按条件二处理。两者都出现时,以回传日志为准,因为它的影响更靠后,修复成本也更高。
修复动作做完,不要立刻宣布结束。先复查:第一,新产生的记录是否还有重复,连续观察一个完整转化周期;第二,历史重复标记是否被误删,确认明细表里仍能查到修复前的行;第三,报表口径是否已经切换到“修复后有效”,避免新旧混用。
如果复查中发现重复仍在产生,说明修复没有落到触发源头,此时应该回到条件一的排查方式,而不是继续加标记。如果重复停止但转化数明显低于修复前,也要区分是重复被去掉后的正常回落,还是修复误伤了真实提交,这需要对比修复前后同一入口的提交量,而不是只看总数。
例外只有一种:重复记录从未进入回传,且平台侧没有任何相关数据,同时你确认这些记录不会被用于对账或申诉。即使如此,也建议先归档再删除,而不是直接清空。因为一旦后续需要解释某天的数据波动,没有修复前记录,就无法区分是重复被清理还是线索真的减少。对手机百度SEM来说,转化记录既是投放依据,也是和后续线索质量核对的起点,保留修复前后两份,比事后补证据成本低得多。