Google Analytics API v3 でカスタム ディメンションでフィルタした値を取得する - C#

Google Analytics API v3 でカスタム ディメンションでフィルタした値を取得するコードを紹介します。
サービス終了に関する注意
Google Universal Analytics はサービスを終了したため、現在はこの記事で紹介しているコードは動作しません。 新しい Google Analytics 4 (GA4) プロパティを利用する必要があります。 GA4プロパティからのデータ取得はこちらの記事を参照してください。

概要

Google Analytics API v3 でカスタム ディメンションの値ごとに集計したい場合や、特定のカスタムディメンジョンで特定の値のみを集計したいことがあります。この記事では、Google Analytics API v3を利用してカスタム ディメンションを利用して集計するコードを紹介します。

書式

カスタム ディメンションを利用する場合、ga:dimensionN (Nはインデックス番号) の記述を利用します。
ga:dimension[N]
[N]はカスタム ディメンションのインデックス番号です。

コード例1

Google Analyticsからの取得部分で下記のコードを記述した場合、カスタム ディメンションのインデックス1の値が "PremiumUser" のユーザー数を日単位で集計する動作になります。
  DataResource.GaResource.GetRequest request_user = service.Data.Ga.Get(ViewID, startdate, enddate, "ga:users");
  request_user .Filters = @"ga:dimension1==PremiumUser";
  request_user .Dimensions = "ga:date";
  GaData data_user = request_user .Execute();
  for (int i = 0; i < data_user.Rows.Count; i++) {
    textBox1.Text += data_user.Rows[i][0] + "\t" + data_user.Rows[i][1] + "\r\n";
  }

結果例

1番目の要素に日付が返され、2番目の要素にユーザー数が返されます。
data_user.Rows
[0][1]
2019080115
2019080218
201908037
2019080412
2019080521
201908069

コード例2

Google Analyticsからの取得部分で下記のコードを記述した場合、ユーザー数を日単位、カスタム ディメンションのIndex1の値ごとで集計する動作になります。
  DataResource.GaResource.GetRequest request_user = service.Data.Ga.Get(ViewID, startdate, enddate, "ga:users");
  request_user .Dimensions = "ga:date,ga:dimension1";
  GaData data_user = request_user .Execute();
  for (int i = 0; i < data_user.Rows.Count; i++) {
    textBox1.Text += data_user.Rows[i][0] + "\t" + data_user.Rows[i][1] + "\r\n";
  }

結果例

1番目の要素に日付が返され、2番目の要素にカスタム ディメンションの値、3番目の要素にカスタム ディメンションの値に対するユーザー数が返されます。
data_user.Rows
[0][1][2]
20190801not_set2
20190801PremiumUser5
20190801ExcellentUser1
20190802not_set1
20190802PremiumUser61
20190802ExcellentUser2
20190803not_set2
20190802PremiumUser8
20190802ExcellentUser4
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2019-09-06
iPentec all rights reserverd.