结论先说:如果广告联盟定义中的“咨询完成”只以某一台设备上的点击或页面事件为准,那么同一用户在手机、平板、电脑之间切换时,重复计算几乎无法避免。要减少重复,必须把咨询路径的判定从“单设备事件”改成“跨设备可关联的会话目标”,并且只让最后一个有效咨询动作进入结算口径。这个结论成立的前提是:你能拿到登录标识、表单提交标识或客服会话标识中的至少一种,并且这些标识在设备之间可拼接。如果所有标识都随设备重置,或者咨询发生在完全匿名的跳转里,那么再复杂的归因规则也只能做概率估计,不能真正消除重复。
广告联盟定义里常把点击、到达、咨询、成交放在一条链路上,但设备切换造成的重复,通常发生在后半段。假设一个用户先在手机上点广告进入落地页,没有提交;晚上又在电脑上搜索品牌词进入同一页面,提交了咨询表单。如果两段路径分别被记录为“咨询完成”,就会形成两次咨询。减少重复的第一步,是给咨询动作加上可去重的业务标识,而不是只依赖设备号或浏览器缓存。
可用的去重标识包括:登录后的账号 ID、客服会话 ID、表单提交后生成的业务单号、带有时效的签名参数。它们的共同点是跨设备可复用;设备号、Cookie、IP、User-Agent 则容易在切换设备或清理缓存后断裂。你不需要一次接入全部标识,但至少要有一个能在咨询完成时回传的稳定标识。
一个常见反例是:用户从手机广告进入,未登录;随后在电脑上通过自然搜索进入,用微信扫码咨询。此时手机端只有广告点击记录,电脑端只有自然搜索记录,微信端只有客服会话记录。三者之间没有账号 ID,也没有同一个业务单号。你仍然可以按“最后一次有效咨询动作”来减少重复,但无法证明手机端那次点击和电脑端这次咨询属于同一人。
这类情况下,合理的做法不是强行合并,而是把口径写清楚:按设备维度统计咨询次数,按业务单号统计去重后的咨询单量。两个口径同时保留,前者用于观察投放覆盖,后者用于结算和成本判断。把两个口径混成一个数字,才是重复计算的根源。
减少重复计算不靠一条万能规则,而是把路径拆成“广告触达—页面行为—咨询完成”三段,逐段决定是否计入咨询结果。下面是一个可操作的判断顺序:
这样做的实际动作是:在咨询完成接口里增加一个去重键,例如业务单号加咨询渠道。结果是,同一业务单号在多个设备上重复回传时,只保留最早或最后一条,具体保留哪一条取决于你的结算规则。下一步再把这个去重键与广告点击 ID 关联,用于判断该咨询来自哪个渠道。
如果结算是按咨询单量付费,通常更适合用“首次有效咨询”去重,避免同一用户在多个设备上反复触发;如果结算是按渠道贡献评估,则更适合用“最后有效咨询”,因为它更接近用户最终决定咨询时接触的渠道。两者成立的条件不同:首次口径要求你能在咨询完成时判断该业务单号是否已经存在;最后口径要求你能在渠道之间保留时间顺序。
无论选哪一种,都要在广告联盟定义层面明确:咨询完成不是点击完成,也不是页面到达。点击和到达可以重复,咨询单量必须去重。这个区分写进对接文档后,技术侧才知道该在哪一层加唯一约束。
不要先改归因模型,先做一次标识可用性验证。取最近一段时间的咨询记录,检查其中有多少条带有登录 ID、业务单号或客服会话 ID,再看这些标识能否与广告点击记录关联。如果可关联比例很低,优先补的是咨询完成时的标识回传,而不是继续调去重规则。完成这一步后,你才能判断重复计算是来自标识缺失,还是来自口径混用。