出乎意料/无法预测的结果,并向Facebook Marketing Insights API提出了批处理请求



我有一个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个日期的数据被获取。

绝对找不到有关网络上此隐藏限制的详细信息 - 如果有人有进一步的信息,请添加此信息。

编辑:此后意识到我在文档中错过了一个分页系统。

最新更新