结论先给:如果重复触发只发生在统计层,而订单、线索或签约在业务系统里仍然唯一,正确做法是保留原始触发日志,另建一条“去重后口径”,不要直接覆盖或删除原始记录;如果重复触发已经让业务系统产生重复订单、重复发券或重复计费,则要先冻结下游动作,再以业务主键为准回滚,修复记录必须同时留下修复前快照和修复后状态。两种情况的共同底线是:修复动作本身也要留痕,否则你无法判断后续转化下降是市场变化还是修复造成的。
很多团队一看到转化数异常翻倍,第一反应是去广告后台改转化设置或重新上传离线转化。这个动作在“统计层重复”时通常有效,但在“业务层重复”时会掩盖更严重的问题。可以用下面三个证据区分:
这三条证据里,只要“下游已执行”为真,就要按业务层重复处理。反之,三条都指向统计层,才适合用去重口径修复。
无论哪种情况,第一步都不是改数据,而是导出快照。快照要包含:原始事件ID、触发时间、用户标识、转化类型、上报来源、以及当时的业务主键。导出后把文件设为只读,记录导出时间和导出人。这一步的意义在于,修复之后你还能用同一批数据重新计算,验证修复是否只影响了重复部分。
假设某次活动期间有1000条转化事件,其中约200条是同一批线索在页面刷新后二次上报。此时不要直接删掉这200条。正确做法是保留原始1000条,另建一张去重表,按“用户标识+转化类型+时间窗口”取第一条,得到约800条。这个800是假设示例,用于说明比较方法,不代表任何真实项目的比例。之后所有报表都标明口径:原始口径1000,去重口径800。这样当销售反馈线索质量变化时,你能分清是线索总量变了,还是去重规则变了。
修复记录不是写一句“已去重”。它至少要让下一个接手的人知道四件事:
一个实际动作是:在报表里增加“口径版本”字段。每次修改去重规则就升一个版本,历史报表继续引用旧版本。这样当投放人员问“为什么昨天转化是300今天变成240”,你可以直接指出是口径版本变化,而不是投放效果突然变差。这个动作的结果会直接影响下一步:如果口径变化能解释差异,就不需要动广告出价;如果解释不了,才继续排查流量和素材。
反例是:重复触发来自广告平台回传的离线转化,而平台侧已经按它自己的规则完成了归因和计费。此时你在自己系统里去重,并不能改变平台已经记录的结果。如果继续按去重后的内部数据调整出价,就会出现内部看转化变少、平台看转化没变的分歧。这种情况下,修复重点不是内部去重,而是先确认平台回传链路是否重复提交,再决定是否暂停离线回传、改用其他转化动作作为优化目标。前提是你能拿到平台侧的转化记录并与内部主键对齐;如果拿不到,任何“已修复”的结论都只是内部口径,不足以支撑出价决策。
把原始事件数、去重后事件数、业务唯一转化数放在同一张表里对齐。三个数一致,说明链路健康;原始数大于去重数、去重数等于业务数,说明只是上报重复,修复统计口径即可;去重数仍大于业务数,说明还有业务层重复,必须回到订单或线索系统处理。完成对齐后,再决定是调整广告转化设置、修改页面触发逻辑,还是回滚下游动作。修复记录保留到下一次口径变更之前,不要因为当前数据看起来正常就删除快照。