如何把联盟追踪系统对接到 Facebook 广告
Karim Haddad
联盟营销与追踪分析师
联盟追踪系统对接 Facebook 广告,是能赚钱的联盟投放的技术地基。对任何想在规模上做优化的投手来说,把联盟追踪系统与 Facebook 的对接弄明白都是必修课。没有它,你等于闭着眼睛投——你知道总花费,也知道总佣金,但没法把两者接起来。你看不出是哪个广告系列、哪个广告组、哪个素材产生了哪些转化,也就无从谈优化。
快速结论: 联盟追踪系统与 Facebook 的对接,靠的是回传链接、SubID 宏,以及可选的转化 API,把广告点击和联盟网络的转化连起来。SubID 把广告系列、广告组和广告的标识带进追踪系统,服务器端回传再把匹配好的转化送回来。这样 Facebook 的花费就和佣金数据接上了,拿到 iOS 14 之后浏览器像素单独给不了的广告系列层级归因。
苹果推出 App Tracking Transparency(ATT,应用追踪透明度)之后,浏览器侧归因的准确度大幅下滑,大约 62% 的用户选择了拒绝追踪(Statista,2024)——这就是服务器端回传成为联盟行业标配的原因。
这篇指南把整个对接流程走一遍:选对追踪方式、设置回传链接、配好 SubID 把广告系列数据带出去、开启转化 API 拉回 Facebook 侧的准确度,最后搭出一张把广告花费和佣金数据接在一起的报表。
如果你想要的是适用于非联盟广告的线索质量追踪框架,可以看我们这篇从 Facebook 广告到 CRM 的线索质量追踪。
先看懂这套追踪架构
在动手配置之前,先把你要搭出来的数据流看明白。
没有正经追踪时的问题
不做联盟追踪对接,你的数据会分在两个互不相通的孤岛里:
Facebook 广告管理工具: 显示展示次数、点击、点击率(CTR)、每次点击费用(CPC),有时还有转化——但 iOS 14 之后这部分并不可靠。
联盟网络后台: 显示收到的点击、转化数和赚到的佣金。
问题在于:这两边接不起来。你不知道那些佣金是广告系列 A 还是广告系列 B 带来的,看不出哪个素材产生了转化,也算不出每个广告系列的真实 ROAS(true ROAS)。
解法:把联盟追踪系统当桥
联盟追踪系统坐在 Facebook 和联盟网络中间,从两边各取一份数据,靠一个共用的点击标识把它们接上。
Facebook 广告点击
↓
联盟追踪系统(记录:广告系列、广告组、广告、版位数据)
↓ (把 ClickID 传给联盟网络)
联盟网络落地页
↓
转化发生
↓
联盟网络向你的追踪系统发出回传
↓
追踪系统把回传和原始点击匹配上
↓
归因结果:广告系列 A > 广告组 B > 广告 C = X 次转化
这样你就拿到了广告系列、广告组和单条广告三个层级的归因——这才是能支撑有意义的优化的颗粒度。
把这篇指南用起来
在一个地方创建、测试和扩量六个广告平台的投放,AI 助手 Wavo 随时在旁协助。免费试用 14 天。
第 1 步:选好追踪方式
联盟性质的 Facebook 广告有三种追踪方式可选。把各自的取舍看清楚,用哪一种自然就定了。
| 方式 | 准确度 | iOS 14+ 的影响 | 复杂度 | 适合谁 |
|---|---|---|---|---|
| 浏览器像素(只用 Meta 像素) | 中等 | 明显下降 | 低 | 自有产品,不适合联盟 |
| 回传链接(S2S) | 高 | 不受影响 | 中等 | 标准联盟广告 |
| 回传 + CAPI | 最高一档 | 不受影响 | 中到高 | 正在放量的联盟广告 |
回传链接是联盟广告的最低可用配置。它走服务器到服务器,绕开了 iOS 14+ 的限制,不依赖浏览器就能给出可靠的归因。
回传 + 转化 API 会把服务器端的数据补回 Meta,既提高 Facebook 侧报表的准确度,也让 Advantage+ 能基于真实转化而不是估算事件去优化。
起步就用回传链接。等广告系列跑出稳定的量之后,再加上 CAPI 集成。
第 2 步:配置 SubID,把广告系列数据带出去
SubID 是你挂在追踪链接后面的参数,负责携带这次点击来自哪里的信息。转化发生时,这些 SubID 会随回传一起回来,让你把这次转化归到具体是哪个广告系列元素带来的。
SubID 怎么配
在联盟追踪系统里创建广告系列链接时,把 SubID 宏配成从 Facebook 的动态 URL 参数自动填充:
| SubID 字段 | Facebook 宏 | 记录的内容 |
|---|---|---|
| SubID1 | {{campaign.id}} | 广告系列 ID |
| SubID2 | {{adset.id}} | 广告组 ID |
| SubID3 | {{ad.id}} | 单条广告 ID |
| SubID4 | {{placement}} | 版位(信息流、快拍、Reels) |
| SubID5 | 自定义值 | 你的地区、offer 代码或测试标识 |
带 SubID 的追踪链接示例:
https://tracker.yourdomain.com/click?offer=HLTH001
&sub1={{campaign.id}}
&sub2={{adset.id}}
&sub3={{ad.id}}
&sub4={{placement}}
&sub5=US
在 Facebook 广告的落地页 URL 字段里填这条追踪链接。有人点击时,Facebook 会自动把这些宏替换成真实值。
实操提示: SubID5 里永远放上 offer 代码,或者这一轮投放专属的唯一标识。同一个 offer 你会跑很多轮,有了这个标识,历史数据里各轮测试才分得开——做纵向分析时这一条很关键。
第 3 步:设置回传链接
回传链接是联盟网络在转化发生时通知你的追踪系统的那套机制。
拿到你的回传链接
在联盟追踪系统里:
- 进到你要追踪的那个 offer 或广告系列
- 找到 “Postback URL” 或 “S2S Pixel” 这一栏
- 复制回传链接模板,大致长这样:
https://tracker.yourdomain.com/postback?clickid={CLICK_ID}&payout={PAYOUT}&status={STATUS}
注意 {CLICK_ID} 这个占位符。有人点你的链接时,追踪系统会自动生成一个唯一的点击 ID。传给联盟网络、又在回传里被送回来用于匹配的,就是它。
在联盟网络那侧配置回传
登录联盟网络,进到这个 offer 的技术设置:
- 找到 “Postback” 或 “Server-Side Tracking” 这一栏
- 粘贴你追踪系统的回传链接
- 把联盟网络的转化变量映射到回传链接的参数上:
- 联盟网络的点击 ID 变量 → 你的
{CLICK_ID}参数 - 联盟网络的佣金变量 → 你的
{PAYOUT}参数 - 联盟网络的转化状态 → 你的
{STATUS}参数
- 联盟网络的点击 ID 变量 → 你的
- 保存并申请一次测试转化(多数联盟网络都有 “Test Postback” 功能)
测一遍再上量
正式跑流量之前,先测:
- 自己手动点一次追踪链接。打开追踪系统的点击日志——这次点击应该出现,并且所有 SubID 都有值。
- 向联盟网络申请一次测试转化。看追踪系统的转化日志——这条转化应该匹配到了你刚才那次点击。
- 确认转化记录上带着 SubID 数据。如果 SubID 是空的,回去检查追踪链接的写法。
测试不通过时,常见原因就三类:点击 ID 的变量名写错、回传链接里的 URL 编码有问题,或者联盟网络对佣金数值要求特定的编码方式。
第 4 步:把转化 API(CAPI)接回 Facebook
回传追踪跑通之后,再加一层 CAPI,把转化数据送回 Facebook。这一步有两个作用:恢复 Facebook 对你转化的可见度(iOS 14+ 之后这块退化得厉害),以及让算法能基于真实转化数据去优化。
原生 CAPI 集成(推荐)
Voluum 和 RedTrack 都提供原生 CAPI 集成。配置通常要做这几件事:
- 在联盟追踪系统里,进到 “Meta Conversions API” 或 “Server-Side Integrations”
- 通过 OAuth 授权,或填入 Meta 访问令牌,连上你的 Meta 商务管理平台(Business Manager)
- 选择要发送哪些转化(通常是 “Purchase”,或你自定义的转化事件名)
- 把转化价值映射到回传数据里的佣金字段
- 配置事件去重——填入和你的 Meta 像素相同的事件 ID 格式(如果两者同时在跑)
配好之后去看 Meta 事件管理工具(Events Manager)。24 小时之内,你应该能看到自己的转化事件出现,来源标为 “Partner Integration”,和像素事件并列。
手工实现 CAPI
如果你的追踪系统没有原生 CAPI 支持,也可以通过 Meta 的 CAPI Gateway 或自建服务器端实现来手工接:
- 在 Meta 商务管理平台里创建访问令牌(事件管理工具 > 数据源 > 设置 > 转化 API)
- 追踪系统收到回传时,让你的服务器向 Meta 的 CAPI 端点发一个 POST 请求,带上:
event_name:“Purchase” 或你自定义的事件event_time:Unix 时间戳user_data:哈希后的邮箱或手机号(联盟网络给得出的话)custom_data.currency和custom_data.value:佣金金额event_source_url:你的落地页 URL
第 5 步:归因窗口怎么配
追踪系统、Meta 和联盟网络三者的归因窗口对不上,会造成数据打架,进而导致优化决策做错。
三个归因窗口
Meta 的归因窗口: Meta 把转化算给广告系列的规则。默认是 7 天点击、1 天浏览。
联盟网络的 Cookie 窗口: 一次点击之后,联盟网络还认多久的转化。常见的是 30 天或 60 天。
你的追踪系统的归因窗口: 追踪系统把回传匹配到点击的规则。应该和联盟网络的 Cookie 窗口对齐。
差异怎么对账
| 归因窗口 | 影响什么 | 怎么用 |
|---|---|---|
| Meta 的 7 天窗口 | 广告系列优化、Facebook 侧报表 | 用于出价优化 |
| 联盟网络 30 到 60 天 Cookie | 佣金是否成立 | 用于佣金口径 |
| 追踪系统的匹配窗口 | 你自己的内部归因 | 对齐联盟网络的 Cookie 窗口 |
实操上的做法是:广告系列层级的优化决策(暂停、放量、出价)用 Meta 的 7 天窗口;offer 层级的盈利分析用追踪系统的完整窗口数据。每周对一次账,确保两边没有出现大的偏差。
第 6 步:搭出你的归因报表
追踪接好之后,就该搭那张把广告花费和佣金数据连起来的报表了。
联盟归因核心报表
在联盟追踪系统里搭这张表,每天更新:
| 列 | 数据来源 |
|---|---|
| 广告系列(SubID1 → 广告系列名称) | 追踪系统 |
| 广告组(SubID2 → 广告组名称) | 追踪系统 |
| 广告(SubID3 → 广告名称) | 追踪系统 |
| 点击 | 追踪系统 |
| 转化 | 追踪系统(来自回传) |
| 已赚佣金 | 回传里的佣金数值 |
| 广告花费 | Meta 广告管理工具 API 或手工录入 |
| ROAS | 佣金 / 广告花费 |
| EPC(每次点击收入) | 佣金 / 点击 |
| 每次转化费用(CPA) | 广告花费 / 转化,算出来的 |
EPC 尤其有用:它衡量的是每一次点击值多少钱,和每次转化费用(CPA)无关,因此可以在佣金结构完全不同的几个 offer 之间做同口径比较。
把日报自动发出来
多数联盟追踪系统都支持自动的每日邮件报表。把你的配成每天早上发,内容包括:
- 昨天各广告系列的转化数与佣金
- 各广告系列的 ROAS
- 花了不少钱却零转化的广告系列
- EPC 与 7 天均值的对比
有了这份日报,早上一杯咖啡的工夫就能把昨夜的表现过一遍,不用挨个平台登录。
常见的对接故障和修法
| 故障 | 症状 | 修法 |
|---|---|---|
| 缺少点击 ID | 回传匹配不上点击 | 确认联盟网络在回传里传了点击 ID |
| SubID 显示为空 | 转化里没有广告系列数据 | 检查宏语法的 URL 编码 |
| 转化重复 | 转化数是预期的两倍 | 检查像素与回传的去重设置 |
| 佣金数值缺失 | 转化显示佣金为 $0 | 确认联盟网络传了佣金变量 |
| 回传延迟 | 转化过几个小时才出现 | 联盟网络处理有延迟属正常,注意超过 24 小时的情况 |
| CAPI 数据不出现 | 事件管理工具里看不到合作方数据 | 检查访问令牌权限和端点 URL |
这套追踪基建支撑的完整联盟投放体系,可以看我们的 Facebook 联盟投放权威指南。如果你在跑多地区广告,追踪系统在不同市场怎么调整,可以看多地区 Facebook 广告投放指南。
Wevion 的广告数据分析会接入你的追踪系统数据,把广告系列表现和 Facebook 侧的花费指标放在同一个视图里——不用再为了做每天的优化决策,在几个平台之间来回切。
继续探索
联盟营销
打开精选的主题总览页,本主题下的每一篇指南都在,从基础排到进阶。