GA4をBigQueryと連携する際に気をつけたいこと

メディアサービス開発部バックエンド開発グループの長田です。
主にRuby on Railsを利用したサービス開発や数値集計・解析のための基盤整備などをしています。

さて、アクセス解析ツールとしてGoogleAnalytics(GA)を利用している方も多いのではないでしょうか。

次世代版GA4では無料版UAの頃は利用できなかったBigQuery Exportが利用可能になりました。
これによりGA4で取得したイベントをBigQueryに定期的に格納し、BigQueryを利用した集計・解析が行えるようになります。

今回はGA4が取得したイベント情報を定期的にBigQueryに格納するまでの手順で気をつけたいことをまとめます。

BigQuery準備

Google Cloud Platform(GCP)で新規プロジェクトを作成、BigQueryが利用できる状態にします。
この時BigQuery APIが利用可能な状態になっていることを確認します。
また、BigQueryへのデータ連携は無料ですが、BigQueryの利用料金は別途かかります。
検証用の場合は機能制限はありますが、無料のBigQuery sandboxの利用を検討しても良いと思います。

GA4との連携

GA4の「管理」ページプロパティ列にある「BigQueryのリンク設定」から紐付けたいGCPプロジェクトを設定します。
この時気をつけたいのは以下の点です。

  • 「デフォルトのデータセット作成先ロケーション」は一度設定すると変更できない
  • 「データ設定」の「頻度」は集計頻度に合わせて指定する

「デフォルトのデータセット作成先ロケーション」は一度設定すると変更できない

BigQueryではデータロケーションをまたぐクエリが発行できないため、
GA4のイベントデータと一緒に解析するデータのデータロケーションを考慮して設定する必要があります。

「データ設定」の「頻度」は集計頻度に合わせて指定する

データ設定の頻度で、GA4イベントをBigQueryに格納する頻度を指定します。
基本的には1日に1回、前日分のデータを格納する「毎日」のみを指定すれば良いですが
当日のデータを集計したい場合はイベント発生から数秒後にデータ格納を行う「ストリーミング」を併せて指定することもできます。

ただしストリーミングにはいくつかの注意事項があります。

詳細はこちらの「ストリーミングエクスポート」欄に記載されています。

データ確認

GA4との連携設定完了から24時間以内に、データ設定で指定した頻度でBigQueryへデータ格納が開始されます。

格納されたデータは、analytics_{GA4のプロパティID}という名前のデータセット内、events_テーブル群にevents_yyyymmddという名前のテーブルとして挿入されます。

それらの中にはsession_startイベントやpage_viewイベント、その他自分で定義したカスタムイベントが全て一緒くたに含まれているので、event_nameカラムで選り分けたあとに、event_paramsカラムの中身をUNNESTするなどすれば、イベントごとの具体的な集計を行えるようになります。

実用上では、GA4が自動で作成するanalytics_~データセットと別に、集計に使用するイベントごとに選り分けた結果を格納するためのeventsデータセットを作成し、その中にイベントの種類ごとに中間結果テーブルを作って、UNNEST済みのイベントのパラメータを毎日スケジュールクエリで挿入しています。

こうすることで、実際に集計をするときにはeventsデータセット内の各テーブルをもとにすれば、UNNESTなど複雑なことをせずに集計ができるようにしています。

まとめ

今回はGA4をBigQueryに連携し集計する際に気をつけること、またGA4のイベントデータがどのようにBigQueryにエクスポートされるかについて紹介しました。
これからGA4を利用される方、BigQueryを利用してデータ集計される方の参考になれば幸いです。

ブックウォーカーでは物理・電子・Web連載問わず漫画や本が好きなWebアプリケーションエンジニアを募集しています。

もし興味がありましたらぜひ、ブックウォーカーの採用情報ページからご応募ください。