在同一查询中获取广告及其图片

问题描述:

我在使用图表API并尝试获取包含他们的见解和发布图片的广告列表。在同一查询中获取广告及其图片

我不想为此做多个查询,因为即使在使用批量查询时,我也很快达到了“(#17)用户请求达到的限制”问题。

我当前的查询看起来是这样的:

/ACCOUNT_ID_HERE/ads?fields=insights{cpc,reach,spend,clicks,ctr},status,creative 

现在,为了得到这个职位的形象,我需要返回的广告ID,而在另一个查询中使用它拉后是这样的:

/CREATIVE_ID/?fields=object_story_id 

然后使用返回的故事ID拉图所示:

/OBJECT_STORY_ID/?fields=picture 

有什么办法可以将这些查询结合起来做更少的请求吗?

喜欢的东西:

/ACCOUNT_ID_HERE/ads?fields=insights{cpc,reach,spend,clicks,ctr},status,creative{object_story_id{picture}}' 

任何帮助表示赞赏。谢谢。

+0

有时没有'creative',有时'/ '为零。 – Nakilon

+0

是的,但这是否意味着没有办法将这些请求合并? –

+0

您应该至少可以在同一个调用'adcreatives {object_story_id}'中获取故事标识。 – serg

Facebook的Batch API可能适合你。它允许从一个HTTP请求中创建多个Graph API调用,并支持这些请求之间的依赖关系。阅读文档以获取详细信息,这里有一个示例如何调用可能的工作(我没有执行此调用,因此请根据API文档和测试进行检查)。

curl \ 
-F 'access_token=...' \ 
-F 'batch=[ 
    { 
    "method":"GET", 
    "name":"ads", 
    "relative_url":"/ACCOUNT_ID_HERE/ads?fields=insights{cpc,reach,spend,clicks,ctr},status,creative", 
    }, 
    { 
    "method":"GET", 
    "name":"creative", 
    "relative_url":"/{result=ads:$.data.*.creative}/?fields=object_story_id" 
    }, 
    { 
    "method":"GET", 
    "relative_url":"/{result=creative:$.data.*.object_story_id}/?fields=picture" 
    } 
]' \ 
https://graph.facebook.com 
+0

感谢@bjeavons的帮助,但正如我的问题所述,我已经在使用批次,并且导致我达到此限制。我想这批中的每个请求都是一次计算的。 –

+0

啊,我误解了这个方法也是对你的限制。是的,批次中的每个请求都被认为是一个请求 - “您也可以使用批处理API批量处理请求,但请注意,每个子请求都是自己的API调用,或者在指定多个API请求时IDS“。 https://developers.facebook.com/docs/graph-api/advanced/rate-limiting – bjeavons