如何从GA API中检索合并的大量页面的总视图数



我们对Google Analytics核心报告API中不同页面的统计数据感兴趣。我发现同时查询多个页面统计信息的唯一方法是创建一个过滤器,如下所示:

ga:pagePath==page?id=a,ga:pagePath==page?id=b,ga:pagePath==page?id=c

这个get在get查询的filter参数中进行了转义。

然而,当GET查询超过2000个字符时,我会得到以下响应:

414. That’s an error.
The requested URL /analytics/v3/data/ga... is too large to process. That’s all we know.

注意,就像在示例调用中一样,每页唯一不同的部分是pagePath中的GET参数,但我们必须对指定度量(pagePath)和始终相同的路径部分的新过滤器进行OR运算。

有没有任何方法可以指定大量不同的页面进行查询,而不会在GET查询中达到这个限制(我找不到任何用于执行POST请求的文档)?或者,除了创建每个查询最多X个不同页面的批次并在我端将其相加之外,还有其他选择吗?

与其将ga:pagePath用作过滤器的一部分,不如将其用作维度。通过这种方式,每个查询最多可以获得10000行,并分页以获得所有结果。然后在客户端解析结果以获得所需内容。此外,如果可能的话,可以根据您的网站结构或页面名称使用筛选器来缩小结果范围。

我正在分享一个示例代码,您可以通过Items PerPage 的帮助获取超过10000条记录数据

private void GetDataofPpcInfo(DateTime dtStartDate, DateTime dtEndDate, AnalyticsService gas, List<PpcReportData> lstPpcReportData, string strProfileID)
        {
            int intStartIndex = 1;
            int intIndexCnt = 0;
            int intMaxRecords = 10000;
            var metrics = "ga:impressions,ga:adClicks,ga:adCost,ga:goalCompletionsAll,ga:CPC,ga:visits";
            var r = gas.Data.Ga.Get("ga:" + strProfileID, dtStartDate.ToString("yyyy-MM-dd"), dtEndDate.ToString("yyyy-MM-dd"),
                                    metrics);
            r.Dimensions = "ga:campaign,ga:keyword,ga:adGroup,ga:source,ga:isMobile,ga:date";
            r.MaxResults = 10000;            
            r.Filters = "ga:medium==cpc;ga:campaign!=(not set)";
            while (true)
            {
                r.StartIndex = intStartIndex;
                var dimensionOneData = r.Fetch();
                dimensionOneData.ItemsPerPage = intMaxRecords;
                if (dimensionOneData != null && dimensionOneData.Rows != null)
                {
                    var enUS = new CultureInfo("en-US");
                    intIndexCnt++;
                    foreach (var lstFirst in dimensionOneData.Rows)
                    {
                        var objPPCReportData = new PpcReportData();
                        objPPCReportData.Campaign = lstFirst[dimensionOneData.ColumnHeaders.IndexOf(dimensionOneData.ColumnHeaders.FirstOrDefault(h => h.Name == "ga:campaign"))];
                        objPPCReportData.Keywords = lstFirst[dimensionOneData.ColumnHeaders.IndexOf(dimensionOneData.ColumnHeaders.FirstOrDefault(h => h.Name == "ga:keyword"))];                       
                        lstPpcReportData.Add(objPPCReportData);
                    }
                    intStartIndex = intIndexCnt * intMaxRecords + 1;
                }
                else break;
            }
        }

只有一件事是有问题的,你的查询长度不应该超过2000多个字符

相关内容

  • 没有找到相关文章