先给结论:把“用户从点击到发起咨询”这条路径拆成可共享的状态,而不是让每台设备各自算一遍。关键动作是给每个咨询入口分配一个稳定标识,并在服务端记录该标识是否已经产生过有效咨询。如果只靠前端脚本判断,跨设备重复计算几乎无法避免;如果只靠后端去重,又会漏掉同一设备上的多次尝试。两种条件下的选择不同,下面分开说。
同设备重试指的是同一个人在同一台手机上多次点击咨询按钮、刷新页面或返回后再次提交。跨设备续接指的是同一个人先在手机上看广告,后来在电脑上完成咨询。这两种情况在数据里都表现为“咨询次数多于人数”,但成因不同。
区分它们需要一组可核对的证据:咨询记录里是否带有稳定的设备标识、登录账号标识或表单会话标识。如果只有设备标识,跨设备续接会被算成两个不同的人;如果只有账号标识,未登录用户的同设备重试又会合并成一个。实际做法是同时保留设备标识和账号标识,并在服务端用一张映射关系表记录两者曾经同时出现过。
如果SEM代运营的账户只投一个平台、咨询入口只有一个页面按钮、用户基本在同一个设备上完成动作,那么前端去重可以先用起来。具体动作是在按钮点击后写入一个短时效标记,例如用 sessionStorage 记录本次会话是否已经触发过咨询,再次点击时不再重复上报。
这个动作的结果是:同一标签页内的重复点击被压掉,数据更接近真实人数。但它的例外也很明确——换标签页、换浏览器、换设备都会重新计数。所以下一步不能直接拿这个数字去判断“咨询成本是否偏高”,而要先确认重复率是否主要来自跨设备。如果跨设备占比大,前端去重之后仍然会看到咨询数虚高,此时应转向服务端方案。
当SEM代运营同时跑搜索广告和平台推荐带来的落地页,或者一个账户下有多个咨询入口时,前端各自为政就会重复计算。此时应把“是否已产生有效咨询”这个状态放到服务端,由服务端统一判断。
实施动作分三步:
这个动作的结果是:跨设备续接被合并为一次咨询,同设备重试也不会重复计数。下一步可以用“有效咨询数”去反推各入口的贡献,而不是用原始触发次数。例外是有效窗口的长度需要按业务节奏设定——窗口太短会把正常的二次咨询算成重复,窗口太长会把不同需求合并。建议先用一个假设值验证:假设窗口设为24小时,观察被标记为重复的咨询里有多少其实是不同问题,再决定是否缩短。
假设某天SEM代运营账户产生100次咨询触发,其中60次来自同一设备上的重复点击,30次来自同一用户换设备后的续接,10次是不同用户的新咨询。如果只做前端去重,可能剩下40次触发;如果做服务端状态共享,可能剩下10次有效咨询。
这个例子的数字只是用来比较方法,不代表任何真实账户的表现。它的作用是说明:只看触发次数下降,不能证明去重正确。还需要检查被去掉的那部分里,有多少是真正的重复、有多少是被误判的正常咨询。如果被误判的比例高,说明标识或窗口设置有问题,下一步应调整标识组合,而不是继续压缩数字。
如果SEM代运营的咨询主要发生在同一个设备上,或者业务本身允许同一用户在不同设备上分别咨询,那么强行跨设备去重反而会隐藏真实的咨询需求。此时更合适的动作是保留设备级记录,只在报表层面做人数估算,而不是在数据写入时就合并。
另一个例外是咨询入口本身没有稳定的用户标识,比如纯匿名表单且不采集任何设备信息。这种情况下跨设备去重缺少依据,只能先补标识采集,再谈去重。补标识之前,任何“咨询数下降”都不能单独作为处理正确的证据,因为下降也可能来自投放调整、落地页改动或平台审核变化。
最后要提醒的是,付费广告带来的咨询数据与自然搜索的咨询数据是不同机制产生的,去重逻辑可以共用,但不能用广告咨询的重复率去推断自然搜索的表现。把两边的标识和窗口分开记录,才能让下一步的预算分配有可核对的依据。