GA4の話をする際に、BigQueryの話がセットで出てくる場面は多くあります。
でも、BigQueryとの連携ってなぜ必要なの?しないとGA4が使えないの?という疑問をお持ちの方もいらっしゃるかと思います。
そこで本コラムでは、【GA4を今後活用したい非エンジニア】のみなさま向けに、GA4とBigQuery(BQ)連携について知っておきたい、基本的な内容を解説します。マーケターや施策担当者などエンジニア以外の業務領域のみなさまにわかりやすいよう、技術的な話はなるべく省いて説明しますので、どうぞ気軽に読んでみてください。
今回のコラムでは厳密な説明やBigQueryの操作方法は省き、概念を理解することにフォーカスして説明します。
そもそもBigQueryって?BigQueryエクスポートって?
BigQueryはGoogleが提供するデータウェアハウスです。データウェアハウス(日本語に訳すと”データの倉庫”)は簡単に言うと、さまざまなデータを集計・分析するために整理して保管しておける場所です。
BigQuery自体はGA4とはまったく別のサービスですので、GA4のデータしか使えないわけではありません。自社で持っている顧客データや営業データ、salesforceなどのサードパーティツールのデータなど、さまざまなデータを貯めておくことができます。
Googleが提供するという点でGA4とBigQueryは親和性が高く、簡単にデータをやりとりできるのが特徴のひとつです。その特徴を活かして、GA4に溜まっているデータをBigQuery上に保存しておく設定を手軽に行うことができます。これがBigQueryエクスポートという機能です。
公式ヘルプ:[GA4] BigQuery Export
BigQueryにはどんなデータが保存されるの?
GA4のデータの保存先を設定すると、GA4のデータはBigQuery上にエクスポート(抽出)されます。
データはGoogleが決めた内容と形で保存されますので、自分で「こういう情報を保存しておいて」という指定をする必要はありません(逆に言うと、細かい指定もできません)。
BigQueryに保存されるのは、「セッション数は◯件」とか「参照元◯◯から流入したユーザーは◯人」とかのように集計される前のデータです。
GA4のレポート画面のように集計された状態ではなく、ローデータに近い形で保存されます。また、Googleシグナルに基づくデータなど、一部のデータはエクスポートされません。
エクスポートされたデータはBigQueryの画面上(GoogleCloudの管理画面)から確認・利用します。
まずはBigQueryのどこにデータが入るのかについて理解しましょう。
BigQueryは基本的に「プロジェクト」「データセット」「テーブル」という階層構造になっています。
GA4でBigQueryエクスポートを設定するにはGoogleCloudの「プロジェクト」というのが必要です。このプロジェクトが、BigQuery以外のサービスも含めてGoogleCloudでの課金やユーザー管理の単位になります。
GA4のデータエクスポート設定時に「どのプロジェクトを使うか」を指定すると、その中に毎日のデータが入ってくるようになります。
実際にデータが保存される先が「テーブル」になります。ここにGA4のデータが保存され、データを集計するときはこのテーブルを操作することになります。
GA4の1日分のデータが1つのテーブルとして、BigQueryに保存されます。
(左メニューに1日分が全部表示されるわけではなく、表示上は「events_」の中に入っています。)
毎日のデータが無造作に入ってくると使いづらいので、これらのテーブルをまとめる役割をするのが、「データセット」です。
GA4でプロジェクトを指定すると、GA4のデータが入るテーブルをまとめて入れておくための箱として、「analytics_XXX(XXXにはプロパティIDが入ります)」というデータセットが作られます。
では、実際にデータが入ってくる「テーブル」の中身がどうなっているか確認していきましょう。
1つのイベントが1行になっていて、1行の中にはタイムスタンプ(データが送信された時間)やイベント名、ディメンションなどが横に並ぶ形で入っています。
どういう名前で入っているか、何のデータが入っているか、といったデータ構造の説明はGoogleが出していますので、公式ヘルプで最新情報を確認ください。
公式ヘルプ:[GA4] BigQuery Export スキーマ
保存したデータはどうやって使うの?
BigQueryに保存されるデータは私達が普段レポート画面上で見ているのとまったく違う形式なのがイメージしていただけたと思います。
このデータを集計したり利用したりするには、この状態から加工して使う必要があります。エクセルなどでデータを扱うのと、考え方としては変わりません。
GA4はこの集計を裏側でやってくれますが、BigQueryに溜まったデータは自分でどのような条件で集計するかを、SQLという言語を使った命令文(クエリ)として記述する必要があります。
SQLはデータベースを操作するための言語です。もちろん記述方法の理解も必要ですが、テーブルにGA4のデータがどういう構造で入っているかといった理解も必要になります(GA4からエクスポートされたデータは、1つのセルに複数のデータが入っている「ネスト構造」という形になっており、扱うのに少しクセがあります)。
BigQuery上でSQLを使って「このディメンション・この指標・こういう条件でフィルタをかけてデータを集計して」という指定をすると、BigQuery上で結果が返ってきます。
BigQueryに保存されたデータを使うのにややハードルがあるのは、BigQuery上のデータをSQLで処理するスキルが必要となる点です。
本コラムではクエリの書き方や操作方法は割愛しますが、実際の運用にあたっては「何のデータが必要か」の定義をマーケターが行い、「集計するために必要なクエリを書く」作業は開発部門やデータ部門に対応してもらうような体制を作るケースが多くあります。
BigQueryで集計すると何が良いの?
SQLが必要でBigQueryを使うのが大変なら、GA4だけで良いのでは?と思う方もいらっしゃるかもしれません。
もちろんすべての集計をBigQueryにする必要はありません。日常的にすぐ見たいデータ、自分の手元で深堀りしていきたいデータはGA4で見る方がよいでしょう。
集計方法としてGA4のレポート画面とBigQueryを比較すると、以下のように整理できます。
GA4は簡単にデータが見られる一方で、集計の自由度に限界があります。
標準レポートより探索レポートの方が柔軟ですが、手法によっては決まった組み合わせでデータを見る必要があるなど完全に自由に使えるわけではありません。
その点、BigQueryはローデータ形式でデータが保存されますので、ディメンションと指標の組み合わせも柔軟、場合によってはデータをグルーピングし直したり、加工して集計するなどかなり自由に集計ができます。
(組み合わせてはいけないディメンションと指標など、GA4自体の知識は必要になってきます。)
また、BigQueryを使うメリットとして、データ保持期間の制約を受けないという点も大きいでしょう。
無料版は最長14ヶ月、有料版は最長50ヶ月のデータ保持期間があります。対象は探索のみではありますが、データを深堀りする際には探索が必須になるケースも多くあります。
その点、BigQueryにエクスポートされたデータは、この保持期間の制約を受けません。
BigQuery側でテーブルを何日間保存しておくか(あるいは無期限に保存する)設定ができますので、長期間データを保存しておきたい場合はBigQueryエクスポート機能の利用がおすすめです。
コラム:[GA4] データの保持期間とは
考慮すべき点として、BigQueryは利用するのに料金がかかります。
BigQueryの利用料はデータを保存しておく「ストレージ料金」と、データを集計・処理する際にかかる「コンピューティング料金」の2要素で構成されます。
BigQueryは利用料金が低く設定されており、無料枠もあるため、膨大な金額がかかるケースはほとんどないかと思いますが、何でもBigQueryで集計すればOK!というわけにはいかないので注意が必要です。
BigQueryを使うメリットや、どのようなことが実現できるかは別コラムで更に詳しく触れています。
ここまで読んで「BigQueryエクスポートとは?」が理解できましたら、ぜひこちらもご覧ください。
まとめ
- GA4のデータをBigQuery上に保存しておける機能がBigQueryエクスポート
- GoogleCloudのプロジェクトをGA4と連携すると、BigQuery上にデータセットが作成され、その中に1日ずつのデータが入ったテーブルが作成される
- 作成されたテーブルのデータは、SQLという言語を使って自由に加工や集計ができる
BigQueryエクスポートを行うと何が起こるか、なんとなくイメージしていただけたでしょうか。
GA4データをBigQueryで使うメリットや、どのようなことが実現できるかは別コラムで解説いたします。
ここまで読んで「BigQueryエクスポートとは?」が理解できましたら、ぜひこちらもご覧ください。