我有一个Google Apps脚本,该脚本将批处理请求发送到Facebook Marketing API(Insights)。我正在获取移动安装,每天在几个广告系列上花费广告。但是,对于大量数据而言,结果是出乎意料的。
批处理中的每个相对URL都要求对单个Facebook广告系列进行一日细分:
:{"method":"GET",
"relative_url":"<CAMPAIGN_ID>/insights?fields=actions,spend&time_range={'since':'yyyy-mm-dd','until':'yyyy-mm-dd'}&time_increment=1"}
在给定的日期范围内,我正在为n
创建一个批处理请求URL,例如:
var fbCampaigns = [ C1, C2, C3 ... ];
var batchRequests = [];
for(var i=0; i<fbCampaigns.length; i++) {
// URL encoded version of the relative URL above
batchRequests.push("%7B%22method%22%3A%22GET%22%2C%22relative_url%22%3A%22"
+ fbCampaigns[i]+"%2Finsights%3Ffields%3Dactions%2Ccampaign_id%2Cspend%26"
+ "time_range%3D%7B%27since%27%3A%27"+start+"%27%2C%27until%27%3A%27"
+ end+"%27%7D%26time_increment%3D1%22%7D");
}
var url = "https://graph.facebook.com/v2.11/?batch=["
+ batchRequests.join(",")
+ "]&access_token="+fbToken;
由于URL的时间太长,我将广告系列数组分为5的一部分,并分别为每个部分运行上述。
这在一个日期或短期范围内都可以很好地工作。但是,对于更大的日期范围(100 ),它将首先获取正确的数据,然后突然开始检索所有,仅或没有一个广告系列的数据,这是完全不可预测的。
我没有收到有关节流的任何错误代码或警告。我的问题是,在允许的日期数量或批处理请求数量中,我是否缺少某个限制?这很奇怪,因为我只为我的整个数据提出了三个批次请求。
找到了问题!在寻找模式之后,我意识到每个广告系列的>最多51个日期的数据被获取。
绝对找不到有关网络上此隐藏限制的详细信息 - 如果有人有进一步的信息,请添加此信息。
编辑:此后意识到我在文档中错过了一个分页系统。