Skip to content

S2S Postback(服务器到服务器回传) ​

S2S(Server-to-Server)Postback 是最可靠的转化上报方式:转化发生在你的服务器上时(如支付成功回调、订单写入),由你的服务器直接向 ADBNK 发送 HTTP 请求,不依赖浏览器加载像素,不受广告拦截插件、Cookie 限制或页面未加载完的影响。

整条链路分两部分:

  1. 点击落地:ADBNK 把用户导向你的落地页时,在落地页地址里把 click_id 传给你;
  2. 转化回传:转化发生时,你的服务器把这个 click_id 回传给 ADBNK。

第一步:接收 click_id(落地页宏) ​

用户点击你的广告时,ADBNK 默认会在你的 http(s) 落地页地址后追加以下参数(地址里已有同名参数的不再追加):

text
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}随机数(用于防缓存)

取不到值的宏替换为空字符串。

落地页地址配置示例:

text
https://your-shop.com/landing?adbnk_click={click_id}&z={zone_id}

点击后用户实际到达(含默认追加的参数):

text
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):

text
https://track.adbnk.co/track/postback

/track/postback 与转化接口 /track/conversion 参数相同。

请求参数 ​

参数别名必填说明
ccode是转化追踪器代码 tracking_code(cvt_...)
click_idclickid否(建议传)第一步保存的点击 ID,用于归因
valuepayout否转化金额,范围 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(在你的服务器上执行):

bash
curl -sG "https://track.adbnk.co/track/postback" \
  --data-urlencode "c=cvt_你的追踪代码" \
  --data-urlencode "click_id=点击ID" \
  --data-urlencode "value=99.00"

成功响应(JSON):

json
{ "code": 0, "msg": "OK", "conversion_id": 12345 }

你的 Postback 模板 ​

后台「获取追踪代码」会直接给出模板:

text
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。

按 MIT 许可发布的文档内容。