Facebook API调用adaccount接口创建广告账户报错问题咨询
调用Facebook Marketing API创建商务平台下广告账户返回不支持POST请求错误
问题描述
- 参照官方接口说明,调用
/{business_id}/adaccount端点创建广告账户,发起POST请求的格式如下:
POST {FB_API_PATH}/{business_id}/adaccount?access_token={FB_ACCESS_TOKEN} Content-Type: application/json { "name": "Test", "currency": "USD", "timezone_id": 1, "end_advertiser": "{FB_APP_ID}", "media_agency": "{FB_AGENCY_ID}", "partner": "NONE", "funding_id": "{FB_FUNDING_ID}" }
- 请求返回错误信息:
Unsupported post request. Object with ID '{business_id}' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation
- 已排查确认:
{business_id}填写正确,使用该ID调用其他同属商务管理平台的接口均可正常返回- 在Graph Explorer中输入对应
{business_id}后,/adaccount端点不会出现自动补全提示
- 核心疑问:该错误是调用操作有误,还是该端点实际不可用,必须手动在后台创建广告账户?
问题原因与解决方案
这个错误不是端点失效导致,核心是权限不满足或者接口参数/准入条件不符合要求,按以下优先级排查:
- 先核对访问令牌权限
调用该接口需要的权限不是普通的广告读取权限,必须给当前调用的access_token授予business_management权限,同时你的应用需要完成Marketing API的准入审核,处于开发模式的应用仅能操作本人为管理员的测试商务管理平台资产,无法操作正式企业账户。
注意:哪怕你用同一个business_id能调用其他读接口,只要缺对应写权限,就会返回这类无权限/对象不存在的报错。 - 核对商务管理平台的资质状态
该接口仅对完成了商务验证、未处于违规受限状态的商务管理平台开放。如果你的商务管理平台是刚注册未完成验证、或者存在违规处罚记录,平台会直接屏蔽创建广告账户的接口能力,这也是你在Graph Explorer看不到该端点自动补全的核心原因。 - 核对请求体参数规则
你当前传的参数有两个常见错误:end_advertiser字段不能传应用ID,该字段要求填写的是广告最终投放主体对应的商务管理平台ID,如果你是为当前商务管理平台本身创建广告账户,该字段和media_agency字段不需要同时传,仅当你是代理商为其他主体代投时才需要填写对应主体的BM IDpartner字段枚举值不存在NONE,如果没有合作方,直接不传该字段即可,传错误枚举值也会触发接口不支持的报错。
- 特殊准入限制
部分地区的账户、新注册的商务管理平台,平台会默认关闭API创建广告账户的能力,这种情况确实需要先手动在商务管理平台后台创建至少1个广告账户、完成首次充值和账户验证后,接口能力才会开放。
内容的提问来源于stack exchange,提问作者elco45
相关产品推荐
相关产品推荐

