如何通过Facebook Marketing API获取所有草稿及已发布广告系列
解决方案
默认调用广告系列查询接口仅返回已发布资源,你需要在请求中额外添加2个参数即可同时获取已发布、草稿状态的所有广告系列:
CURL请求示例
curl -i -X GET \ "https://graph.facebook.com/v12.0/act_12345/campaigns?fields=id,name,effective_status&effective_status=['ACTIVE','PAUSED','DELETED','ARCHIVED','IN_PROCESS','WITH_ISSUES','DRAFT']&include_draft=true&access_token=<mytoken>"
参数说明
effective_status:枚举型参数,指定需要返回的广告系列状态,必须明确加入DRAFT值才能匹配草稿类广告系列,数组内可按实际需求删减不需要查询的状态include_draft:布尔型参数,默认值为false,手动设为true后接口才会将草稿资源纳入返回范围,你在SDK代码中找到的UnpublishedContentType相关逻辑就是和该参数的校验规则关联
Python SDK调用示例
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.campaign import Campaign ad_account = AdAccount('act_12345') campaigns = ad_account.get_campaigns( fields=[ Campaign.Field.id, Campaign.Field.name, Campaign.Field.effective_status, ], params={ 'effective_status': ['ACTIVE','PAUSED','DELETED','ARCHIVED','IN_PROCESS','WITH_ISSUES','DRAFT'], 'include_draft': True } )
注意事项
- 需确认你使用的access token拥有
ads_management权限,且对应Facebook账号对目标广告账户有至少广告编辑权限,权限不足时仍无法拉取草稿资源 - 该方案适配v10及以上版本的Marketing API,你当前使用的v12版本完全支持
内容的提问来源于stack exchange,提问作者Tea Tree
相关产品推荐
相关产品推荐

