S2S Postback(服务器到服务器回传)
S2S(Server-to-Server)Postback 是最可靠的转化上报方式:转化发生在你的服务器上时(如支付成功回调、订单写入),由你的服务器直接向 ADBNK 发送 HTTP 请求,不依赖浏览器加载像素,不受广告拦截插件、Cookie 限制或页面未加载完的影响。
整条链路分两部分:
- 点击落地:ADBNK 把用户导向你的落地页时,在落地页地址里把
click_id传给你; - 转化回传:转化发生时,你的服务器把这个
click_id回传给 ADBNK。
第一步:接收 click_id(落地页宏)
用户点击你的广告时,ADBNK 默认会在你的 http(s) 落地页地址后追加以下参数(地址里已有同名参数的不再追加):
adbnk_click_id, adbnk_zone_id, adbnk_campaign_id, adbnk_ad_id, adbnk_creative_id, adbnk_site_id如需使用自己的参数名,可在广告主后台的落地页地址里写宏占位符,点击时 ADBNK 会替换为真实值(已做 URL 编码)。{宏} 与 两种写法都支持;宏名不区分大小写、下划线可省略({click_id} = {ClickID} = {clickid})。不认识的宏原样保留。
| 宏 | 说明 |
|---|---|
{click_id} | 点击 ID(转化归因的关键) |
{campaign_id} | 推广计划 ID |
{adgroup_id} | 广告组 ID |
{ad_id} | 广告 ID |
{creative_id} | 素材 ID |
{zone_id} | 广告位 ID(数字) |
{zone_key} | 广告位标识(zone_...) |
{site_id} | 流量主站点 ID |
{site_domain} | 流量主站点域名 |
{publishment_id} | 流量主账户 ID |
{country} | 访客国家代码(如 US) |
{device} | desktop / mobile / tablet |
{os} | windows / android / ios / macos / linux / other |
{browser} | edge / chrome / firefox / safari / ie / other |
{timestamp} | 点击时的 Unix 时间戳 |
{random} | 随机数(用于防缓存) |
取不到值的宏替换为空字符串。
落地页地址配置示例:
https://your-shop.com/landing?adbnk_click={click_id}&z={zone_id}点击后用户实际到达(含默认追加的参数):
https://your-shop.com/landing?adbnk_click=点击ID&z=42&adbnk_click_id=点击ID&adbnk_zone_id=42&...妥善保存 click_id
落地页拿到 click_id 后,请随会话/订单存入数据库(例如写进订单记录),这样转化(下单/支付)发生时才能回传。请把它当作不透明字符串处理。
第二步:回传转化(Postback URL)
转化发生时,你的服务器向 ADBNK 的 Postback 接口发送请求(GET 或 POST):
https://track.adbnk.co/track/postback/track/postback 与转化接口 /track/conversion 参数相同。
请求参数
| 参数 | 别名 | 必填 | 说明 |
|---|---|---|---|
c | code | 是 | 转化追踪器代码 tracking_code(cvt_...) |
click_id | clickid | 否(建议传) | 第一步保存的点击 ID,用于归因 |
value | payout | 否 | 转化金额,范围 0 – 1,000,000;不传时使用追踪器的默认转化价值 |
order_id | — | 否 | 你的订单号;只会透传给你自己的回调地址(见下文) |
转化事件类型以后台追踪器上设置的为准,不能按单次请求修改。
返回
| HTTP | 响应体 | 含义 |
|---|---|---|
| 200 | { "code": 0, "msg": "OK", "conversion_id": 12345 } | 转化已记录 |
| 400 | { "code": 400, "msg": "Missing click_id or tracking code" } | 既没有 c/code 也没有 click_id |
| 403 | { "code": 403, "msg": "Attribution rejected: ..." } | 该转化无法归因,未记录 |
| 404 | { "code": 404, "msg": "Invalid tracking code" } | 追踪代码不存在或已停用 |
| 500 | { "code": 500, ... } | 服务端临时错误,请稍后重试 |
务必带上追踪代码
请务必带上追踪代码 c,否则转化不会被记录。
同一 click_id 重复回传只计一次,可放心重试。
回传示例
curl(在你的服务器上执行):
curl -sG "https://track.adbnk.co/track/postback" \
--data-urlencode "c=cvt_你的追踪代码" \
--data-urlencode "click_id=点击ID" \
--data-urlencode "value=99.00"成功响应(JSON):
{ "code": 0, "msg": "OK", "conversion_id": 12345 }你的 Postback 模板
后台「获取追踪代码」会直接给出模板:
https://track.adbnk.co/track/postback?c=cvt_你的追踪代码&click_id={click_id}&value={payout}在你的联盟/CRM 系统里,把 {click_id}、{payout} 换成你系统自己的变量(保存的 ADBNK 点击 ID 与转化金额)。
可选:ADBNK 回调你的服务器
在追踪器高级设置里填写 Postback URL 后,每当记录到一条计费转化,ADBNK 会向该地址发一次 GET 请求(失败会重试)。地址里可使用以下占位符:
{click_id} {payout} {conversion_value} {event_type} {tracker_id} {conversion_id} {order_id}
与 Pixel / JS 的取舍
| 维度 | Pixel / JS(浏览器) | S2S Postback(服务器) |
|---|---|---|
| 触发位置 | 浏览器加载转化页 | 你的服务器主动请求 |
| 抗广告拦截 | 易被拦截 | 不受影响 |
| 依赖 Cookie/JS | 是 | 否 |
| 可靠性 | 中 | 高 |
| click_id 来源 | 前端从落地页地址提取并保存 | 服务端随订单保存后回传 |
| 适用场景 | 静态页面、无服务端回调 | 支付回调、订单系统 |
推荐组合
有服务端订单/支付系统时优先使用 S2S Postback;纯静态落地页或作为补充校验时,可以加上 Pixel / JS 转化上报。
更多接口层面的约定见 事件与转化上报 API。