先给结论:不要删掉重复数据,也不要把新旧记录混在同一张表里。正确做法是保留原始触发流水,另建一张修复对照表,用同一事件标识把修复前后的状态并排存下来。这样既能向内部解释数据变化,也能在后续对账时区分“真实转化”和“重复计数”。
重复触发通常出现在两个位置:一是页面上的转化代码被多次加载,二是回传接口因为重试或并发被调用多次。两者的处理代价不同。
判断依据是看触发时间戳的间隔。如果两次触发间隔在毫秒级且参数完全一致,多半是同一次用户行为的重复上报;如果间隔几分钟且带有不同的会话标识,可能是用户真实操作了两次。前者适合去重,后者应保留。
面对重复触发,常见的两种做法是“就地覆盖”和“双表留痕”。选择哪一种,取决于你是否还需要回答“修复前是什么样”。
如果转化数据只用于当天的投放调整,且业务方明确不关心历史口径变化,可以只在写入前去重。动作是:在写入转化表之前,用事件标识加时间窗口做一次校验,已存在则丢弃。
代价是:一旦发现去重规则写错,之前被丢弃的记录无法还原,只能从上游日志重新回捞。如果上游日志保留周期短,这段历史就永久缺失。因此这种做法适合日志保留完整、且能接受短期口径波动的账户。
如果转化数据要用于结算、跨部门对账或长期效果复盘,应选择双表留痕。动作是:原始触发表只追加不修改,另建一张修复表记录每次处理的时间、规则版本、被判定为重复的事件标识,以及处理后的有效标识。
这样做的结果是,任何时候都能回答“这条转化在修复前计了几次、修复后计了几次”。代价是存储和查询成本上升,且需要维护规则版本号,否则多次修复后仍然说不清是哪一版规则改的。
假设一次重复触发来自表单提交按钮未置灰,用户连点三次,回传了三条记录。可以按以下顺序处理:
这个动作的关键影响在下一步:当你需要调整去重窗口时,只需在修复表新增一条规则版本记录,触发表不受影响。如果反过来直接改触发表,调整窗口就意味着重写历史,后续无法对比。
并非所有重复触发都要处理。以下情况应保留为独立转化:
把这些例外写进规则说明,比事后逐条解释更省成本。规则说明应包含:去重窗口长度、参与去重的字段、测试流量的识别方式。这些参数需要根据自身业务确认,没有通用阈值。
当投放端显示的转化数与后台记录不一致时,先不要改任何规则。按这个顺序核对:触发表总条数、修复表标记的重复条数、修复表输出的有效条数。三者对不上,说明修复表本身有遗漏;三者能对上但和投放端不一致,问题可能出在回传环节而非去重环节。
需要提醒的是,付费广告的转化数据与自然搜索的统计是两套机制,投放广告不构成自然排名的保证,两者对账时不要混用口径。平台当前的审核规则、界面和价格以官方说明为准,本文不涉及具体数值。
保留修复前后记录的价值,不在于让数字变好看,而在于当有人问“为什么这个月的转化数变了”时,你能拿出规则版本和原始流水,而不是只能回答“改过去重”。