核心做法是先冻结原始数据,再在事件层做去重修复,并保留修复前后的两套记录与一份变更说明。不要直接覆盖原始回传,否则你无法判断转化虚高是重复触发造成的,还是本来就有两批真实用户。
重复触发通常来自三个不同位置,处理方式并不一样。页面层重复:表单提交按钮被连续点击,或提交成功后页面刷新又执行了一次回传。链路层重复:回传请求超时后系统自动重试,而第一次其实已经成功。归因层重复:同一次转化被多个渠道或多次点击分别记录,看起来像两次转化。
区分方法是看重复记录的时间间隔和标识。间隔在数秒内、且带有相同订单号或相同事件ID的,多半是前两类;间隔较长、标识不同但用户路径重叠的,更可能是归因层重复。这个判断决定了你该改代码、改重试策略,还是改归因口径。
以下为假设情境,仅用于说明记录方法。某账户某日回传了200次“提交成功”事件,运营怀疑其中约一半是重复触发。技术同事在回传前加了事件ID去重,修复后当天回传降到100次。
直觉结论是“原来有一半是假的”。但这个结论不成立。回传量减半还有别的合理解释:去重逻辑把标识生成规则写错,把本应不同的事件判成了同一个;或者修复上线时正好赶上投放暂停、落地页改动,真实转化本来就下降了。100这个数字本身不能证明修复正确。
可执行的动作是建立三份并存的记录,而不是用新数据替换旧数据。
完成这三份记录后,下一步才有依据:把修复前后的转化数按同一时间口径对齐,观察差异是集中在修复那一刻,还是从更早就开始偏移。如果差异集中在某个渠道或某个页面,说明问题出在那一处,而不是全局去重逻辑。
要判断“重复触发被修掉了”还是“真实转化被误删了”,可以核对几组证据。
这些证据的作用是让结论可被复核。只看总数变化,无法排除投放节奏、页面改动等同时发生的因素。
修复上线不是终点。把变更说明里的时间点标注在报表上,之后一段时间内对比修复前后同一口径的转化成本,判断去重是否改变了优化决策。如果去重后转化数下降但订单数不变,说明之前的高转化是记录问题,出价和预算不必因此大幅调整;如果订单数同步下降,才需要重新检查落地页和人群。
同时保留一份回滚方案:去重规则一旦发现误判,能切回原始回传并重新处理历史数据。没有回滚路径的修复,等于把一次判断错误变成永久的数据缺口。
最终要留下的不是“修复完成”这个结论,而是一条能追溯的链路:原始事件、去重依据、变更时间、核对证据。有了这条链路,下次再出现转化数异常时,你不必从零猜测原因。