我正在尝试使用Java客户端库从Google AnalyticsAPI中提取一些维度和指标数据。
对于特定的viewID,我发现从今天开始我无法提取超过14个月和2天的数据。我只在Java客户端库和API以及某些特定视图中遇到此问题。在Google界面中,我可以看到所有报告,但没有14个月的限制。
这个Java代码:
DateRange dateRange = new DateRange().setStartDate(startDate).setEndDate(endDate);
DimensionFilter dimensionFilter = new DimensionFilter();
dimensionFilter.setDimensionName("ga:medium");
dimensionFilter.setOperator("EXACT");
dimensionFilter.setExpressions(Collections.singletonList("organic"));
DimensionFilterClause dimensionFilterClause = new DimensionFilterClause();
dimensionFilterClause.setFilters(Collections.singletonList(dimensionFilter));
MetricFilter metricFilter = new MetricFilter();
metricFilter.setMetricName("ga:sessions");
metricFilter.setNot(true);
metricFilter.setComparisonValue("0");
MetricFilterClause metricFilterClause = new MetricFilterClause();
metricFilterClause.setFilters(Collections.singletonList(metricFilter));
ReportRequest reportRequest = new ReportRequest()
.setViewId(viewID)
.setDateRanges(Collections.singletonList(dateRange))
.setSamplingLevel(samplinglevel.name())
.setPageSize(100000)
.setDimensionFilterClauses(Collections.singletonList(dimensionFilterClause))
.setMetricFilterClauses(Collections.singletonList(metricFilterClause))
.setDimensions(dimensionList)
.setMetrics(metricList)
.setIncludeEmptyRows(false);
我可以正常提取所有其他视图而没有限制,但对于特定的客户端,我发现了这个问题。
你对这个限制问题有什么看法吗?
我在Java中找不到有关这些限制的任何信息。
Google Analytics API有许多配额。 Limits and Quotas
General quota limits
- 每个项目每天50,000个请求,可以增加。
- 每个IP地址每秒10个查询(QPS)。在API控制台中,有一个类似的配额,称为每个用户每100秒的请求数。默认情况下,每个用户每100秒设置100个请求,并可以调整为最大值1,000。但是,对API的请求数限制为每个用户每秒最多10个请求。
- 如果您的应用程序从单个IP地址(即代表您的用户)发出所有API请求,请对每个请求使用userIP或quotaUser参数,以获取每个用户的完整QPS配额。有关详细信息,请参阅标准查询参数摘要
Reporting APIs
以下配额适用于所有Reporting API,包括Core Reporting API v3,Analytics Reporting API v4,Real Time API v3和Multi-channel Funnel API v3:
- 每个视图(个人资料)每天10,000个请求(无法增加)
- 每个视图10个并发请求(配置文件)(不能增加)
由于你还没有发布消息,我很难知道你打的是哪个配额。但是,如果你说它是一个单一的视图,那么我会建议我10000请求数据配额,并且该视图必须拥有比其他视图更多的数据。您无法扩展此配额。您只能调整请求,以便减少请求。
注意:Google并未使用与您相同的客户端ID,因此它们不受客户端限制的约束。如果您的客户自己运行超出配额,那么它将无法运行。这不会影响谷歌分析网站。
如果请求返回零行,那么这不是配额问题,根本没有您请求的日期和元数据的数据。
我怀疑你正在使用的所有过滤器都存在问题。
仅使用ga:date维度和ga:sessions指标运行请求。不要添加你的过滤器。运行它为2010-01-01 - 2019-01-01这可以帮助您找出数据开始记录的位置,或者它是否与您添加的所有过滤器有关。