前提としてgoogle analyticsを使用しているRails(ruby)アプリがあること
目的は自分のwebサイト(マッチングサービス)で現在訪問しているアクティブのユーザの数を表示させたかったのです。
要所で参考にできる記事がなかなか見つからず苦労しました。。
Google APIの英語ドキュメントをたどたどしく読みながら実装できました。
ビギナーでもできるかと思います。
1. gemを使います。
gem "google-api-client"
$ bundle install
2. Analytics API の利用申請をする
ここから → Google Cloud platform
認証のJSonファイルをダウンロードするとこまで以下のリンクを参考にしてください
→この記事がとてもわかりやすかったです
ダウンロードされる認証用のjsonファイルのサンプル
{
"type": "service_account",
"project_id": "hogehoge",
"private_key_id": "asdjghjsdhgajsdhgakjsdhka",
"private_key": "-----BEGIN PRIVATE KEY-----\nyw\sdfjghsdljkrghlwinevhrugilvjrsdhglnvjdhgvksjhgklvjsrhgklnvjdhvgklsjhkskdfjgskdfjsknfjlskdfjmsvlkdfjglskdjflmvkdjfmlgskflm;skjfdl;gkn\n-----END PRIVATE KEY-----\n",
"client_email": "hogehogehgoehgoe.iam.gserviceaccount.com",
"client_id": "11111111111111111111111111",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/hogehoge.iam.gserviceaccount.com"
}
⚠︎client_secret.jsonとget_active.rbは同じ階層に置いてください。
3. rubyファイルでApiを使う
require "pry"
require 'google/apis/analytics_v3'
CREDENTIAL_PATH = 'client_secret.json' # 各自適切なパスにしてください
SCOPES =['https://www.googleapis.com/auth/analytics.readonly']
client = Google::Apis::AnalyticsV3::AnalyticsService.new
# 認証
client.authorization = Google::Auth::ServiceAccountCredentials.make_creds(
json_key_io: File.open(CREDENTIAL_PATH),
scope: SCOPES
)
data = client.get_realtime_data(
"ga:1234567", # view_id ここは各々変更してください
"rt:activeUsers" # metrics
)
puts data.total_results
$ ruby get_active.rb
=> 17
必要最低限ですがこんな感じで取得できます
他にもメソッドがあります。
下の公式ドキュメントがとても参考になるので見て見てください。
参考2 AnalyticsV3/AnalyticsService#get_realtime_data-instance_method