私の目標は、Google アナリティクス UI で作成されたユーザーのカスタム レポートを Google アナリティクス API から取得することです。証明書ファイルを受け取り、開発者の電子メールを生成した Cloud コンソールにアプリケーションを登録しました。また、GA UI の管理ページで生成された電子メールへのアクセス (すべての権限を付与) を構成しました。目標を達成するために、サービスからセグメントを取得しようとしていますが、カスタム レポートを取得する正しい方法かどうかはわかりません。その結果、13 個のデフォルト セグメント (負の ID を持つ) しか得られず、Google API Explorer で受け取ることができるよりも少なくなります。たとえば、そのうちの 1 つです。
{ "id": "9MaL7mLnQbWO3k52Ipni5A", "kind": "analytics#segment",
"selfLink": " https://www.googleapis.com/analytics/v3/management/segments/gaid::9MaL7mLnQbWO3k52Ipni5A ", "segmentId ": "gaid::9MaL7mLnQbWO3k52Ipni5A", "name": "ブログコメント送信者", "definition": "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();