【发布时间】:2018-01-09 09:10:10
【问题描述】:
我使用 Google Analytics(分析)已经 2 个月了。我使用 NodeJS(快速/无服务器)创建了一个自定义仪表板,从核心报告 API 和实时报告 API 请求数据。我设法将它作为 AWS 上的 Lambda 函数。虽然我对此感到非常高兴,但我现在面临一些问题。
我收到以下错误:
{
"error":{
"errors":[
{
"domain":"global",
"reason":"dailyLimitExceeded",
"message":"Quota Error: profileId ga:NNNNN has exceeded the daily request limit."
}
],
"code":403,
"message":"Quota Error: profileId ga:NNNNN has exceeded the daily request limit."
}
}
和
{
"error":{
"errors":[
{
"domain":"usageLimits",
"reason":"userRateLimitExceeded",
"message":"User Rate Limit Exceeded"
}
],
"code":403,
"message":"User Rate Limit Exceeded"
}
}
我的仪表板如下所示:
当仪表板被访问时,它会调用实时 api 9 次(图像中的每个块都是一个查询调用)。我想我可以将“在线用户”、“今天的用户”和“今天的综合浏览量”调用合并为一个调用。今天的搜索和今天的订单由用于搜索特定事件的过滤器指定。
我有一个时间检查器,它允许在 07:00 到 19:00 之间查看仪表板。当它早于 07:00 或晚于 19:00 时,变量 checkTime 设置为 false,这使得仪表板显示一个带有文本的 div,例如“仪表板脱机”。当有人在允许的时间范围内访问仪表板时,变量 checkTime 被设置为 true,并且可以调用 Google API。
仪表板在 07:00 到 19:00 之间在电视屏幕上运行。这意味着仪表板在电视屏幕上的显示时间长达 12 小时。每 20 秒有一个函数调用来更新所有数据(因此再次发出 9 个请求)。
假设有
60 分钟 x 3 = 180 x 12 = 2160 x 9(请求数)= 19440 次请求 天。
我认为我不应该达到 50.000 个配额。但是我从 10.000 达到个人资料配额。
但是,当我查看开发者控制台时,我可以看到以下内容:
我认为我的选择如下:
将间隔增加到 1 分钟((60 x 12) x 9 请求每个视图 = 6480),这样就不应该超过配置文件配额。但这并不能真正使仪表板变得实时。
创建一个运行查询的服务器(增加 1 分钟的间隔),将结果保存到数据库中。仪表板向数据库发出 GET 请求。这样多个电视屏幕应该能够请求数据。
问题:我是否也可以创建多个服务帐户,并在达到限制时切换到其他服务帐户,或者这不能修复 profileid 限制?
【问题讨论】:
标签: node.js google-analytics google-api google-analytics-api quota