先给结论:不要急着删掉重复的转化记录,也不要把它们全部当成真实转化继续用。正确做法是先在转化事件链路里加一个可追溯的标记,把修复前后的数据分层保存,再用同一时间窗口对比修复前后的差异。这样既能保住历史,也能让后续的出价和复盘有干净依据。
转化事件被重复触发,通常不是单一原因。常见的有三类:页面上的转化代码被多次加载,比如同一段脚本被模板和插件各引入一次;用户完成转化后刷新或返回,触发条件再次满足;再就是表单提交、按钮点击和跳转页各埋了一次,导致同一次行为被记成多次。
区分原因的意义在于,修复方式完全不同。如果是代码重复加载,改的是部署位置;如果是用户重复操作,改的是触发条件或去重逻辑;如果是多埋点重叠,改的是事件定义。先确认真实原因,再决定保留哪些记录,否则很容易把正常行为误判为异常。
修复动作一旦执行,原始数据就可能被改写或停止写入。更稳妥的顺序是:先导出或复制一份修复前的转化明细,保留时间戳、来源、事件名称和对应订单或线索编号;再确认这些字段足以还原同一次转化被记了几次。
归档时至少保留两个版本:原始版本记录当时系统实际收到的每一次触发,清洗版本按同一用户或同一业务编号去重后只留一条。两个版本分开存放,后续做对比时才不会互相污染。
一个可执行的动作是:在转化事件里增加一个来源标记,例如用 source=before_fix 和 source=after_fix 区分。这样即使修复后仍有少量重复,也能一眼看出它属于哪个阶段,而不是只能靠日期猜测。
面对重复触发,通常有两种看似都合理的做法。
选择条件可以简化为:如果修复已经验证有效,并且团队只需要一个稳定的转化口径,做法一更省事;如果修复还在观察期,或者重复触发涉及多个渠道,做法二更安全。不要为了图省事直接删除原始记录,删除之后就无法回答“修复前到底重复了多少次”这个问题。
保留两份记录之后,下一步是用同一时间窗口做对比。假设修复发生在某一周的周三,那么可以取修复前完整一周和修复后完整一周,比较同一转化事件的触发次数、去重后次数和最终业务确认的转化数。
如果修复后触发次数明显下降,但去重后次数与业务确认数接近,说明修复方向基本正确。如果触发次数下降,去重后次数也同步下降,且低于业务确认数,就要怀疑修复是否误伤了正常触发。这个判断不能只看请求量或抓取量归零,因为归零也可能来自代码未加载、页面未上线或统计口径变化,不能单独作为处理正确的证据。
对比结果会直接影响下一步:确认修复有效后,再决定是否用清洗版本替换原有出价依据;如果仍有偏差,就先保留双版本,继续缩小重复触发的来源范围。
重复触发不是一次性问题。每次调整页面、更换统计代码或新增表单时,都可能再次出现。建议把三件事固定下来:转化事件必须带阶段标记;每次修复前先导出原始明细;修复后至少观察一个完整业务周期再切换数据口径。
这样做的好处是,无论后面是复盘投放成本,还是核对销售线索,都能说清楚一条转化记录是修复前还是修复后产生的,以及它是否已经被去重。记录保留得清楚,后续的取舍才有依据,而不是靠猜。