【问题标题】:Error While Fetching Data From Google Analytics API from R从 R 的 Google Analytics API 获取数据时出错
【发布时间】:2017-02-13 10:41:09
【问题描述】:

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

temp_data <- get_mcf(profileId = "xxxxxxxxx", start.date = "2017-01-09",
     end.date = "2017-01-31", metrics = "mcf:totalConversions",
     dimensions = "mcf:sourceMediumPath", sort = NULL,
     filters = "mcf:conversionType==Transaction",
     samplingLevel = NULL,start.index=1,max.results = 100000)

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

有什么解决办法吗??

【问题讨论】:

  • 增加数据范围或日期范围?
  • 增加日期范围会增加数据

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


【解决方案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

【讨论】:

    【解决方案2】:

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

    max-results

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

    Multi-Channel Funnels Reporting API 最多返回 10,000 个 每个请求的行数,无论您要求多少。它也可以返回 如果没有那么多维度段,则行数少于请求的行数 如你所料。例如,可能的值少于 300 个 对于 mcf:medium,因此当仅按介质进行分段时,您将无法获得更多 超过 300 行,即使您将 max-results 设置为更高的值。

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

    更新:出于好奇,我联系了 Google Analytics API 团队。我觉得奇怪的是你得到了更多的行,然后你应该基于文档。这是我收到的回复

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

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

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

    【讨论】:

    • 感谢您的回复。如上所述,此代码使用批处理一次性获取了 14386 行数据。因此,我认为这不是可以从 API 中提取的每个请求的限制问题
    • 检查更新我觉得你说你收到的行数很奇怪所以我联系了谷歌这里是回复。
    • 是的,我知道我们有 10000 行的限制,但在这种情况下,我使用了 RGA 包中包含的称为自动分页的功能。自动分页返回超过 10,000 行的结果组合多个数据请求。我已经参考了这个文件:cran.r-project.org/web/packages/RGA/RGA.pdf.
    • 服务器在返回给你之前仍然需要处理完整的结果集。如果您继续看到错误消息,您可能想尝试将其分解为日期范围较小的块。
    • 是的。现在我们在同一页面上。我希望有一些解决方法。
    猜你喜欢
    • 2015-10-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多