无法从Google Analytics中检索超过10,000条记录

我开发了一个Windows控制台应用程序,它可以提取Google Analytics数据并写入.CSV文件。 在Google Analytics(分析)查询资源管理器中查询特定日期的数据时,它显示: – “您的查询符合96782结果…”。

问题是当我使用应用程序查询相同日期的数据时,默认情况下它只返回1000条记录,当我设置时

DataResource.GaResource.GetRequest objRequest.MaxResult超过10k,然后它给了我最大10k的记录。

有没有办法让记录超过10k。

所以我做的是,我设置了Request.MaxResult = 10000和Response.ItemsPerPage = 10000.具有分页机制的Request.StartIndex扮演了至关重要的角色,例如在第一循环中我们将获得1-10000行然后10001-20000。 …… 20001-30000等。

在循环下,对特定日期的数据的请求最初设置为Request.StartIndex = 1,然后一旦行计数达到第10000行就连续增加到MaxResult + 1,例如: – Request.StartIndex = 1然后10001然后20001 … .30001 … 40001等等直到Response.Rows == null。

这是我的代码: –

  StringBuilder sbrCSVData = new StringBuilder(); int intStartIndex = 1; int intIndexCnt = 0; int intMaxRecords = 10000; AnalyticsService objAnaSrv = new AnalyticsService(objInit); string metrics = "ga:visitors,ga:visits,ga:visitBounceRate,ga:pageviews,ga:pageviewsPerVisit,ga:uniquePageviews,ga:avgTimeOnPage,ga:exits,ga:avgPageLoadTime,ga:goal1ConversionRate"; DataResource.GaResource.GetRequest objRequest = objAnaSrv.Data.Ga.Get(strProfId, startDate,endDate, metrics); objRequest.Dimensions = "ga:visitCount,ga:browser,ga:browserVersion,ga:IsMobile,ga:screenResolution,ga:date,ga:hour"; objRequest.MaxResults = 10000; while (true) { objRequest.StartIndex = intStartIndex; GaData objResponse = objRequest.Fetch(); objResponse.ItemsPerPage = intMaxRecords; if (objResponse.Rows != null) { intIndexCnt++; for (int intRows = 0; intRows < objResponse.Rows.Count; intRows++) { IList lstRow = objResponse.Rows[intRows]; for (int intCols = 0; intCols <= lstRow.Count - 1; intCols++) { strRowData += lstRow[intCols].ToString() + "|"; } strRowData = strRowData.Remove(strRowData.Length - 1, 1); sbrCSVData.Append(strRowData + "\r\n"); strRowData = ""; } intStartIndex = intIndexCnt * intMaxRecords + 1; } else break; } 

是的,文档中提到了这件事。 要获得更多数据,一般做法是将时间间隔或任何条件细分,然后执行多次查询以获取数据。 请阅读https://developers.google.com/analytics/devguides/reporting/core/v3/limits-quotas以获取完整详细信息希望它可能对您有所帮助