处理重复转化的第一步不是删数据,而是先判断重复发生在哪一层:是页面把同一动作发了多次,还是平台把同一次上报记了多次。保留修复前后记录的目的,是让“修复后转化下降”这类现象能被解释,而不是把旧记录直接覆盖。下面按两种常见条件给出取舍。
页面层重复的典型证据是:同一用户短时间内出现多条事件,时间戳接近,参数几乎一致,且都带有同一个会话标识。平台层重复的典型证据是:页面只上报一次,但报表里出现两条记录,或者回传接口被重试后平台各记一次。两者不能只靠“数量变多”判断,因为用户真实重复提交、页面刷新、回传重试都会造成相似现象。
可执行动作:在事件参数里加入一个由页面生成的一次性标识,并在上报前记录该标识。修复后对比带标识的记录与不带标识的旧记录,能区分“旧数据本来就重复”和“修复引入了新问题”。这个动作会直接决定下一步是改页面还是改回传逻辑。
如果重复只出现在一个表单或一个按钮入口,且占比不高,优先保留原始记录,只给它们补一个来源标记。这样做的好处是修复前后可以按标记分组对比,代价是报表短期内仍会偏高,需要在使用时排除标记组。
实施时保留三样东西:修复前的原始事件表、标记后的对照表、修复上线的时间点。假设某活动每天上报约一百条转化,其中约十条来自同一入口的重复触发;补标记后,这十条仍留在原始表里,但可以单独筛出。若修复后总转化从一百降到九十,就能判断减少的部分是否正好对应被标记的重复,而不是真实转化流失。
例外:如果重复已经影响到出价或预算分配,仅补标记不够,需要同时暂停依赖该事件的自动出价,等对照数据稳定后再恢复。
当重复出现在多个入口、且数量足以改变报表结论时,继续在原始表上补标记会让后续分析越来越难。此时应把修复后的数据写入新的记录集,旧记录集冻结不再追加,再用映射关系把两边对齐。
实施动作分三步:先冻结旧记录集并记录冻结时间;再把修复后的事件写入新记录集,字段与旧集保持一致;最后建立一张对照说明,写清哪些字段可直接比较、哪些字段口径已变。这个动作的结果是,修复前后的转化率不能直接相减,必须先按对照说明换算,否则会把口径变化误判为效果变化。
例外:如果平台侧无法区分新旧记录,只能拿到汇总值,那么隔离只能做到时间分段,此时应在报表注释里写明分段点,避免把跨段对比当作同一口径。
这些字段的作用不是让报表更复杂,而是让“数量变化”能对应到具体原因。缺少其中任何一项,修复后的下降都可能被误读为投放变差。
修复后转化数下降、重复记录归零、某入口上报量减少,这些都不能单独证明处理正确。它们还有别的合理解释:用户行为本身变化、投放素材更换、统计口径调整、上报延迟导致数据尚未到齐。要排除这些解释,需要同时看修复前后的入口分布、时间分布和未标记记录的变化。
一个稳妥的收尾动作是:在修复上线后保留一段并行观察期,期间新旧记录同时存在,只用于比对,不用于对外汇报。观察期结束后,再决定是否停用旧记录集。这样做的代价是短期内要维护两套数据,收益是任何异常都能回溯到具体记录,而不是只能看到一条无法解释的曲线。