使用时间范围在Facebook营销API的广告洞察中

9

我正在尝试获取在两个日期之间我的广告的展示次数。

我正在使用Graph API Explorer,路径如下:

act_0123456789/ads?fields=insights{ad_id,ad_name,impressions}

我想使用'时间范围'属性,我们可以在营销API参考中找到它,但我不知道语法。 有人可以帮我吗?
3个回答

23

我无法评论你正在使用的方法,因为我自己没有使用过。然而,这里有一种替代方法,我已经成功地使用过:

https://graph.facebook.com/v2.5/act_xyz/insights?level=<yourLevel>&fields=ad_id,ad_name,impressions&time_range[since]=2016-02-15&time_range[until]=2016-02-16&limit=25

其中<yourLevel>可以是以下之一:adadsetcampaign

请注意,我在Java中使用的是简单的HTTP请求,这就是为什么我向您展示了请求本身。希望您能推广到您自己的解决方案。


1
意思是:其中<yourLevel>可以是以下之一:广告、广告集或广告系列。 - Al Ducent
成功了!非常感谢!我必须指定“insights?level=ad&fields[...]”而不是“/ads?fields=insights[...]”。 - David
你好。是否可以包括小时和分钟? - Gokigooooks
1
根据API文档,我认为它仅支持YYYY-MM-DD格式:https://developers.facebook.com/docs/marketing-api/insights/parameters/v2.9(向下滚动到time_range)。 - redwulf

10

使用你在问题中展示的相同端点

act_0123456789/ads?fields=insights{ad_id,ad_name,impressions}

指定时间范围的方式是:

act_0123456789/ads?fields=insights.time_range({"since":"2017-08-07","until":"2017-08-14"}){ad_id,ad_name,impressions}

(当然,这两个日期只是作为示例提供)


1
注意事项:此答案是在FB Api的v2.4版本下提供的,我不知道在v3.3+版本上是否仍然有效,而且我已经不再使用这个API,也没有任何页面/业务的访问权限来尝试它。 - ffflabs

3
做到这一点最简单的方法是:
act_0123456789?fields=ads{insights.time_range({"since":"2019-03-03","until":"2019-03-03"}).time_increment(1){impressions}}

如果您不需要每天的数据,请删除 .time_increment(1)

您可以使用{}来表示子字段,例如

 act_0123456789?fields=campaigns{ads{name,insights,adcreatives{image_url}}}

您可以使用“.”和“()”来表示参数,但请确保您在使用这些参数后再使用字段,按照以下顺序使用:.(){}

act_0123456789?fields=campaigns.limit(1).time_range({"since":"2019-03-03","until":"2019-03-03"}).time_increment(1).breakdowns(country){ads{name,insights.time_range({"since":"2019-03-03","until":"2019-03-03"}).time_increment(1).breakdowns(country),adcreatives{image_url}}}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接