先给结论:不要把去重当成删除重复记录,而应把第一次触发标记为有效转化,把后续触发保留为重复事件,并单独记录修复动作和生效时间。这样既能避免转化数虚高,又能在渠道对账、回传排查和后续归因时还原修复前后的差异。
同一个转化在报表里出现两次,原因可能完全不同。你要先拿一条具体记录,沿时间顺序看它经过了哪些环节:页面上的转化动作是否被多次触发,服务端是否收到多次请求,渠道回传是否重复发送,报表是否把同一事件按不同维度展开。只有定位到重复发生的层级,才能决定保留哪些字段。
常见可区分原因有三类。第一类是前端重复触发,例如按钮被连点、页面刷新后再次执行、同一会话内多次提交。第二类是服务端重复接收,例如请求重试、消息队列重复投递、回调被多次调用。第三类是渠道侧重复归因,例如同一用户在不同设备或不同点击标识下被记成两次转化。三类原因的修复动作不同,记录重点也不同。
这一步的实际动作是:先选一条重复记录,把事件标识、发生时间、来源渠道、设备或会话标识、请求来源、处理状态列出来。结果会直接影响下一步——如果重复只出现在前端,就优先改触发条件;如果服务端收到多次,就要加幂等处理;如果渠道侧重复,则要检查归因窗口和点击标识的传递。
面对重复事件,通常有两种看似合理的做法:一种是直接删除重复记录,只留一条;另一种是全部保留,让后续分析自己处理。两者都成立,但适用条件不同。
更稳妥的做法是折中:保留修复前的重复记录,但给每条记录增加状态字段,例如“有效”“重复”“已修复”。修复动作本身也要留痕,包括修改了什么条件、何时生效、影响哪个渠道。这样既不会让转化数继续虚高,也不会在需要追溯时无据可查。
假设你手里有一条转化记录,同一用户在同一渠道下出现了两次,时间相隔很短。可以按下面顺序处理。
这个方案的关键动作是“先标记、后修复、再对账”。标记让重复事件不再进入有效转化口径;修复让后续不再产生同类重复;对账则验证修复是否只影响了重复部分,而没有误伤正常转化。如果对账后发现有效转化也减少了,说明修复条件可能过宽,需要回到触发条件重新检查。
为了让记录在修复后仍然可用,至少保留以下字段:事件标识、发生时间、渠道来源、转化动作名称、请求来源、处理状态、修复批次、修复生效时间。字段不必多,但要让后来的人能看懂一条记录为什么被标为重复。
注意一个容易误判的现象:修复后转化数下降,并不自动证明修复正确。下降也可能来自渠道流量变化、归因窗口调整、页面加载失败或统计口径变化。要排除这些解释,可以把修复前后的同一渠道、同一转化动作、同一时间范围分别对比,并检查重复记录数量是否与下降幅度大致对应。如果对不上,就不能把下降全部归因于去重。
如果重复发生在回传环节,只改自己这边的记录还不够。你需要确认渠道侧是否也收到了重复转化,以及渠道是否已经把它计入报表。此时应保留自己这边的原始记录和修复记录,再与渠道侧数据按时间窗口核对。核对时不要只比总数,要比同一事件标识或同一用户标识下的触发次数。
付费广告的转化回传与自然搜索的统计是不同机制,修复广告侧的重复事件不会改变自然搜索的表现,也不构成自然排名保证。平台当前的审核规则、界面和价格需要查官方说明,本文不代为断言。
最后给一个可执行的判断标准:如果修复后你能用保留的记录解释每一次转化数变化,并且重复事件不再进入有效口径,那么这套记录方式就是可用的。如果只能看到总数变了,却说不清哪条被标为重复、哪条被修复影响,就还需要继续补记录。