核心做法是:在修复去重逻辑之前,先冻结一份“原始触发流水”,把每次触发的时间、来源标识和事件参数原样落库,再让修复后的去重规则只作用于统计层,而不是直接改写原始记录。这样你既能让报表恢复接近真实,又能在需要时回看修复前到底重复了多少次、重复来自哪里。下面以你手里的一份转化日志或事件表为对象,说明具体怎么落地。
重复触发通常有三种可区分的原因,处理方式并不相同:
只有先分类,才能确定去重键。用订单号去重会误伤没有订单号的线索类转化,用“用户+时间窗口”去重又可能把真实的二次购买合并掉。因此原始流水必须保留全部字段,去重只作为一层可重算的视图。
具体动作是:新建一张只追加、不更新的原始事件表,字段至少包含事件 ID、业务去重键(订单号或线索 ID)、来源、事件时间、入库时间、上报方、原始参数。任何修复都不删改这张表。
然后在它之上建一层去重视图或汇总任务,规则写成可配置、可重跑的形式。修复前用旧规则跑出的数字标记为“修复前口径”,修复后用新规则跑出的标记为“修复后口径”。两份结果并存,而不是覆盖。
这样做的直接结果是:当你发现修复后转化数从某个值降到另一个值时,能立刻回答“差额来自哪几条记录”,而不是只剩一个无法解释的差值。下一步无论是向业务方解释、还是调整出价,依据都来自同一份可追溯的流水。
假设某活动一天收到 100 条转化事件,其中 12 条是同一订单在页面刷新后重复上报。旧规则不去重,报表显示 100;新规则按订单号去重,报表显示 88。
如果只保留 88,你无法判断这 12 条是“重复”还是“被误删的真实转化”。保留原始流水后,可以逐条核对这 12 条的订单号是否与已计入的某条相同:相同则确认为重复,不同则说明去重键选错,需要换键重跑。这个核对动作会直接决定下一步是沿用当前规则,还是回到原始表更换去重维度。
需要提醒的是,修复后数字下降本身不能单独证明修复正确。抓取量、请求量或事件量归零或下降,也可能来自上报中断、页面改动或回传延迟,而不只是去重生效。要区分这些解释,就看原始流水里对应时间段是否仍有新记录写入:有写入而统计变少,才更支持“去重起作用”;没有写入,则要先排查上报链路。
这三项固定下来后,任何一次口径调整都能被复核,而不是依赖记忆。对 PPC 广告而言,转化口径直接影响成本类指标的解读,因此宁可多留一层原始数据,也不要在源头直接改数。
可执行的顺序是:第一步导出并冻结当前原始事件,确认字段完整;第二步在新层实现去重规则,保留旧口径结果;第三步用差异清单对账,确认差额来源合理;第四步才把新口径接入日常报表,并保留随时回退到旧口径的能力。
跳过第一步直接改去重逻辑,最常见的后果是:数字变了,但没人能说清变的是重复还是真实转化,后续优化出价时只能凭猜测。保留修复前后记录的价值,正在于让每一次口径变化都有据可查。