結論
gem として google-analytics-admin-v1alpha
を用います。各種データを取得するための Data API とは異なるので注意です。
公式ドキュメント
具体的なコード例
具体的なコード例は次のとおりです。Data API のとき とほぼ同じです。
(1) client
を定義し、
(2) リクエスト内容のオブジェクトを定義し、
(3) その内容を client
のメソッドを用いて投げる、
とレスポンスが返ってくる、という流れです。
認証は Data API のとき と同じく、サービスアカウントの 認証用 JSON ファイル のパスを環境変数で指定します。
require 'google/analytics/admin/v1alpha' ENV['ANALYTICS_ADMIN_CREDENTIALS'] = 'credentials.json' client = Google::Analytics::Admin::V1alpha::AnalyticsAdminService::Client.new # パターン1: ListAccounts request = Google::Analytics::Admin::V1alpha::ListAccountsRequest.new responses = client.list_accounts(request) responses.each do |response| puts response end # パターン2: GetAccount request = ::Google::Analytics::Admin::V1alpha::GetAccountRequest.new( name: 'accounts/アカウントの数値' ) response = client.get_account(request) # パターン3: ListProperties request = Google::Analytics::Admin::V1alpha::ListPropertiesRequest.new( filter: 'parent:accounts/アカウントの数値' ) res = client.list_properties(request) response = res.response # res の下に response があるのでちょっといびつ properties = response.properties properties.each do |property| puts property.name puts property.display_name property_id = property.name.gsub('properties/', '') puts property_id end
注意点
取得できる情報は「サービスアカウントの権限が取得できる情報」であることに注意が必要です*1。
*1:個々人の Google アカウント でサクッと情報を取得したいならば GAS が楽だと思います