🔄 转化 API(Conversions API)
转化 API 旨在将广告主在自己服务器、网站平台、移动应用或 CRM 中的营销数据(如网站事件、应用事件、业务消息事件和线下转化量)与可优化广告定位、降低单次成效费用以及衡量广告成效的 Meta 系统建立关联。
广告商可以使用转化 API 发送多种事件类型,减少他们维护的单独集成数量。如果是直接集成,则必须在广告主服务器与 Meta 的转化 API 端点之间建立关联。
系统会将服务器事件与数据集编号关联,对服务器事件的处理方式与使用 Meta Pixel 像素代码、iOS SDK、Android SDK、移动应用成效衡量合作伙伴 SDK、线下事件集或 .csv 上传文件发送的事件处理方式相同。
文档导航
- API 参数: 可用于进一步优化广告归因和投放效果的必要参数和可选参数
- Payload 设置助手: 了解有效负载从你的服务器发送到 Meta 时应如何结构
- 疑难解答: 了解如何处理转化 API 返回的错误代码
立即开始
过程概览
- 选择适合您的集成方法
- 完成该实现方法所要求的必要先决条件
- 使用该集成方法加以实现
- 验证您的设置并遵循最佳实践来帮助改进广告表现
要求
- Pixel 像素代码编号: 在事件管理工具中查找
- Meta Business Suite: 用于管理资产和权限
- 访问口令: 两种方式:
- 使用事件管理工具推荐: 选择 Pixel 像素代码 → 设置 → 转化 API → 生成访问令牌
- 使用您自己的应用: 在 Meta Business Suite 中生成口令,无需接受应用审核
API 端点
POST https://graph.facebook.com/{API_VERSION}/{PIXEL_ID}/events?access_token={TOKEN}
批量请求
单次 data 数组最多 1,000 个事件。如果批量请求中有任何无效事件,整个批次将被拒绝。建议事件发生后 1 小时内发送。
哈希处理: 部分 user_data 参数(如 em、ph)需先进行 SHA256 哈希。
SDK 支持
| 语言 | SDK |
|---|---|
| PHP | Facebook Business SDK (PHP) |
| Node.js | Facebook Business SDK (Node.js) |
| Java | Facebook Business SDK (Java) |
| Python | Facebook Business SDK (Python) |
| Ruby | Facebook Business SDK (Ruby) |
参数
以下参数按组分类,包括必要的事件数据参数以及支持广告归因和广告投放优化的其他参数。
客户信息参数(需 SHA256 哈希)
| 参数 | 描述 |
|---|---|
em | 电子邮件地址 |
ph | 电话号码 |
fn | 名字 |
ln | 姓氏 |
ge | 性别 |
db | 出生日期 |
ct | 城市 |
st | 州/省 |
zp | 邮政编码 |
country | 国家代码 |
external_id | 外部唯一标识符 |
客户信息参数(无需哈希)
| 参数 | 描述 |
|---|---|
client_ip_address | 客户端 IP 地址 |
client_user_agent | 客户端用户代理 |
fbc | Facebook 点击 ID |
fbp | Facebook 浏览器 ID |
subscription_id | 订阅 ID |
lead_id | 潜客 ID |
anon_id | 匿名 ID |
madid | 移动广告主 ID |
page_id | 公共主页 ID |
服务器事件参数
| 参数 | 必需 | 描述 |
|---|---|---|
event_name | 是 | 事件名称(如 Purchase、Lead) |
event_time | 是 | 事件发生的 Unix 时间戳 |
user_data | 是 | 客户信息数据 |
action_source | 是 | 事件来源(website/app/phone_call/physical_store) |
event_source_url | 网站事件必需 | 事件发生的 URL |
event_id | 推荐 | 用于去重的唯一事件 ID |
opt_out | 否 | 用户是否选择退出 |
custom_data | 否 | 自定义数据(货币、金额等) |
最佳实践
实施建议
- 实现机器学习阶段最佳实践: 让机器学习模型有足够数据学习
- 避免对广告系列作出重大修改: 保持稳定以优化投放
- 尽量减少竞拍重叠: 避免同账户下广告互相竞争
- 选择自动版位和广告系列预算优化: 让系统自动分配预算
- 根据业务目标选择正确的竞价策略
设置冗余事件
搭配使用转化 API 和 Meta Pixel 像素代码分享相同的事件。这是提升数据可靠性的推荐做法。
去重要求
- 使用相同的
event_name - 包含
external_id与fbp的组合或event_id
匹配基准要求
如果某个事件仅包含 ct+country+st+zp+ge+client_user_agent 等组合或其子集,则将视为无效。
其他建议
- 务必定时刷新
fbp和fbc参数 - 更接近实时分享活动
- 使用测试活动工具验证设置
- 使用负载助手优化
- 使用业务 SDK 简化集成
- 为线下事件使用转化 API
处理重复的 Pixel 像素代码和转化 API 事件
为获得最佳广告表现,建议广告主在使用 Meta Pixel 像素代码的同时实现转化 API。这种称为"冗余设置"的做法需要设置去重方法。
事件去重选项
1. 事件编号和事件名称(推荐)
在转化 API 事件和浏览器 Pixel 像素代码事件中添加 event_id 参数:
- Meta Pixel 像素代码事件的
eventID必须与对应的转化 API 事件的event_id相匹配 - Meta Pixel 像素代码事件的
event必须与对应的转化 API 事件的event_name相匹配
// 浏览器 Pixel 像素代码(JavaScript)
fbq('track', 'Purchase', {
value: 100,
currency: 'USD'
}, { eventID: 'your_unique_event_id_123' });
// 转化 API(Python)
{
"event_name": "Purchase",
"event_time": 1234567890,
"event_id": "your_unique_event_id_123",
"user_data": {...},
"custom_data": {
"value": 100,
"currency": "USD"
}
}
2. FBP 或外部编号
使用 event_name、fbp 和/或 external_id 保持一致性进行自动去重。
方法局限性
- 通常只有在先发送浏览器事件,然后再发送服务器事件时才能去重
- 如果只使用一种事件源,则不会对事件进行去重处理
去重窗口
如果在 48 小时内发送至同一个 Pixel 像素代码编号的相同的服务器密钥组合(event_id 和 event_name)以及浏览器密钥组合(eventID 和 event),则会舍弃后续事件。