Ruby で Google Analytics 4 (GA4) の「アカウント」や「プロパティ」を API で取得する方法

結論

gem として google-analytics-admin-v1alpha を用います。各種データを取得するための Data API とは異なるので注意です。

公式ドキュメント

cloud.google.com

具体的なコード例

具体的なコード例は次のとおりです。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 が楽だと思います

Powered by はてなブログ