Google AnalyticsAPI是否会限制请求?

时间:2015-05-29 06:02:21

标签: google-api google-analytics-api

Google AnalyticsAPI是否会限制请求?

我们有一个批处理脚本,我刚刚从API的v2移动到v3,并且第一位(50个查询左右)的请求完成得非常好,然后它们开始大约需要4个左右。谷歌是否会扼杀我们?

2 个答案:

答案 0 :(得分:2)

虽然马修是正确的,但我还有另一种可能性。 Google Analytics API会在一定程度上兑现您的请求。让我试着解释一下。

我有一个客户/网站,我从中请求数据。测试时我发现了一些奇怪的东西。

  1. 第一百万行结果会在可接受的时间内返回。
  2. 在一百万行的事情开始变慢之后我们看到结果以5倍的时间返回,而不是5分钟,我们等待20分钟或更长时间才能返回结果。
  3. 示例:

      

    请求网址:   https://www.googleapis.com/analytics/v3/data/ga?ids=ga:34896748&dimensions=ga:date,ga:sourceMedium,ga:country,ga:networkDomain,ga:pagePath,ga:exitPagePath,ga:landingPagePath&metrics=ga:entrances,ga:pageviews,ga:exits,ga:bounces,ga:timeOnPage,ga:uniquePageviews&filters=ga:userType%3D%3DReturning+Visitor;ga:deviceCategory%3D%3Ddesktop&start-date=2014-05-12&end-date=2014-05-22&start-index=236001&max-results=2000&oauth_token= {OauthToken}   请求时间(秒:毫秒):: 0:484

         

    请求网址:   https://www.googleapis.com/analytics/v3/data/ga?ids=ga:34896748&dimensions=ga:date,ga:sourceMedium,ga:country,ga:networkDomain,ga:pagePath,ga:exitPagePath,ga:landingPagePath&metrics=ga:entrances,ga:pageviews,ga:exits,ga:bounces,ga:timeOnPage,ga:uniquePageviews&filters=ga:userType%3D%3DReturning+Visitor;ga:deviceCategory%3D%3Ddesktop&start-date=2014-05-12&end-date=2014-05-22&start-index=238001&max-results=2000&oauth_token= {OauthToken}   请求时间(秒:毫秒):: 7:968

    我做了很多测试停止并启动我的应用程序。我无法弄清楚为什么数据在开始时如此之快,然后再缓慢。

    现在我在Google Analytics开发团队中与负责API的人员建立了联系。所以我制作了一个不错的测试应用程序,记录了一些显示我的问题的结果并将其发送给他们。问题Are you throttling me?

    他们也困惑了,并告诉我API上没有油门。马修谈到了防洪限制。我的开发者联系人将其转发给负责流量的人员。

    快进几周。当我们向大量数据请求时,Google会为我们提供数据。它保存在服务器上,我们再次请求它。通过重新启动我的应用程序,我正在访问兑现的数据,它会快速返回。当我让应用程序运行时间更长时,我会突然达到非兑现数据,并且它们需要更长时间才能返回请求。

    我问数据兑换多久,回答没有固定的时间。所以我不认为你被扼杀了。我认为您的初始快速请求是兑现数据,而较慢的请求是非兑现数据。

    从谷歌发回电子邮件:

      

    嗨琳达,

         

    我和工程师谈过,他们看了看。回应是   基本上他们认为这是因为缓存。回应是   下面。如果您可以执行一些其他查询来确认该行为   它可能会有所帮助。但是,他们需要确定的是它是否正确   因为你正在查询和点击缓存的结果(因为你已经   已经要求提供这些数据)。无论如何,看看评论   如果您有其他问题或结果,请告诉我们   你可以分享。

         

    与工程师交谈的总结:"我们缓存中尚未存在的项目   检索处理时间比已经存在的项目慢   在缓存中。第一个查询将响应加载到我们的缓存中   不使用缓存的典型查询时间约为7秒   使用缓存是几毫秒。我们也可以证实这一点   就我们所知,你没有达到任何价格限制。

         

    要确认这是否确实是您的情况,您可能会这样做   想要第二次重新运行验证的慢查询,看看下一个   查询速度很快(这可能是你在什么时候看到的   你说你将请求URL粘贴到浏览器中并返回结果   即刻)"

         

    - IMBA Google AnalyticsAPI开发人员 -

答案 1 :(得分:0)

Google的Analytics API确实根据其文档设定了费率限制:https://developers.google.com/analytics/devguides/reporting/core/v3/coreErrors

但是它们不应该导致延迟请求,而应该返回请求,响应为:403 userRateLimitExceeded

该错误的描述: 表示已超出用户速率限制。每个IP地址的最大速率限制为10 qps。 Google Developers Console中设置的默认值为每个IP地址1个qps。您可以将Google Developers Console中的此限制提高到最高10 qps。

Google推荐的行动方案: 使用指数退避重试。您需要降低发送请求的速度。