Google api 如何从GA API检索合并的大量页面的总视图计数
我们对Google Analytics核心报告API中不同页面的统计数据感兴趣。我发现,要同时查询多个页面的统计信息,唯一的方法是创建如下过滤器:Google api 如何从GA API检索合并的大量页面的总视图计数,google-api,google-analytics-api,Google Api,Google Analytics 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 /analyti
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
)以及路径中始终相同的部分
有没有办法在GET查询中指定要查询的大量不同页面而不达到此限制(我找不到任何用于执行POST请求的文档)?或者,除了为每个查询创建最多X个不同页面的批处理并将它们添加到my end之外,还有其他方法吗?不要将ga:pagePath用作筛选器的一部分,而应该将其用作维度。通过这种方式,每个查询最多可以获得10000行,并分页以获得所有结果。然后在客户端解析结果以获得所需的内容。此外,如果可能的话,还可以根据您的网站结构或页面名称使用筛选器来缩小结果的范围。我正在共享一个示例代码,您可以通过每页项目的帮助获取超过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;
}
}
private void GetDataofPpcInfo(DateTime dtStartDate、DateTime dtEndDate、分析服务气体、列表lstPpcReportData、字符串strProfileID)
{
int intStartIndex=1;
int intIndexCnt=0;
int intMaxRecords=10000;
var metrics=“ga:impressions,ga:adClicks,ga:adCost,ga:goalCompletionsAll,ga:CPC,ga:Visitions”;
var r=gas.Data.Ga.Get(“Ga:+strProfileID,dtStartDate.ToString(“yyyy-MM-dd”),dtEndDate.ToString(“yyyy-MM-dd”),
指标);
r、 Dimensions=“ga:campaign,ga:keyword,ga:adGroup,ga:source,ga:isMobile,ga:date”;
r、 MaxResults=10000;
r、 Filters=“ga:medium==cpc;ga:campaign!=(未设置)”;
while(true)
{
r、 StartIndex=intStartIndex;
var-dimensionedata=r.Fetch();
dimensionedata.ItemsPerPage=intMaxRecords;
if(dimensionedata!=null&&dimensionedata.Rows!=null)
{
var enUS=新文化信息(“美国”);
intIndexCnt++;
foreach(dimensionedata.Rows中的第一个变量)
{
var objPPCReportData=new PpcReportData();
objPPCReportData.Campaign=lstFirst[DimensionedOneData.ColumnHeaders.IndexOf(dimensionOneData.ColumnHeaders.FirstOrDefault(h=>h.Name==“ga:Campaign”));
objPPCReportData.Keywords=lstFirst[DimensioneData.ColumnHeaders.IndexOf(DimensioneData.ColumnHeaders.FirstOrDefault(h=>h.Name==“ga:关键字”));
添加(objPPCReportData);
}
intStartIndex=intIndexCnt*intMaxRecords+1;
}
否则就断了;
}
}
唯一值得注意的是,您的查询长度不应超过2000多个字符您最终必须执行多个查询。有一种方法可以获取数据,但在提供PageID时,必须将其放入过滤器中。过滤器的总长度不能超过2000个字符。您要查询多少页?如果它使总查询长度小于2000,那么请让我知道我在哪里获得上述实现的帮助