エミ眠太の自由帳
 エミ眠太の自由帳
    
 
 基本      2023-01-04      2023-07-09

GA4のデータをPythonで取得する。

Language:
 Python
Framework/Library:
 Google Analytics Data API(GA4)
Technology:
 Web API データ分析・データ解析
Platform/Tool:
 Google Analytics(GA4) GCP

記事一覧へ

目次


はじめに

Googleアナリティクスって使ったことがある人なら分かると思いますが、情報量えげつないですよね(語彙力)。ちょっと情報取得できればと思ってもどこを見たら良いのか分からず、最初はダッシュボードを使いこなすことさえままならないと思います。そんな中個人的には他のツールから取得したデータと組み合わせて別途ダッシュボードを作成したいなと思っていたところでして、調べてみるとPythonからAPIを叩けるんですね。実際に使ってみたので設定方法含めまとめます。なお、以下略称です。

  • Googleアナリティクス(以下、GA):総称
  • Google Analytics 4(以下、GA4):最新バージョン現行バージョン
  • Universal Analytics(以下、UA):現行バージョン旧バージョン

利用するツール

PythonでAPIを叩くために今回はGoogle Analytics Data APIというものを使います。似たライブラリにGoogle Analytics Reporting API v4というものがありますが、ドキュメントに記載の通りこちらはUAのみ対応(GA4非対応)のため、今回は利用しません。v4とか記載があるからGA4対応かと勘違いしてしまいますよね。そのUAは2023年7月1日をもって廃止となりますました。お世話になりました。

API利用

それではAPIを使うための設定をしていきましょう。以下大きく2ステップとなります。

GA側の設定(1/2)

Google Analytics Data API設定

  • はじめにGoogle Analytics Data APIのページからStep1.のEnable the Google Analytics Data API v1ボタンをクリックするとダイヤログが開かれるので、ここでGoogle Cloud Platform(以下、GCP)上にプロジェクトを新しく作成します。ここでの入力項目はプロジェクト名のみです。Nextボタンから作成後、プロジェクト作成と同時に自動でJSONファイルがダウンロードされます。

GA4の設定

  • 次にGA4にサービスアカウントを追加します。上でダウンロードしたJSONファイルの中身を確認すると、"client_email"という値が追加されていると思うので、こちらをGA4に追加します。
  • 上の画像の通り、GA4の対象のプロパティを開いた状態で、[管理] → [プロパティのアクセス管理] → [+ボタン(新規ユーザーにアクセス権限を追加)](画面右側モーダルの右上あたり)→ [ユーザーを追加] から、client_emailキーに対応する値をメールアドレス欄に追加します。同時に直接の役割とデータ制限で権限の選択を求められますが、ここでは閲覧者(Read & Analyze)以上の権限を付与する必要があります。

ローカル側、Python設定(2/2)

pip install google-analytics-data

で対象のライブラリをインストールしておきます。

  • 公式サイトのコードを一部改変させていただき、地域別に累計ユーザー数を取得してみましょう。ここから1行解説です。
  1. (l.2~10)ライブラリ等から必要モジュールのインポート。
  2. (l.12~13)別途、.envファイルを作成する。Google Analytics Data API設定時にダウンロードしたJSONファイルから認証情報を設定し、.envファイルに格納。load_dotenv()メソッドで環境変数読み込みます。
  3. (l.15)対象のGA4のプロパティIDを取得し設定します。
  4. (l.17)プロパティIDを引数にGA4情報を抽出する関数を作成します。
  5. (l.19)今回はBetaAnalyticsDataClientクラスを利用します。BetaAnalyticsDataClientでは、runReportメソッド、getMetadataメソッド、checkCompatibilityメソッド等が提供されています。その中でも今回はrunReportメソッドを使ってみましょう。他にもいくつかメソッドは提供されていますが、上記3メソッドはそれぞれ以下のような役割を果たします。
    • runReport()メソッド:GA4データの取得において最も一般的・汎用的なメソッドです。以下の通りコード例を示すので参考にしてみてください。
    • getMetadata()メソッド:データスキーマ・リファレンス情報を取得するためのメソッドです。利用可能なmetrics, dimensions等の詳細情報を取得できます。
    • checkCompatibility()メソッド:指定したクエリとパラメータにおいてAPIとの互換性確認するためのメソッドです。
  6. (l.21~26)RunReportRequest()でリクエストを作成します。22行目〜25行目のパラメータについての説明は以下の通りです。dimentionsmetricsの違いは分かりづらいですが、Web担当者Forumさんの記事が分かりやすいです。
    • property :上で説明したプロパティIDです。
    • dimensions:データの属性を指します。これに基づいてグループ化(ソート)ができます。
    • metrics:データの指標を指します。集計値・数値になります。
    • date_ranges:データを取得する期間です。開始日・終了日を一緒に指定します。
  7. (l.27)RunReportRequest()で作成したリクエストをrunReport()メソッドに渡すことで、任意のGA4データを取得することができます。
  8. (l.30~31)"dimention-metric"で対にして結果を出力します。
  9. (l.37~40)結果です。

まとめ

今回はrunReportというメソッドを使いましたが、中でもdimensions, metrics以外にも指定可能なパラメータについては公式サイトに一覧があるので、逐一参照しつつ使いましょう。また「GA4 Dimensions & Metrics Explorer」というツールを使えば、利用可能なdimentionsmetricsの組み合わせを確認することができ、さらに、データのレスポンス形式についても事前に確認することができます。

参考


記事をシェアする


関連する記事

よろしければこちらの記事も参考にしてみてください。

Loading...




記事一覧へ