BigQueryとは?GA4と連携する方法やメリット・注意点を解説
こんにちは、アクセス解析&SEO分析ツール「アナトミー」開発チームの江頭です。
GA4をBigQueryに連携すると、GA4単体では実現できなかった高度なデータ分析が可能になります。
本記事では、GA4とBigQueryを連携するメリットや手順、具体的な分析方法を解説します。
BigQueryとは?
BigQueryは、Google Cloud Platform(GCP)が提供するクラウドベースのデータウェアハウスです。
ビッグデータを高速にクエリできる強力なデータ処理エンジンを備えており、大規模なデータセットの分析や洞察が可能です。
BigQueryには、以下のような特徴があります。
- スケーラビリティとパフォーマンス:BigQueryは分散処理アーキテクチャを使用しており、大量のデータを並列で処理できます。
- サーバーレス:BigQueryはサーバーレスのモデルで提供されており、インフラ管理やスケーリングについて心配する必要がありません。
- 多様なデータ形式のサポート:BigQueryは、構造化データ(テーブル形式)、セミ構造化データ(JSON、CSVなど)、非構造化データ(画像、テキストなど)など、さまざまなデータ形式をサポートしています。
- シームレスな統合:BigQueryは、Google Analytics 4(GA4)などのデータソースとシームレスに統合できます。
- 拡張性:Looker Studio、Googleスプレッドシート、Jupyter Notebookなど、多くのツールやサービスと連携できます。
GA4をBigQueryに連携するメリット
GA4とBigQueryとの連携には以下のようなメリットがあります。
長期的なデータ保存
GA4ではデータの保存期間がデフォルトで2ヶ月、最長で14ヶ月(Googleアナリティクス360なら50ヶ月)と限られています。
BigQueryにデータをエクスポートすれば長期的なデータ保存が可能になります。
リアルタイム分析
BigQueryのストリーミングエクスポート機能を使用すれば、データがリアルタイムにBigQueryに反映され、即座に分析が可能となります。
当日のリアルタイムなデータ分析が必要な場合には、BigQueryが適しています。
高度な分析
BigQueryは強力なデータ処理エンジンを持ち、大規模なデータセットを効率的にクエリできます。また、Google SQLを使用してデータを操作できるので、集計・結合・フィルタリングなどのさまざまなデータ操作が柔軟に行えます。
カスタムデータの統合
BigQueryにデータを連携すると、GA4以外のデータソースとの統合も容易になります。企業内の他のデータソース(販売データなど)や外部のデータ(地理データなど)を統合して、より包括的な分析を行うことができます。
外部ツールとの統合
BigQueryは多くのビジュアライゼーションや分析ツールとの統合が可能です。Looker Studio、Googleスプレッドシートなどのツールを使用することで、グラフや表などのダッシュボードを作成できます。
BigQueryの利用メリットが少ないケース
一方、以下のようなケースでは、GA4をBigQueryに連携するメリットがないかもしれません。
単純な集計やレポート作成
シンプルな集計やレポート作成の場合、BigQueryの高度な機能を活用する必要はありません。
代わりに、GA4のレポートやデータ探索機能を使うか、Looker Studioなどの外部ツールで十分な場合もあります。
小規模なデータ
GA4やカスタムデータの規模が小さく、クエリの実行時間が速くて十分な場合は、BigQueryを使用する必要はありません。
BigQueryは大量のデータ処理に特化しており、小規模なデータセットではオーバースペックと言えるでしょう。
GA4とBigQueryの連携
GA4とBigQueryを連携すると、Google Analyticsデータを使った高度な分析が実行できます。
ここでは、GA4からBigQueryへのデータ連携(GA4データのエクスポート)について詳しく見ていきましょう。
BigQueryプロジェクトの作成
はじめに、Googleクラウドにプロジェクトを作成します。
- Googleクラウドコンソールを開きます。
- [プロジェクトの選択]をクリックします。
- [新しいプロジェクト]を選びます。
- 任意のプロジェクト名を入力し、プロジェクトを割り当てる組織や場所を選び、[作成]ボタンをクリックします。
プロジェクトが作成できたら、次はBigQuery APIを有効化します。
- 左側のメニューから[APIとサービス]-[ライブラリ]を選びます。
- 左側のフィルタでカテゴリの[ビッグデータ]を選びます。
- BigQuery APIをクリックします。
- [有効]ボタンをクリックします。
BigQueryとのリンク設定
BigQueryプロジェクトを作成したら、GA4の設定画面で「BigQueryのリンク」を設定します。
- GA4の設定画面を開きます。
- プロパティを選び、[BigQueryのリンク] を選びます。
- [リンク]ボタンをクリックします。
- [BigQueryプロジェクトを選択] をクリックします。
- プロジェクトをチェックし、[確認]ボタンをクリックします。
- 必要に応じて、データのロケーションを選び、[次へ]ボタンをクリックします。
- [データストリームとイベントの設定]ボタンをクリックします。
- 連携するデータストリームをチェックし、[適用]ボタンをクリックします。
- 頻度として「毎日」をチェックし、[次へ]ボタンをクリックします。
- 確認画面で[送信]をクリックします。
以上でリンク設定は完了です。
翌日以降、BigQueryでGA4のデータが確認できます。
BigQuery連携の頻度
GA4からBigQueryへの連携頻度には、2つのタイプがあります。
- ストリーミング エクスポート:リアルタイムでGA4のデータがBigQueryに反映されます。ストリーミングエクスポートは有料ですが、データの即時分析が可能です。
- 日次エクスポート:GA4のデータを日単位でBigQueryにエクスポートします。エクスポートされるデータは1日に1回反映されます。日次エクスポートは無料で利用できます。
過去データの連携
GA4からBigQueryへのリンクを設定すると、設定した日以降のデータがBigQueryに連携されます。連携した日より前のデータは、BigQueryへはエクスポートされません。
なお、Supermetricsのような外部ツールを使うと、過去のデータもBigQueryにエクスポートが可能です。ただしこの場合でも、GA4のデータ保持期間(最長14ヶ月)を過ぎたデータは対象外です。
BigQueryへ連携したGA4のスキーマ
GA4をBigQueryへ連携すると、次のようなスキーマでテーブルが作成されます。
主なフィールドは以下の通りです。
フィールド名 | 型 | 説明 | 例 |
---|---|---|---|
event_date | STRING | イベント発生日 | 20230529 など |
event_name | STRING | イベント名 | session_start, page_view, click など |
event_params.key | STRING | イベントパラメータ名 | page_title, page_location, ga_session_id など |
event_params.value.string_value | STRING | イベントパラメータ値 (文字列タイプ) | https://blog.siteanatomy.com など |
event_params.value.int_value | INTEGER | イベントパラメータ値 (整数タイプ) | 123456789 など |
user_pseudo_id | STRING | ユーザーの疑似ID | 12345678.12345678 など |
user_first_touch_timestamp | INTEGER | ユーザーの初回訪問日時 | 1685346540113002 など |
device.category | STRING | デバイス種別 | desktop, mobile など |
traffic_source.name | STRING | 流入元のキャンペーン名 | (organic), (referral), (direct) など |
traffic_source.source | STRING | 流入元のネットワーク | google, yahoo, bing など |
実際のテーブルデータは次のようになっています。なお、event_paramsは繰り返しが許可されており、複数の値が含まれています。
SQLによるBigQueryデータの分析
BigQueryにエクスポートされたGA4データは、SQL(Structured Query Language)を使ってデータの抽出、変換、分析を行います。
BigQueryの基本的な操作とGoogleSQLの機能について解説します。
1. 基本のSQL
BigQueryでよく使用される基本的なSQL操作をいくつか紹介します。
- SELECT文:データを抽出するためのクエリ文です。カラムの指定や条件式を使用して、必要なデータを取得します。
- FROM句:データを取得する対象のテーブルを指定します。
- WHERE句:特定の条件を指定して、データを絞り込むことができます。
- GROUP BY句:データをグループ化して集計するための句です。
- JOIN文:複数のテーブルを結合してデータを取得するためのクエリ文です。
たとえば以下のSQL文では、イベント名ごとに集計したGA4のイベント数を出力します。
SELECT event_name, COUNT(*) FROM analytics_12345678.events_20230529
GROUP BY event_name ORDER BY COUNT(*) DESC
2. GoogleSQLの関数
BigQueryでは、Google独自の拡張機能であるGoogleSQLを使用できます。GoogleSQLは、標準のSQLに加えて、配列やJSONデータの操作、日付関数などの機能が拡充されています。
以下に、GoogleSQLの一部の機能を紹介します。
- 配列操作関数:配列内の要素を操作するための関数です。例えば、UNNEST関数を使用して、配列を展開して個々の要素にアクセスできます。
- JSON関数:JSONデータを操作するための関数です。例えば、JSON_EXTRACT関数を使用して、JSONデータ内の特定の値を取得できます。
- 日付関数:日付や時間に関する操作を行うための関数です。例えば、DATE_TRUNC関数を使用して、日付を指定した単位に切り捨てられます。
なお、GA4からBigQueryへ連携したテーブルには配列が含まれているので、配列操作関数は利用頻度が高いです。
以下のSQLでは、配列操作関数UNNESTを使って、URLごとのPV数の集計結果を出力します。
SELECT
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location') AS page_location,
COUNT(*) AS pageviews
FROM `bigquery-project-12345678.analytics_12345678.events_20230529`
WHERE event_name='page_view'
GROUP BY page_location
ORDER BY page_location
3. ワイルドカードテーブル
BigQueryにエクスポートされたGA4データは、1日ごとに「events_YYYYMMDD」というテーブル名で作成されます。そこで、日をまたいだデータ分析を行うには、「ワイルドカードテーブル」を利用します。
ワイルドカードテーブルでは、テーブル名の一部に「*」を指定することで、複数のテーブルを対象としてクエリを実行できます。GA4からエクスポートされたテーブルの場合、テーブル名に「events_*」と指定します。
以下のSQLは日別PV数を集計します。
SELECT event_date, COUNT(*) AS pageviews
FROM `bigquery-project-12345678.analytics_12345678.events_*`
WHERE event_name='page_view'
GROUP BY event_date ORDER BY event_date
BigQueryの注意点
BigQueryは強力なデータ分析ツールですが、いくつか注意点があります。
1.費用
BigQueryの利用には無料枠があるものの、費用がかかることに注意してください。データの量やクエリの複雑さによって料金が変動します。
適切なデータのパーティショニングやインデックスの設定、効率的なクエリの書き方などを意識することで、費用を抑えることができます。
2.セキュリティ
BigQueryはパワフルなデータ処理ツールですが、個人情報や機密情報を含むデータの取り扱いには注意が必要です。
セキュリティやコンプライアンスのリスクを最小限に抑えたい場合は、GA4のインターフェース内でデータを分析する方が適しています。
3.スキル
BigQueryを活用するには、SQLやデータモデリング、クエリの最適化といったスキルが必要です。
データ分析のスキルやリソースが限られている場合には、教育などの検討が必要でしょう。
まとめ
以上、GA4をBigQueryに連携する手順やメリットについて解説しました。
BigQueryは柔軟で高パフォーマンスなデータ分析プラットフォームです。ただし、利用する際にはスキルの獲得やセキュリティ・コスト面の理解が重要です。ビジネスの成果向上や戦略の改善に向け、BigQueryを活用してみてください。