谷歌分析API中的自定义报告

时间:2013-09-30 11:55:58

标签: google-analytics

我的目标是检索从Google AnalyticsAPI在Google Analytics用户界面中创建的用户自定义报告。 我在云控制台中注册了应用程序,其中收到了证书文件并生成了开发人员还在GA UI的管理页面上为生成的电子邮件配置了访问权限(授予所有权限)。 为了实现我的目标,我尝试从服务中获取细分,但我不确定这是获取自定义报告的正确方法。因此,只获得13个默认段(带有负ID),它比我在Google API Explorer中可以获得的要少,例如其中一个

  

{“id”:“9MaL7mLnQbWO3k52Ipni5A”,“kind”:“analytics#segment”,

  “selfLink”:   “https://www.googleapis.com/analytics/v3/management/segments/gaid::9MaL7mLnQbWO3k52Ipni5A”,   “segmentId”:“gaid :: 9MaL7mLnQbWO3k52Ipni5A”,“名称”:“博客评论   提交者“,”“定义”:“ga:eventAction = @ commentform”}

我的问题是获取自定义报告的正确方法是什么?如果是,为什么我只获得默认段?

代码:

private readonly string scope = AnalyticsService.Scopes.Analytics.GetStringValue();

private const string clientId = "xxx-xxx@developer.gserviceaccount.com";

private const string keyFile = @"C:\xxx-privatekey.p12";

string keyPassword = "notasecret";

var desc = GoogleAuthenticationServer.Description;
var key = new X509Certificate2(keyFile, keyPassword, X509KeyStorageFlags.Exportable);

var client = new AssertionFlowClient(desc, key){
    ServiceAccountId = clientId,
    Scope = scope
};

var auth = new OAuth2Authenticator<AssertionFlowClient>(client, AssertionFlowClient.GetState);

var gas = new AnalyticsService(new BaseClientService.Initializer { Authenticator = auth, });

var request = gas.Management.Segments.List();

var d = request.Execute();

2 个答案:

答案 0 :(得分:3)

亚历山大,

我很抱歉这样说,但你的代码不起作用: - )

您正在使用Management API,它无法直接访问数据,但用于管理帐户设置,用户等:

  

使用Management API,您可以查询用户的帐户web   属性和视图(配置文件),确定哪些帐户细分   用户已配置,甚至检索有关目标的信息   配置视图(配置文件)。

我建议使用Core Reporting API。鉴于你的帖子的细节,我认为技术部分不会是一个问题。

要回答您的问题 - 即使有直接的方法可以让您创建自定义报告,只需使用您在网络界面中看到的相同维度/指标/过滤器/细分。

query structure非常简单,例如:

GET https://www.googleapis.com/analytics/v3/data/ga
  ?ids=ga:12345
  &start-date=2008-10-01
  &end-date=2008-10-31
  &metrics=ga:visits,ga:bounces

答案 1 :(得分:1)

很遗憾,您无法通过API访问自定义报告数据。这里有一个开放功能请求:Expose Custom Reporting trough API

Megalytic工具可能对您有用。它可以从API创建报告,您可以将其保存为模板,通过电子邮件或网络链接与他人共享,甚至可以使用您自己的封面或徽标与品牌共享。免责声明:我是Megalytic的创始人。