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

时间:2016-09-25 21:49:29

标签: facebook facebook-graph-api facebook-marketing-api

我正在使用图表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}}'

感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

Facebook的Batch API可能适合你。它允许从单个HTTP请求进行多个Graph API调用,并支持这些请求之间的依赖关系。阅读文档以获取详细信息,这里是一个示例curl调用可能如何工作(我没有执行此调用,因此请查看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