【发布时间】:2014-03-23 00:57:59
【问题描述】:
我正在尝试使用本地控制台应用从谷歌分析中检索数据。我能够提取一些数据而无需登录谷歌帐户并且只使用 API。
问题是我没有得到正确的值,而且我不确定如何格式化代码来提取正确的值。我不想在某个时间范围内检索所有访问者,在本例中为“2012-01-01”-“2014-02-20”。在 Google Analytics(分析)仪表板中查看时,访问者的实际数量大约是 10 倍。调试代码时我得到了 15000 个数字。我在控制台中显示 d.TotalResults 可能是错误的,变量“d”包含许多不同的属性。
这是我正在运行的代码:
public static void Main(string[] args)
{
var serviceAccountEmail = "MY@developer.gserviceaccount.com";
var certificate = new X509Certificate2(@"C:\Users\User\Desktop\key.p12", "notasecret", X509KeyStorageFlags.Exportable);
var credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { AnalyticsService.Scope.Analytics }
}.FromCertificate(certificate));
// Create the service.
//Twistandtango
var gas = new AnalyticsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "TestGoogleAnalytics",
});
var r = gas.Data.Ga.Get("ga:MYProfileID", "2012-01-01", "2014-02-20", "ga:visitors");
//Specify some addition query parameters
r.Dimensions = "ga:pagePath";
r.Sort = "-ga:visitors";
r.MaxResults = 5;
//Execute and fetch the results of our query
Google.Apis.Analytics.v3.Data.GaData d = r.Execute();
Console.WriteLine(d.TotalResults);
Console.ReadLine();
}
我正在尝试使用此工具https://ga-dev-tools.appspot.com/explorer/ 查询我想要的结果。当我在我的代码中实现它时,它看起来像这样:
public static void Main(string[] args)
{
var serviceAccountEmail = "MY@developer.gserviceaccount.com";
var certificate = new X509Certificate2(@"C:\Users\User\Desktop\key.p12", "notasecret", X509KeyStorageFlags.Exportable);
var credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { AnalyticsService.Scope.Analytics }
}.FromCertificate(certificate));
// Create the service.
//Twistandtango
var gas = new AnalyticsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "TestGoogleAnalytics",
});
var r = gas.Data.Ga.Get("ga:MYProfileID", "2012-01-01", "2014-02-20", "ga:visits");
//Specify some addition query parameters
r.Dimensions = "ga:visitCount";
r.Metrics = "ga:visits";
r.Segment = "gaid::-1";
//r.Sort = "-ga:visitors";
r.MaxResults = 10000;
//Execute and fetch the results of our query
Google.Apis.Analytics.v3.Data.GaData d = r.Execute();
Console.WriteLine(d.TotalResults);
Console.ReadLine();
}
}
但是,将指标 (r.Metrics = "ga:visits";) 添加到项目后,我收到此错误:
无法将错误 7 属性或索引器“Google.Apis.Analytics.v3.DataResource.GaResource.GetRequest.Metrics”分配给 -- 它是只读的
这里还有一个 Analytics v3 中的类索引:
有人知道这是如何工作的吗?如何从我指定的时间范围内检索访问者总数??
谢谢
【问题讨论】:
-
您还选择了 PagePath,您必须将它们全部加起来以获得全部总数。你确定你不是在寻找访问者还是访客?
-
嗯,我只是在寻找我指定的日期之间的所有访问。所有访问总数,新的,旧的等。我如何总结它们?猜猜我还没有弄清楚这是如何工作的,尝试了不同的维度和指标,但我认为我没有正确格式化代码,因为我没有得到我期望的结果。我认为您可以组合过滤器或维度,但我不确定
标签: c# .net google-analytics google-analytics-api gdata