You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Facebook Marketing API调用失败求助:按官方示例编写仍报错

解决Facebook Marketing API创建Campaign返回400错误(错误码100/子码33)

针对你遇到的调用create_campaign接口返回400错误的问题,以下是具体排查和解决步骤:

1. 修正广告账户ID格式

Facebook广告账户ID必须以act_作为前缀,你的代码中使用的纯数字ID不符合要求,这是触发该错误的常见原因。修改后的ID格式应为:

id = 'act_1319248112287380'

2. 验证Access Token权限

  • 确保你的Access Token拥有ads_management、business_management权限,这是创建广告系列的必要权限。
  • 如果使用沙箱环境,需确认沙箱广告账户已绑定到你的应用,且Access Token是在沙箱模式下生成的。

3. 检查广告目标参数有效性

OUTCOME_TRAFFIC是较新的结果型目标,部分账户或地区可能暂不支持。尝试替换为经典的TRAFFIC目标测试:

params = {
  'name': 'My campaign',
  'objective': 'TRAFFIC',
  'status': 'PAUSED',
}

4. 调整special_ad_categories参数

当无特殊广告类别时,可直接省略该参数,避免空数组被解析为字符串[]导致格式错误。若必须保留,需确保参数格式正确:

params = {
  'name': 'My campaign',
  'objective': 'TRAFFIC',
  'status': 'PAUSED',
  'special_ad_categories': None,
}

5. 验证账户可访问性

先调用账户查询接口确认权限和账户有效性:

print(AdAccount(id).get_fields())

若该请求仍返回相同错误,说明账户ID无效或Access Token无访问权限,需重新确认账户归属或生成正确的Token。

修改后的完整示例代码

from facebook_business.adobjects.adaccount import AdAccount
from facebook_business.adobjects.campaign import Campaign
from facebook_business.api import FacebookAdsApi

access_token = '#############'
app_secret = '##############'
app_id = '###############'
# 修正账户ID格式
id = 'act_1319248112287380'
FacebookAdsApi.init(access_token=access_token)

fields = []
params = {
  'name': 'My campaign',
  'objective': 'TRAFFIC',
  'status': 'PAUSED',
}
print(AdAccount(id).create_campaign(
  fields=fields,
  params=params,
))

内容的提问来源于stack exchange,提问作者Daniel Moen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 19:01:19