先给结论:在设备之间完成咨询的路径里,减少重复计算的关键不是把统计口径做得更复杂,而是先确定“哪一次事件算咨询完成”,再让每台设备只上报能够独立证明这一步发生的最小信息。这个做法在单设备或小样本里通常成立,但只要咨询路径跨越手机、平板、电脑,或者同一个人在多个设备间来回切换,简单去重就会失效。下面按条件、反例、动作三层说明。
减少重复计算的第一步,不是改代码,而是把完成咨询定义成一个可被单台设备独立识别的事件。常见可选事件有三类:提交表单成功、会话中发出第一条有效消息、人工坐席标记为有效线索。三者不能混用,因为它们的触发时刻不同。
如果选择“提交表单成功”,那么每台设备在提交成功时上报一次即可,其他设备上的浏览、点击、停留都不应再计入完成咨询。这样做的好处是边界清楚:未提交成功的设备不产生完成事件,重复计算只可能来自同一设备的重复触发,而不是跨设备。
适用条件有两个:一是表单提交接口在成功后返回明确状态;二是设备标识在提交那一刻可用,而不是等后续归因才补。缺少任一条件,跨设备去重就会退化成猜测。
假设一个用户先用手机填了表单但未提交成功,随后在电脑上重新填写并提交成功。如果两台设备都上报了“完成咨询”,而系统只按设备标识去重,就会得到两次完成。这不是样本噪声,而是路径本身包含了两台设备上的两次动作。
更麻烦的情况是:手机端提交成功,电脑端只是打开了同一张表单,但表单页面加载时也触发了完成事件。此时重复计算的来源不是用户行为,而是事件定义被页面加载污染。
这类反例说明:按设备去重只能解决同一设备内的重复,不能解决跨设备的重复。要减少跨设备重复,必须引入一个能跨设备对齐用户的标识,或者接受“完成咨询”只能按设备计数,并在后续环节用人工或规则二次合并。
当完成咨询的数量在设备之间出现异常时,先不要急着改统计逻辑。可以按以下顺序收集证据:
这些证据不能单独证明处理正确。例如,时间间隔短也可能是因为用户提前复制了内容,字段交互缺失也可能是因为页面未采集。它们的作用是缩小排查范围,而不是直接下结论。
假设某账户在手机和电脑上都部署了咨询入口,当前完成事件在两端各上报一次。可以先把完成事件拆成两个最小事件:form_submit_success 和 chat_first_message。然后规定:只有 form_submit_success 计入完成咨询,chat_first_message 只作为辅助信号。
这样做的结果是:手机端提交成功计一次,电脑端如果只是打开表单、没有提交成功,就不计入完成。跨设备重复从“两端都算”变成“只有提交成功的那一端算”。代价是:如果用户在电脑上发起聊天并完成咨询,而手机端提交过表单,则完成咨询会归到手机端。这个偏差是否可接受,取决于业务是否更看重表单提交还是聊天完成。
动作与下一步:先在一个小流量设备组合上启用这个最小事件集,观察一周内完成咨询的数量变化,并抽样核对其中若干条记录。如果数量下降但抽样中仍有跨设备重复,说明去重规则需要补充用户标识对齐;如果数量下降且抽样中不再出现同一用户两次完成,则可以把规则扩展到其他设备组合。
以下情况不适合直接套用“只保留一个完成事件”的做法:
下一步动作:先确认当前完成咨询的定义是否唯一,再检查完成事件是否只在成功状态下触发,最后用同一用户标识下的时间间隔和事件顺序做抽样核对。如果这三步中有任何一步无法确认,就不要先改统计口径,而应先补齐事件定义和设备标识的采集条件。只有定义清楚、证据可核对,减少重复计算才不会变成另一种口径漂移。