一个属于你自己的点击标识符
每一次跳转,worker 都会签发一个令牌,并以你指定的参数名追加到目标地址上,默认用一个中性的名字。同一个令牌还会写进你自己的跳转域名下的第一方 cookie,正是这一点,让归因在那些早已不再接受任何第三方内容的浏览器里依然成立。
令牌带签名,并且绑定租户:工作区和合作伙伴标识符都是签名载荷的一部分,因此在某个客户的链接上签发的令牌,到了另一个客户的工作区会像伪造品一样被拒绝。它不含任何个人数据——只有点击时刻、链接、版本、国家、设备类别、流量来源,以及一个标记可疑流量的标志位。
两条入口,一套规则
服务端这条路:你的后端把标识符连同一个转化目标、一个订单标识符、一个金额和一种币种一起提交。浏览器这条路:一段由你自己的跳转域名提供、而不是由第三方主机提供的脚本读取标识符,并从感谢页上报这次转化。两条路都走同一个服务,因此归因窗口、去重和对外投递的行为完全一致。
金额自始至终都以整数最小货币单位处理。49.99 这样的金额会被拒绝,并指明是哪个字段出错,而不是被悄悄四舍五入——因为在支付链路中途临时发明一条舍入规则,正是收入报表悄无声息地对不上发票的原因。
重复由数据库处理,而不是「先查后写」:同一笔订单被反复投递,只会产生一条转化,并把它标记为重复后返回。正是这一点,让重试一次失败的 Webhook 变得安全。
- URL 里和第一方 cookie 里的签名点击标识符
- 逐工作区可配置的归因窗口
- 服务端 API,以及由你自己域名提供的浏览器脚本
- 带默认金额与币种的转化目标
- 按订单标识符进行的原子去重
- 向广告平台的对外投递,带重试
可疑收入会被标注,而不是被藏起来
分类器的判定就装在点击令牌里,因此一笔归因到数据中心或代理的转化,在被记录的那一刻就已标记为可疑。它在报表里自成一个分组,而不是被删掉或悄悄混进总数。
把转化跟踪与流量质量放在一起,全部意义就在这个区分上:「我们拿到了两百笔转化」和「我们拿到了两百笔转化,其中四十笔在一小时内来自同一个主机托管地址段」是两件不同的事实,而只有其中一件值得掏钱。
这些数字之后会去哪里
一笔被记录的转化会发出一个带签名的 Webhook 事件,并且可以经由队列转发给外部广告系统,用的是平台其余部分同样的重试纪律:在对外调用之前先递增尝试计数、一套写在文档里的退避策略,以及一个放弃标记,而不是无限重试。
这一切都不是要取代你的计费系统。它回答的是一个更窄、也更有用的问题:是哪条链接、哪个国家、哪个目标地址、哪个流量来源,带来了这笔钱。
常见问题
在没有第三方 cookie 的情况下,它还能用吗?
能用。标识符走在目标 URL 里,以及一个设置在你自己跳转域名上的第一方 cookie 里。没有任何环节依赖由第三方主机设置的 cookie,而浏览器正在移除的恰恰是后者。
同一笔订单被上报两次怎么办?
只会记录一条转化,第二次调用会把它标记为重复后返回。去重是一次原子插入,而不是先读后写,因此即使两次投递在同一时刻抵达,它依然成立。
点击之后多久之内的转化还能被归因?
这是一项逐工作区的设置。晚于这个窗口到达的转化会被拒绝,并返回一个专门的错误码,好让你的集成能分清「超出窗口」和「标识符无效」,而不必去猜。
金额可以带小数吗?
不可以,而且这是刻意的。金额一律是整数最小货币单位——分、便士、戈比。带小数的金额会被拒绝,并指明具体字段,因此在数据进入你的收入报表的路上,绝不会发生悄无声息的舍入。