联盟营销追踪难题:postback / S2S 追踪对接指南 · 5 家 Tracker 横评 + 6 步实操(2026)
postback / S2S 追踪是什么 · 为什么 cookie 追踪不够用。5 家主流 tracker 横评(Keitaro / Voluum / BeMob / RedTrack / Peerclick)· 对接实操 6 步。
跑 CPA / 联盟营销 · 一开始都会遇到这几个纠结:
- 联盟后台数据 vs 自己看到的转化数对不上 · 到底谁的算数?
- cookie 追踪为啥老丢数据?iOS / Safari / 广告拦截插件都会破坏?
- Tracker 到底是啥?Keitaro / Voluum / BeMob 哪个适合我?
- 联盟给的 postback URL 怎么填?click_id 变量为啥总丢?
- 一个人玩联盟 · 自己怎么搭起 tracking 闭环?
这篇是 2026 版 postback / S2S 追踪对接实操 · 一次讲清 4 件事:
- 3 种追踪机制(Cookie / Pixel / S2S)· 各自准确度和适用场景
- S2S postback 完整流程 · click_id 怎么跑一圈 · 伪代码示例
- 5 家主流 tracker 横评(Keitaro / Voluum / BeMob / RedTrack / Peerclick)
- 6 步对接实操 · 从选 tracker 到测试上量
先搞懂几个词
- Postback / S2S — server-to-server · 转化事件由广告主服务器直接 fire 到联盟 · 不经浏览器 · 100% 准确
- click_id — 每次点击生成的唯一 ID · 从 tracker 一路传到广告主再回来 · 归因靠它
- Tracker — 追踪工具 · 记录点击 / 转化 / 归因 / 报表(常见 Keitaro / Voluum / RedTrack)
- Attribution(归因) — 把一笔转化归到某个 affiliate / campaign / source 的过程
- Sitekey — reCAPTCHA / hCaptcha 给页面签发的公开标识 · 页面 DOM 里 data-sitekey 属性
- Landing Page(落地页) — 用户从广告点进来的第一个页面 · 承接流量
- Offer — 联盟平台上的具体推广机会 · 一个广告主 = 一个 offer(有的多个)
一句话答案
S2S(Server-to-Server)postback 是联盟后台的服务器在转化发生时,直接调用你自己 tracker 的一个 URL 把「哪个 click_id 转化了」告诉你。它是目前 CPA / 联盟营销里数据准确度最高、也是所有正规联盟网络默认支持的追踪方式。
为什么老一套的 cookie 追踪不够用,原因有几个:
- 浏览器政策收紧:Safari ITP、Firefox ETP、Chrome 第三方 cookie 逐步收紧,cookie 存活时间被压到 24 小时甚至更短,跨域场景下经常直接不给写。
- 移动端天然弱:iOS 上 App→Web、Web→App 之间根本不共享 cookie,in-app browser 也各家一套。
- 用户侧清理:清理浏览数据、隐私浏览、广告拦截插件,任何一个都能让 cookie 消失。
- 跨设备场景:用户在手机上点广告、在电脑上完成注册,cookie 追踪直接断链。
S2S 走的是「服务器之间的一次 HTTP 请求」,跟浏览器状态无关,所以只要联盟后台真的记录到转化,你的 tracker 就能收到。这是 2026 年跑量、买量、做 CPA 的技术底座之一。
3 种追踪机制对比:Cookie / Pixel / S2S postback
三种机制并不完全互斥,很多 tracker 会同时用。理解差异,才能在不同场景下挑对工具。
Cookie 追踪
工作原理:用户点击广告 → 落地页在浏览器里种下一个 cookie(记录 click_id / 来源) → 用户完成转化时,转化页面读取这个 cookie 上报。
优点:接入简单,不需要联盟后台配合。适合自有站内漏斗(点击 → 加购 → 支付),整条链路都在自己域名下。
劣势:
- Safari ITP 强制第三方 cookie 24 小时清理,跨域场景经常拿不到。
- 用户切设备、切浏览器,cookie 完全断。
- 广告拦截插件会挡掉一部分种植请求。
- 数据准确度按业内经验大致在 60-75%(视流量结构差异较大)。
适合场景:自建站内漏斗、电商加购分析、短周期活动追踪。
Pixel 追踪
工作原理:在转化页(比如注册成功页、支付成功页)嵌入一个 1x1 透明图片或 JS 片段,加载时向广告平台或 tracker 发一个 GET 请求,带上 click_id / order_id 等参数。
优点:比 cookie 稳一档,不依赖 cookie 存活时间。Facebook / Google Ads 的转化追踪早期就是 pixel 起家的。
劣势:
- 依然依赖浏览器加载。用户如果关得快、断网、装拦截插件,pixel 可能不触发。
- 转化页必须由你或联盟方控制才能嵌入,offer 方不给挂 pixel 就没戏。
- 移动 App 内转化(比如 App 里注册成功)天然不适合。
适合场景:Facebook / Google Ads 平台自身的转化追踪,或者 offer 方允许挂第三方 pixel 的 web offer。
S2S postback
工作原理:用户点击时,tracker 生成一个 click_id 传给联盟后台。用户完成转化时,联盟后台的服务器主动请求 tracker 一个 URL,把 click_id 和转化金额等信息回传。
优点:
- 不依赖浏览器,准确度最高(业内经验通常在 95% 以上)。
- 跨设备、跨 App、跨浏览器全通。
- 用户清 cookie、装拦截插件都不影响。
- 是所有主流联盟网络的默认追踪方式。
劣势:
- 联盟后台必须支持 postback(主流联盟都支持,小众私盘可能不支持)。
- 需要一个能接收 postback 的 tracker(自建或买 SaaS)。
- click_id 的生成和传递需要在落地页正确埋点,埋错就丢数据。
适合场景:CPA / CPI / CPL 联盟营销的默认选项、Nutra / dating / crypto / gambling / sweeps 等所有联盟垂直、需要精准 ROI 核算的付费流量投放。
一句话总结:自用场景做站内漏斗,cookie / pixel 够用;做联盟营销、跑量、要 ROI 数据,S2S postback 是基础要求。
S2S postback 具体怎么工作
拆开看 · S2S 追踪其实是一条双向 click_id 传递链。核心就一个概念:tracker 生成一个唯一的 click_id · 先传出去 · 再收回来。
完整流程
第 1 步:用户点击广告
用户在广告位(比如 Push / Native / Facebook / Google)上点了广告,浏览器请求你的落地页 URL。典型的 URL 长这样:
https://yourlanding.com/lp?utm_source=push&sub1={campaign_id}&sub2={placement_id}
第 2 步:落地页跳转到 tracker
如果你用了 tracker(比如 Keitaro),点击其实先经过 tracker 的一个跳转链接,再落到落地页。tracker 在这一步生成 click_id:
https://tracker.yourdomain.com/click?campaign=push123&sub1=xxx
→ tracker 生成 click_id = abc123def
→ 跳转到 https://yourlanding.com/lp?click_id=abc123def
第 3 步:用户点 CTA 跳去 offer
落地页上的 CTA 按钮跳转到联盟 offer 的 URL,把 click_id 作为参数带过去:
https://affiliate.com/offer?aff_id=12345&offer=678&click_id=abc123def
联盟后台在跳转发生时,记录下 click_id = abc123def,并把用户 302 到实际的 offer 落地页。
第 4 步:用户完成转化
用户在 offer 页完成注册、支付、订阅等目标动作。联盟后台确认转化后,查询到这个转化对应的 click_id = abc123def,并且知道你在 tracker 设置的 postback URL 是:
https://tracker.yourdomain.com/postback?click_id={click_id}&payout={payout}&status={status}
第 5 步:联盟后台发 postback
联盟后台的服务器主动发起 HTTP GET 请求:
GET https://tracker.yourdomain.com/postback?click_id=abc123def&payout=2.50&status=approved
tracker 收到请求后,查表找到 click_id = abc123def 对应的 campaign / source / sub1 / sub2 等所有维度,记录一条转化,并计算 ROI。
第 6 步:数据在 tracker 里聚合
你在 tracker 后台就能看到「push123 这个 campaign / 从 placement xxx 来的流量 / 花了多少钱 / 转化了多少 / ROI 是多少」。
伪代码示例:tracker 侧接收 postback
tracker 服务端接收 postback 时,大致逻辑是这样:
## Flask 伪代码:接收联盟 postback
from flask import Flask, request
import time
app = Flask(__name__)
@app.route("/postback", methods=["GET"])
def receive_postback():
## 从 URL 参数拿 click_id 和转化数据
click_id = request.args.get("click_id")
payout = float(request.args.get("payout", 0))
status = request.args.get("status", "approved")
txid = request.args.get("txid", "") ## 联盟侧交易 ID,防重复
## 查 click_id 对应的原始点击信息
click = db.query("SELECT * FROM clicks WHERE click_id = %s", click_id)
if not click:
## 找不到 click_id,可能是伪造或过期,记 log 但不入账
log_warning(f"unknown click_id: {click_id}")
return "ok", 200
## 防重复:同一个 txid 只入一次
if db.exists("SELECT 1 FROM conversions WHERE txid = %s", txid):
return "ok", 200
## 入库
db.insert("conversions", {
"click_id": click_id,
"campaign_id": click["campaign_id"],
"source": click["source"],
"sub1": click["sub1"],
"sub2": click["sub2"],
"payout": payout,
"status": status,
"txid": txid,
"ts": int(time.time())
})
## 可选:回传 postback 给上游流量源(比如 Facebook CAPI)
forward_to_traffic_source(click, payout)
return "ok", 200
伪代码示例:落地页生成 click_id
如果自建 tracker,落地页跳转逻辑核心是「拿到流量参数 → 生成唯一 click_id → 存库 → 302 到实际落地页」:
## 简化的 nginx / lua 伪代码
## 收到 /click 请求
click_id=$(uuid_generate_v4)
campaign_id=$(get_query_param "campaign")
sub1=$(get_query_param "sub1")
## 存点击记录
db_insert clicks click_id=$click_id campaign_id=$campaign_id sub1=$sub1 ts=$(date +%s)
## 302 跳转到落地页,把 click_id 带上
return_302 "https://yourlanding.com/lp?click_id=$click_id"
关键参数说明
- click_id:tracker 生成的唯一 ID,是整个 postback 链路的主键。建议用 UUID 或时间戳+随机数,不要用自增 ID(容易被爬)。
- payout:该次转化的佣金金额,联盟后台回传,tracker 用来算 ROI。
- status:approved / pending / rejected。有些联盟先回 pending 再改 approved,tracker 要能处理状态更新。
- txid:联盟侧的交易 ID,用来防重复入账。同一个 txid 收到多次 postback 只算一次。
- sub1-sub10:自定义参数,通常传广告 placement / creative / geo 等维度,方便 tracker 里做多维分析。
主流 tracker 工具横评
市面上 tracker 分两类:self-hosted(自己部署服务器)和 cloud-based(SaaS)。self-hosted 便宜、数据自己控;cloud 省心、扩容快。以下 5 家覆盖了 2026 年绝大多数 CPA 玩家的选择。
以下 tracker 价格是 2026-07 快照 · 各家定期调整 · 具体以官网当前 pricing 为准。
Keitaro
Keitaro 是俄系团队做的 self-hosted tracker,在东欧、俄语区、CN 灰产圈渗透率极高。定位是「跑量玩家的瑞士军刀」。
- 价格:$59/月起(Solo 版),$79/月(Standard),$119/月(Pro),$179/月(Business)。年付有 20% 左右折扣。
- 部署:self-hosted,官方推荐 4C8G VPS 起步,大流量建议 8C16G+。License 按服务器绑定,一个 license 一台机。
- 特性亮点:内置 landing page rotator、AB test、bot filter、cloaker(合规工具,黑帽也常用)、redirect chain、pre-lander 支持。UI 中文友好度中等,俄语和英语版本更完整。
- 适合谁:量大、需要 cloaker、想数据自留、能搞定 Linux 部署的中重度玩家。
- 坑:license 迁服务器需要 support 手动 reset,反应速度看时段。UI 学习曲线偏陡,新手容易迷失在设置里。
Voluum
Voluum 是波兰 Codewise 团队的旗舰产品,SaaS 老大哥,做 affiliate 圈最早的一批。
- 价格:Profit 版 $199/月,Doer 版 $499/月,Team 版 $999/月。按月 event 数(点击+转化)计费,超量另收。
- 部署:纯 SaaS,注册即用,官方 CDN 全球节点。
- 特性亮点:AI 优化(自动分配流量到 top-performing variant)、traffic distribution AI、anti-fraud kit、mobile app 版可用手机直接看数据。integration 覆盖 200+ 主流联盟和广告网络。
- 适合谁:预算够、不想折腾服务器、跑白帽或灰白帽的中大型 team。
- 坑:贵,尤其大流量场景 event 费用堆起来吓人。灰黑账户容易被风控,合规审查严。
BeMob
BeMob 是性价比派 SaaS tracker,主打「Voluum 平替」。
- 价格:免费版 100 万 event/月,Basic $49/月,Professional $99/月,Business $249/月。
- 部署:SaaS,注册即用。
- 特性亮点:免费版对新手极友好,能撑到中等量级。UI 简洁,报表出得快。integration 主流联盟基本都有。
- 适合谁:刚入门跑 CPA、量还不大、想省钱又要能跑 postback 的新手到中级玩家。
- 坑:高级功能(AB test 深度、cloaker、多用户团队权限)不如 Voluum / Keitaro 完整。撑不了超大流量。
RedTrack
RedTrack 定位「白帽 attribution + 联盟追踪」两不误,近两年在电商 + 联盟混合玩家里增长明显。
- 价格:Solo Pro $124/月起,Team $233/月起,Agency $625/月起。按 event 计费。
- 部署:SaaS,可选私有部署(企业版)。
- 特性亮点:多点归因(multi-touch attribution)、跟 Facebook CAPI / Google Ads 深度打通、cookieless tracking 主推方向、白帽合规做得好。
- 适合谁:电商 + affiliate 混合业务、要跑 Facebook / Google 主流量、走白帽合规路线的 team。
- 坑:黑灰产不太欢迎(合规审查),cloaker 功能不做。
Peerclick
Peerclick 是印度团队做的 SaaS tracker,免费额度大,亚太玩家用得多。
- 价格:免费版 100 万 event/月,Basic $99/月,Advanced $249/月。
- 部署:SaaS。
- 特性亮点:免费额度大、UI 有中文、支持自建域名 tracking domain、AB test 和 landing rotator 都有。
- 适合谁:亚太玩家(印度 / 东南亚 / 中文圈)、需要中文 UI、预算敏感的新手到中级。
- 坑:integration 生态不如 Voluum / RedTrack 广,冷门联盟需要手动配 postback template。support 时差和语言可能有障碍。
选型思路:
- 新手 / 预算低 / 量小:BeMob 免费版或 Peerclick 免费版起步,能撑到月流水几千美金没问题。
- 中量 / 想自己控数据 / 有运维能力:Keitaro self-hosted,一次性 license + VPS 成本可控。
- 大量 / 白帽 / 团队协作:Voluum 或 RedTrack SaaS,省运维、拼 integration 和 AI 能力。
- 电商 + affiliate 混合 / 要打通 Facebook CAPI:RedTrack。
其他值得知道的工具:Binom(self-hosted,Keitaro 直接竞品,更极客向)、Adplexity(不是 tracker,是竞品情报工具,配合 tracker 用)。
对接实操 6 步
以「Keitaro + 某 CPA 联盟」为例,其他 tracker 逻辑相同,只是 UI 位置不一样。
第 1 步:注册 / 部署 tracker
- SaaS(Voluum / BeMob / RedTrack / Peerclick):官网注册账号,选套餐,10 分钟能开跑。
- Self-hosted(Keitaro / Binom):
- 买 VPS(推荐 Vultr / Hetzner / DigitalOcean 的 4C8G+ 机器,选跟主要流量地理位置近的机房)。
- 绑域名(建议用一个专门的 tracking 子域名,比如
tk.yourdomain.com,不要用主站域名)。 - 上 Cloudflare(可选,加 CDN 和 DDoS 防护)。
- 一键脚本部署 Keitaro,输入 license,SSL 走 Let's Encrypt。
- 首次登录后建议先关掉默认的 admin 账号弱密码,启用 2FA。
第 2 步:在 tracker 里建 offer
- 进 tracker 后台,进 Offers 菜单,新建 offer。
- 填 offer name(自己看的,建议格式:
联盟名-国家-垂直-offer名,比如MaxBounty-US-Sweeps-iPhone14)。 - 填 offer URL(从联盟后台复制 offer 的 tracking link,通常长这样:
https://affiliate.com/click?aff=12345&offer=678&s1={click_id})。关键:URL 里必须包含一个变量位置传 click_id,变量名可能是{click_id}/{sub1}/{s1}/{aff_sub},看联盟具体要求。 - 填 payout(联盟给你的佣金,tracker 用这个算 ROI)。
- 保存。
第 3 步:在联盟后台拿 postback URL
- 进联盟后台,找 postback / server-to-server / conversion tracking 设置(每家叫法不同)。
- tracker 会给你一个 postback URL 模板,一般长这样:
https://tk.yourdomain.com/postback?click_id={click_id}&payout={payout}&status={status}&txid={txid}
- 花括号里的
{click_id}等是联盟后台要替换的变量,不同联盟用不同占位符(有的用[click_id]、有的用##click_id##,看文档)。 - 复制这个 URL,准备下一步填到联盟后台。
第 4 步:填 postback URL 到联盟后台
- 在联盟后台的 postback 设置里,粘贴 tracker 给的 URL。
- 把 URL 里的占位符替换成联盟后台自己的变量名。比如联盟用
{subid}表示你在点击时传给它的 click_id,那 URL 里click_id={click_id}就要改成click_id={subid}。 - 有些联盟支持配置多个 postback event(比如 lead / sale / rebill 分别一个 URL),按需分别配。
- 保存。
第 5 步:测试
测试是必做步骤,跳过这一步上量,数据错了发现不了。
- 用测试链接手动点一次:
- 从 tracker 里拿到 campaign 的跳转链接(通常长这样:
https://tk.yourdomain.com/click?campaign=xxx)。 - 浏览器隐身模式打开,完整走一遍 tracker 跳转 → 落地页 → offer → 转化流程。
- 如果联盟支持 test conversion(不用真花钱触发一次假转化),用它测试更省事。
- 到 tracker 后台看:
- Clicks 报表里应该有一条你刚才的点击记录。
- Conversions 报表里应该有一条对应的转化记录。
- click_id 应该匹配。
- 如果 click 有但 conversion 没有,大概率是:
- postback URL 变量名写错(联盟用
{subid}你写了{click_id})。 - offer URL 里没传 click_id(所以联盟后台不知道回传给谁)。
- postback 被 tracker 的 firewall / Cloudflare 挡了(检查 access log)。
第 6 步:上量
- 测试通过后,把 tracker 的 campaign 链接铺到广告平台(Facebook / Google / Push / Native)。
- 前 24-48 小时盯紧数据:比对 tracker 报表和联盟后台报表,差异 <5% 属正常(网络延迟、bot 过滤差异),差异 >10% 就要排查。
- 稳定后,开始做多维优化:按 sub1(placement)/ sub2(creative)/ geo / device 拆报表,砍差的、加好的。
深入阅读
- CPA / CPS / CPL 是什么 · 联盟营销到底怎么赚钱(2026 入门教程+平台合集) — 联盟营销入门 + 6 套主流玩法
- 出海联盟怎么选 · 11 家横评 — 3 维度评估 + 11 家客观分档
- 联盟营销最常见的合规问题 — clawback / cookie stuffing / GDPR / FTC 披露
- Cloak 是什么 · 原理 + 场景 + 风险 — 联盟营销进阶话题
- 想做 CPA 薅羊毛 · 全套工具怎么配 · 3 档预算方案 — 从联盟网络到打码 · 6 层 stack 逐层挑家
想试试 dogesms
联盟营销的多号运营场景 —— 注册 Facebook Business Manager / Google Ads / 联盟平台账号 / Trustpilot / Payoneer 等 KYC 环节都要海外号收 SMS。dogesms 承接号码验证这一层:
- 一次性接码 · 一次性拿码就走 · 60+ 国家可选
- 租号服务 · 需要长期号(WhatsApp / Telegram / TikTok 主号)· 号长期独占
进 dogesms dashboard 直接选号。TG 频道 @dogesms_official 有做联盟 / 矩阵的用户 · tracker / 号池 / 代理的坑基本都聊过。