GA4(Google Analytics4)について、データの保持期間が最大14ヶ月と、最大50ヶ月のUAの1/3以下になっていることや、昨今のBIツールの隆盛を受けて、
「GA4のデータをストレージに保管したい」
「GA4のデータをソースにして、BIツールで可視化したい」
と考えられる方は多いのではないでしょうか。
本記事ではGA4とBigQueryの連携方法、活用の仕方などを解説します。
BigQueryとは
BigQueryとはGoogle Cloud Platform(GCP)で提供されるGoogleのデータウェアハウスです。元々Googleが自社の膨大なデータを処理するために構築した基盤を基にサービス化したデータウェアハウスで、そのためTB(テラバイト)、PB(ペタバイト)級のいわゆるビッグデータでも高速で解析可能な点が特徴です。
使い始めも簡単で、GCPに登録さえしてしまえばすぐに使えるようになるほか、データベースチューニングなどの煩わしい作業も要らず、SQLで解析可能なため導入のハードルは低いと言えます。
GA4とBigQueryを連携してできること
GA4とBigQueryを連携することで、主に以下の3つのことが出来るようになります。
GA4のデータをSQLで分析
GA4の生データをSQLを用いて分析することが可能になります。GA4上でもレポートと探索機能によりある程度自由に分析レポートを作成できますが、BigQuery上で生データを直接分析するため、実質無制限であらゆる切り口での分析が可能です。
更にBigQueryに保存している他のデータとも統合できるため、例えば自社の基幹データや、天気や気温などのパブリックデータと統合しての分析も出来るようになります。
GA4の全期間のデータを保管する
GA4のデータは保持期間が最大14ヶ月のため、全期間のデータを保管しておきたいという要望は大きいと思います。BigQueryと連携しておけば、保持期間に制限がないため、全期間のデータを保持しておくことが可能です。
ただ注意点として、BigQueryにデータが保管されるのは連携設定を行なった時点のデータからとなるためGA4を使い始めたらなるべく早期にBigQueryとの連携設定を行なっておくと良いでしょう。
TableauやLookerなどのBIツールでデータの可視化
TableauやLookerなど多くのBIツールではBigQueryとの連携をサポートしているため、ほとんどのBIツール上でGA4データの可視化が可能になります。
既に社内で特定のBIツールを活用されている場合、そのBIツール上でGA4の分析レポートを作成して共有できるようになるため、GA4データがすぐに社内の分析カルチャーにフィットして受け入れられることが期待できます。また、データサイエンティストにとっては、使い慣れたツールで分析可能なため、この点も大きなメリットとなります。
BigQueryの費用
BigQuery連携自体は無料ですが、連携後のBigQueryには利用料金がかかります。BigQueryの利用料金は
・分析料金
・ストレージ料金
の2つで構成されており、分析料金はSQL実行によって処理されたバイト数に基づいて課金、ストレージ料金はデータの保存量に応じて課金される体系となっています。それぞれある程度の処理量までは無料の無料枠が用意されているほか、分析料金には定額料金という、あらかじめSQLの処理量を購入して料金のキャップを定めるプランも用意されています。現在の最新の料金については以下の公式サイトをご確認ください。
料金 | BigQuery: クラウド データ ウェアハウス | Google Cloud
なお料金の推定見積もりは可能で、データ連携して1日分のデータがどれほどの容量があるかを見ることで、ストレージ料金は推定できます。分析料金は、SQLを実行する際にドライラン機能といって、SQL実行前に処理バイト数を教えてくれる機能がBigQueryにあるため、こちらもある程度見積もり可能です。
GA4とBigQueryの連携方法
GA4とBigQueryの連携方法を解説します。行うことはGCPでBigQueryを使えるようにする準備と、GA4で連携設定の2点です。
BigQueryの導入
まずGoogle Cloudの管理画面にログインします。
ログインしたらプロジェクト選択のウィンドウより、「新しいプロジェクト」を選択してこれからBigQueryを使い始めるGoogle Cloudのプロジェクトを作成します。プロジェクト名などの必要項目の入力を行なって完了です。


BigQuery APIの有効化
次に作成したGoogle Cloudのプロジェクト上でBigQuery APIを有効化します。作成したプロジェクトを選択、左側のメニューより、「APIとサービス」 > 「ライブラリ」を選択します。

カテゴリから「ビッグデータ」を選択して、「BigQuery API」を選択して、有効化します。「APIが有効です」の表記があれば有効化の手順は完了です。
GA4上での連携設定
GA4上でBigQueryに連携する設定を行います。GA4の管理画面から「BigQueryのリンク設定」を選択します。

次に「リンク」を選択、連携するBigQueryプロジェクトを先ほど作成したGoogle Cloudのプロジェクトを指定します。データロケーションは任意で問題ありませんが、こだわりがなければ東京で良いでしょう。なお既にBigQueryに他のデータを保管している場合、ロケーションをまたぐSQLが実行できない性質上、既存のデータのロケーションに合わせる形が良いです。

頻度の設定では、毎日とストリーミングを選択できます。ストリーミングはイベント発生から数秒でデータが反映されるため、GA4のリアルタイムレポートに近いデータになります。リアルタイムデータが欲しい場合は毎日とストリーミング両方の選択、日次データだけで事足りる場合は毎日だけを選択します。「送信」を押して設定が完了すると、「BigQueryのリンク設定」では連携先のプロジェクトが表示されるようになります。(※プロジェクトは1つしか登録できないので、現在活用しているプロジェクトを登録するようにしましょう。)
データの確認
連携設定を行なって1~2日でBigQueryにデータが反映されるので、実際にデータの確認を行います。Google Cloudの管理画面から、左側のメニューよりBigQueryを選択、BigQuery上に作成されているデータセット・テーブルが表示されるので、ここに「analytics_xxx」というデータセット、「events_xxx」という名前のデータセット・テーブルが表示されればデータの確認は完了です。

なお連携したテーブルに有効期限がついている場合があるので、念の為確認します。テーブルの有効期限とは指定の期間を過ぎると自動的にテーブルが削除される、という機能で、「analytics_xxx」データセットを選択 > 詳細を編集 > 「テーブルの有効期限を有効にする」チェックボックスをON/OFFにすることで設定できます。有効期限がついていると、テーブルが自動で削除されるためOFFにしておきましょう。
集計SQLの作り方
連携したGA4生データの特徴として1レコードが1イベント単位になっており、更にイベント内容に関するevent_paramsという項目が配列構造で格納されています。基本的にはこのevent_paramsをSQLを用いてUNNEST句でフラットな行に変換し、イベントの回数を集計することで、GA4上のレポートと同一のレポートやそれ以上の分析レポートを作成することが可能です。
UNNEST句によるフラットな行への変換は、SELECT句内でサブクエリを用いて以下のようなSQLで可能です。
(SELECT value.int_value FROM UNNEST(event_params) AS params WHERE params.key = ‘ga_session_id’) AS ga_session_id
上記の例ではevent_paramsよりga_session_idの値を抽出します。
応用して、例えばセッション毎のページビュー数を抽出する場合は以下のようなSQLを実行します。
SELECT
COUNT(*) AS pageviews,
(SELECT value.int_value FROM UNNEST(event_params) AS params WHERE params.key = ‘ga_session_id’) AS ga_session_id,
user_pseudo_id,
FROM
`xxx` #対象のテーブル
WHERE
event_name = ‘page_view’
GROUP BY
ga_session_id,
user_pseudo_id
解説:WHERE句のevent_nameでページビューイベントのレコードを指定、GROUP BY句でセッションID単位になるようにグループ化を行なっています。なおuser_pseud_idもGROUP BY句に含めているのは、実はga_session_idはただのタイムスタンプであり、一意にならないため、user_pseudo_idとセットにすることで一意のセッションIDとなるようにしています。
まとめ
GA4とBigQueryの連携方法から活用事例までご紹介しましたがいかがでしたでしょうか。
本記事が、具体的な活用のイメージを掴んでいただく一助となりましたら幸いです。
また、記事中に記載のように、BigQueryへの連携は設定を行なった時点からのデータとなるため、早期の連携設定をお勧めいたします。
株式会社KUIXではフリーランスや小規模企業様とコミュニティを醸成し、多様なケーパビリティで様々なITプロジェクトを推進できます。MAツール、BIツールに知見を持ったエンジニアをご紹介可能ですのでご検討の際は是非ご連絡ください!お問い合わせはこちらから
BigQueryのSQLチートシートをダウンロード
