从R从Google AnalyticsAPI获取数据时出错

时间:2017-02-13 10:41:09

标签: r google-api google-analytics-api

我可以使用RGA库从MCF API接收数据。共享查询:

SELECT (200/0.713788), 280.1952*0.713788, 280.195240043*0.713788 

上面的查询提取了14836行数据。当我试图增加数据范围时,我收到此错误。 错误:服务器错误:(500)内部服务器错误 响应太大:内部错误

有没有解决办法?

2 个答案:

答案 0 :(得分:1)

如果收到此错误,则可以按天对请求进行分块处理,以便一次请求就可以获取所有数据。像这样:

start_date <- "some_date"
end_date <- "some_date"

dates <- seq(as.Date(start_date), as.Date(end_date), by = 'day') #making vector of dates

mcf_data <- lapply(seq_along(dates), function(x){
  get_mcf(profileId = ,
          start.date = dates[x], end.date = dates[x], 
          metrics = "", 
          dimensions = "",
          samplingLevel = "")
})

mcf_data <- data.table::rbindlist(mcf_data) #binding to a dataframe

答案 1 :(得分:0)

如果您查看MCF API的文档,您会发现Max-results的有效值是介于1000和10000之间的数字。

  

max-results

     

max-results = 100可选。要包含的最大行数   响应。您可以将此与start-index结合使用以进行检索   元素的子集,或单独使用它来限制数量   返回元素,从第一个开始。如果不是最大结果   如果提供,查询将返回默认的最多1000行。

     

多渠道路径报告API最多返回10,000   每个请求的行数,无论你要求多少。它也可以回归   如果没有多少维度段,则行数少于请求的行数   如你所料。例如,可能的值少于300   对于mcf:medium,所以当仅通过媒体进行分段时,您无法获得更多   即使您将max-results设置为更高的值,也会超过300行。

如果响应中有超过10000行,则应该使用nextLink来检索下一组数据。

更新:出于好奇,我联系了Google AnalyticsAPI团队。我觉得很奇怪,你要获得更多行,那么你应该基于文档。这是我回来的回复

  

对我来说,听起来开发人员需要缩短日期   范围不能获得500服务器超时。我不知道他是怎么知道的   很多行的查询将在他得到500响应时返回,所以我   我认为他的问题仍然存在一些混乱。就我而言   知道我们没有改变响应中允许的行数,   但是我们仍然需要在我们身边构建完整的响应并进行排序,   所以如果行数很大并且服务器上的CPU使用率是   在请求期间,他很容易得到500超时错误。

     

话虽如此,我已经向后端团队询问最近是否有关于10k限制的任何变化。

   - 不得透露姓名的谷歌开发者 -