Meta Ads 连接器

通过 Tajo 将 Meta Ads(Facebook 和 Instagram)连接到 Brevo,同步自定义受众群体,通过 Conversions API 导入转化事件,并将付费社交广告与生命周期营销自动化相结合。

概览

属性
平台Meta Ads(Facebook、Instagram、Messenger、WhatsApp)
类别营销
设置复杂度高级
官方集成
同步数据受众群体、转化、营销活动、线索
可用技能8
API 版本v25.0(Graph API)

功能

  • 自定义受众群体同步 - 将 Brevo 联系人列表上传为 Meta 自定义受众群体
  • Conversions API(CAPI) - 发送服务器端转化事件以进行精确归因
  • 潜在客户表单同步 - 将 Facebook Lead Ads 提交内容直接导入 Brevo 联系人
  • 广告系列洞察 - 将广告绩效指标拉取到 Tajo 仪表板
  • 相似受众群体 - 从已同步的 Brevo 细分创建相似受众群体
  • 目录同步 - 同步产品目录用于动态产品广告
  • 多平台 - 单一集成覆盖 Facebook、Instagram、Messenger 和 WhatsApp 广告

前提条件

开始之前,请确保您已具备:

  1. Meta Business Manager 账户
  2. 具有营销 API 访问权限的 Facebook 应用
  3. 具有适当权限的系统用户
  4. 具有 ads_managementads_read 权限的访问令牌
  5. 具有 API 访问权限的 Brevo 账户
  6. 具有 API 凭据的 Tajo 账户

认证

系统用户访问令牌

Meta 建议对服务器到服务器集成使用系统用户令牌。这些令牌不会过期。

Terminal window
# Required permissions for System User
ads_management
ads_read
business_management
leads_retrieval
pages_read_engagement
catalog_management

应用级认证

Terminal window
curl -G "https://graph.facebook.com/v25.0/act_AD_ACCOUNT_ID/campaigns" \
-d "access_token=SYSTEM_USER_ACCESS_TOKEN" \
-d "fields=name,status,objective"

配置

基础设置

connectors:
meta_ads:
enabled: true
app_id: "your-facebook-app-id"
app_secret: "your-facebook-app-secret"
access_token: "your-system-user-access-token"
ad_account_id: "act_123456789"
business_id: "987654321"
pixel_id: "111222333444"
# Data sync options
sync:
custom_audiences: true
conversions_api: true
lead_forms: true
campaign_insights: true
# API version
api_version: "v25.0"

自定义受众群体配置

将 Brevo 列表同步到 Meta 自定义受众群体:

custom_audiences:
enabled: true
lists:
- brevo_list_id: 5
audience_name: "All Customers"
subtype: "CUSTOM"
- brevo_list_id: 6
audience_name: "High LTV Customers"
subtype: "CUSTOM"
- brevo_list_id: 7
audience_name: "Recent Purchasers"
subtype: "CUSTOM"
# Matching fields
match_keys:
- EMAIL
- PHONE
- FN # First name
- LN # Last name
- CT # City
- ST # State
- ZIP
- COUNTRY
schedule: "daily"
sync_mode: "mirror"

Conversions API 配置

conversions_api:
enabled: true
pixel_id: "111222333444"
test_event_code: "" # Set for testing, clear for production
events:
- brevo_event: "order_completed"
meta_event: "Purchase"
value_field: "revenue"
currency_field: "currency"
- brevo_event: "cart_updated"
meta_event: "AddToCart"
- brevo_event: "customer_created"
meta_event: "Lead"
- brevo_event: "page_viewed"
meta_event: "ViewContent"

API 端点

方法端点描述
POST/v25.0/act_{id}/customaudiences创建自定义受众群体
POST/v25.0/{audience_id}/users向自定义受众群体添加用户
DELETE/v25.0/{audience_id}/users从自定义受众群体移除用户
POST/v25.0/{pixel_id}/events发送 Conversions API 事件
GET/v25.0/act_{id}/campaigns列出广告系列
GET/v25.0/act_{id}/insights获取广告系列洞察
GET/v25.0/{form_id}/leads检索潜在客户表单提交内容
POST/v25.0/act_{id}/adcreatives创建广告创意
GET/v25.0/{catalog_id}/products列出目录产品

代码示例

初始化 Meta Ads 连接器

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connect Meta Ads account
await tajo.connectors.connect('meta-ads', {
appId: process.env.META_APP_ID,
appSecret: process.env.META_APP_SECRET,
accessToken: process.env.META_ACCESS_TOKEN,
adAccountId: 'act_123456789',
pixelId: '111222333444'
});

通过 Conversions API 发送事件

// Send a purchase event via Conversions API
const response = await fetch(
`https://graph.facebook.com/v25.0/${PIXEL_ID}/events`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
data: [{
event_name: 'Purchase',
event_time: Math.floor(Date.now() / 1000),
action_source: 'website',
user_data: {
em: [hashSHA256('[email protected]')],
ph: [hashSHA256('+15551234567')],
fn: [hashSHA256('jane')],
ln: [hashSHA256('kim')],
client_ip_address: '192.168.1.1',
client_user_agent: 'Mozilla/5.0...',
fbc: 'fb.1.1234567890.AbCdEfG', // Click ID
fbp: 'fb.1.1234567890.987654321' // Browser ID
},
custom_data: {
value: 89.99,
currency: 'USD',
content_ids: ['SKU-001'],
content_type: 'product'
}
}],
access_token: process.env.META_ACCESS_TOKEN
})
}
);

从 Brevo 列表同步自定义受众群体

// Upload a Brevo contact list as a Meta Custom Audience
await tajo.connectors.syncAudience('meta-ads', {
brevoListId: 5,
audienceName: 'High Value Customers',
matchKeys: ['EMAIL', 'PHONE', 'FN', 'LN'],
syncMode: 'mirror'
});

拉取广告系列洞察

// Get campaign performance metrics
const insights = await tajo.connectors.query('meta-ads', {
resource: 'campaigns',
fields: ['campaign_name', 'impressions', 'clicks', 'spend',
'actions', 'cost_per_action_type'],
dateRange: { since: '2024-01-01', until: '2024-01-31' },
level: 'campaign'
});

速率限制

资源限制详情
营销 API基于层级根据应用访问级别和消费额
自定义受众群体上传700 请求/小时每个广告账户
Conversions API2,000 事件/秒每个像素
洞察 API200 次调用/小时每个广告账户
潜在客户检索200 次调用/小时每个主页
批量请求每批 50 个请求每次批量调用

需要企业验证

完整的营销 API 访问权限需要在 Meta Business Manager 中进行企业验证。未验证的应用限于开发模式,速率限制较低。

故障排除

问题原因解决方案
OAuthException令牌已过期或无效重新生成系统用户访问令牌
自定义受众群体匹配率低数据质量差使用 SHA-256 哈希所有个人身份信息,包含多个匹配键
转化未归因缺少 fbc/fbp 参数从 Cookie 传递 Facebook 点击 ID 和浏览器 ID
RATE_LIMIT_REACHEDAPI 调用过多实施指数退避,检查 API 访问层级
潜在客户表单未同步缺少 leads_retrieval 权限向系统用户添加权限
事件处于测试模式仍设置了 test_event_code生产环境移除测试事件代码

最佳实践

  1. 使用系统用户令牌 - 系统用户为服务器集成提供稳定的、不过期的令牌
  2. 哈希所有个人身份信息 - 发送到 Meta 之前对所有个人身份信息进行 SHA-256 哈希
  3. 同时发送 CAPI 和 Pixel - 同时使用 Conversions API 和 Meta Pixel 进行冗余跟踪(含去重)
  4. 包含事件 ID - 在 CAPI 和 Pixel 事件上设置 event_id 以启用去重
  5. 传递 fbcfbp - 包含 Facebook 点击 ID 和浏览器 ID,最大化转化归因
  6. 验证您的企业 - 完成企业验证以获得完整 API 访问权限和更高速率限制
  7. 使用 test_event_code - 在 Events Manager 中测试 Conversions API 事件后再上线

安全

  • 系统用户令牌 - 非个人、企业范围的认证令牌
  • SHA-256 哈希 - 传输到 Meta 服务器前对所有个人身份信息进行哈希
  • App Secret Proof - 可选的额外认证安全层
  • 企业范围 - 权限限定在特定广告账户和主页范围内
  • Meta 合规 - 遵守 Meta 平台条款和广告政策
  • 数据处理条款 - 欧盟数据适用 Meta 数据处理条款

相关资源

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI 助手

你好!关于文档有任何问题都可以问我。