我尝试从与业务经理相关联的各种帐户中检索所有广告系列,广告和广告。
我访问的具体端点是:
https://graph.facebook.com/v2.8/act_xxxxxxxxxxxxx/campaigns
https://graph.facebook.com/v2.8/act_xxxxxxxxxxxxx/adsets
https://graph.facebook.com/v2.8/act_xxxxxxxxxxxxx/ads
当我使用filter
参数查询所有广告系列的部分时,
[{'operator': 'IN',
'field': 'ad.effective_status',
'value': [
'ACTIVE',
'PAUSED',
'DELETED',
'PENDING_REVIEW',
'DISAPPROVED',
'PREAPPROVED',
'PENDING_BILLING_INFO',
'CAMPAIGN_PAUSED',
'ARCHIVED',
'ADSET_PAUSED']}]
Facebook API始终返回此错误:
{"error":{"code":1,"message":"Please reduce the amount of data you're asking for, then retry your request"}}
filter
参数使用了各种值,例如1,25,50,100,500。date_preset
参数限制日期(这似乎无关紧要)。{'operator': 'IN','field':'campaign.id','value':['xxxxxxxxxxxxx']}
参数中添加filter
作为附加过滤器来过滤到各个广告系列来限制查询。/insights
端点,但我还没有工作。当我在过滤器中仅包含ACTIVE
个广告系列时,查询会起作用。这使我可以推断DELETED
广告系列是问题所在。换句话说,这些帐户有大量的DELETED
广告系列。
我使用Postman版本5.0.0(5.0.0)发出请求。
我想如果我能弄清楚如何获得广告系列,广告和广告就会类似。我该如何解决这个问题?
答案 0 :(得分:2)
原因是API实际上不支持查询某些端点的已删除对象。我尝试获取某个帐户的所有广告系列,这就是回复。
Method: GET
Path:
https://graph.facebook.com/v2.10/act_XXXX/campaigns
Params: {'effective_status': '["ACTIVE","PAUSED","DELETED","ARCHIVED"]', 'fields': 'id,name,status', 'summary': 'true'}
Response:
{
"error": {
"code": 100,
"is_transient": false,
"error_subcode": 1815001,
"error_user_msg": "Requesting for deleted objects is not supported in this endpoint.",
"error_user_title": "Cannot Request for Deleted Objects",
"message": "Invalid parameter",
"type": "OAuthException",
"fbtrace_id": "FYDwMABcwxj"
}
}
在查看文档后,我发现了这一点 https://developers.facebook.com/docs/marketing-api/best-practices/storing_adobjects
他们在这里陈述
如果保留已删除的对象ID,则可以继续检索 通过单独查询对象ID来统计数据或对象详细信息。 但是,您无法将已删除的对象检索为连接对象 来自未删除的节点/对象。