こんにちは、中都です。
GA4のデータをBigQueryに残すには、Google Cloudで保存先を用意して、GA4の管理画面からリンクします。連携設定にSQLを書く必要はありません。
僕も最初は、BigQueryはエンジニアが扱うものだと思っていました。GA4のコンサルタントとして仕事をしていた時期も、なかなか手を出せなかったんですよね。でも、実際にやってみたら、意外と簡単だったんです。
動画でも解説しています
GA4のデータを残したいけれど、設定で止まっていませんか?
こんなことで困っていませんか?
- 来年、今年の施策を振り返れるようにしたい。でも、イベントデータを残す設定ができていない。
- SQLが書けなくても連携できるのか不安。Google Cloudの画面を開いたところで止まっている。
- 「無料で試す」と「長く残す」の違いが分からない。費用や保存期限を、どこで確認すればよいか知りたい。
この記事を読むと、ここまでできます
保存先の準備からGA4との連携、届いたデータと保存期限の確認まで、実際の画面を見ながら進められます。設定当日はリンクを作成し、データの出力は翌日以降に確認します。
- 保存先を用意できる:Google Cloudのプロジェクトと請求先を確認する。
- 毎日の出力を設定できる:GA4で保存先と対象データを選び、リンクを作成する。
- 保存できたか判断できる:BigQueryで最初のテーブルと有効期限を確認する。
まずは、これから集まるデータを残す準備をしましょう。SQLでの集計や広告データとの結合は、保存ができてからの次の段階です。
GA4とBigQueryをつなぐと、何が残せるのか
GA4のBigQueryエクスポートを使うと、ページ閲覧や購入など、GA4で収集したイベントのデータをBigQueryへ蓄積できます。将来、広告や受注などのデータと組み合わせて調べたいときの材料になります。
僕はGA4の生データを毎日ためるところから始めて、その後、Google広告やMeta広告、Shopifyのデータも扱うようになりました。後でデータを組み合わせるためにも、まずは保存を始めておくわけです。
普段のPV確認も手軽に進めたい方には、記事末尾でGA4をAIにつなぎ、月別PVや人気記事を聞く方法を紹介します。
データを残す前に、次の3点を押さえておきましょう。
- 連携前の過去データは、さかのぼって自動出力されません。これから集まるデータを残すための設定です。
- GA4の「14か月」と、BigQueryの保存期限は別です。標準プロパティの2か月・14か月という保持設定は、探索などで使うユーザー・イベント単位のデータが対象です。標準の集計レポートまで一律に消えるわけではありません。Google公式のデータ保持の説明
- BigQueryなら無条件に永久保存、というわけでもありません。請求設定、データセットやテーブルの有効期限、社内の保存方針を確認して運用します。
設定前にそろえるもの:権限・保存先・請求先
対象サイトのデータを収集しているGA4プロパティと、連携先のGoogle Cloudプロジェクトを用意します。同じGoogleアカウントから両方へアクセスできる状態にすると進めやすいです。
GA4側は、対象プロパティの編集者以上の権限が必要です。Google Cloud側には、プロジェクトの権限設定やAPIの有効化を行える権限も必要です。自分で権限を変更できない場合は、社内の管理者に公式手順の「権限」を渡して確認してください。
作業前に、保存先のプロジェクト・保存する地域・会社で使う請求先の3つも決めておきましょう。既存の保存先があればそれを使い、地域は後で組み合わせたいデータの場所や社内ルールに合わせます。
画像は撮影時の画面です。現在のメニュー名や配置と異なる場合があります。
手順1.Google CloudでBigQueryの保存先を用意する
プロジェクトを作成して選ぶ
Google Cloudコンソールを開き、権限のあるGoogleアカウントでログインします。画面上部のプロジェクト名を押し、選択画面から「新しいプロジェクト」を開いてください。既存の保存先を使う場合は、そのプロジェクトを選びます。
新規作成する場合は、プロジェクト名を入力し、組織と場所を確認して「作成」を押します。例えば「marketing-data」のように、用途が分かる名前にしておくと扱いやすいです。表示名とプロジェクトIDは別なので、後でGA4側から選べるようIDも控えます。
作成完了の通知から「選択」を押し、画面上部が目的のプロジェクト名になったことを確認します。左上のメニューから「BigQuery」→「スタジオ」を開きましょう。
BigQuery APIの有効化を求められた場合は、同じプロジェクトの「APIとサービス」→「ライブラリ」で「BigQuery API」を開き、有効にします。すでに有効なら追加操作は不要です。
長期保存するなら、サンドボックスのままにしない
初めて開いたときは「サンドボックス」と表示されることがあります。支払い情報なしで試せる環境ですが、テーブルなどには60日の有効期限があります。「数年前の施策を振り返るために残す」という用途では、この制限を外す準備が必要です。
長期保存する場合は「アップグレード」を押し、利用する請求先アカウントを選んで「アカウントを設定」を押します。請求先がない場合は、Google Cloudの案内に従って作成してください。会社の費用として使うなら、社内で決めた請求先を選びます。
再読み込みしてサンドボックスの表示が消えたことを確認します。すでにサンドボックスでデータをためていた場合は、課金を有効にした後、既存データの有効期限も確認してください。対象はデータセット・テーブル・パーティションです。Googleもアップグレード後の期限更新を案内しています。サンドボックスの制限とアップグレード
料金は「保存する量」と「読み取る量」を分けて見る
BigQueryでは、データを置いておくストレージと、SQLなどで読み取る処理に料金がかかります。無料枠はありますが、利用量や選ぶ料金モデルによって請求が発生します。
公式料金表にはストレージの月10GiBまでの無料枠、オンデマンドのクエリ処理の月1TiBまでの無料枠が示されています。無料枠をプロジェクトごとに別々にもらえると考えず、請求アカウント単位の条件も確認してください。単価は保存地域やストレージの方式でも異なります。BigQueryの料金・無料枠
連携後に実際の保存容量を確認し、Google Cloudの「課金」で費用の推移を見るようにしましょう。小さいサイトだから必ず無料、と決めつけないのが大事です。
手順2.GA4からBigQueryへリンクする
GA4の「BigQueryのリンク」を開く
GA4を開き、対象のプロパティに切り替えます。左下の「管理」→「サービス間のリンク設定」→「BigQueryのリンク」へ進み、右上の「リンク」を押してください。
すでにリンクが表示されている場合は、まず保存先を確認します。既存リンクを消して作り直すと、出力に空白期間が生じる可能性があります。新規設定の手順をそのまま重ねて進めないでください。
保存先のプロジェクトとロケーションを選ぶ
「BigQueryプロジェクトを選択」を押し、先ほど用意したプロジェクトにチェックを付けて「確認」を押します。似た名前があれば、名前だけでなくプロジェクトIDで照合しましょう。
続いて「データのロケーション」を選び、「次へ」を押します。僕は普段、東京に置くことが多く、今回も「東京(asia-northeast1)」を選びました。ご自身の環境では、組み合わせたいデータの保存先に合わせてください。
例えば、後で広告データと同じクエリで結合したいなら、双方のデータセットのロケーションをそろえておくと扱いやすくなります。リンク作成後の地域変更は単純なプルダウン変更では済まないため、先に保存先を確認してください。
出力するデータストリームを選ぶ
「データストリームとイベントの設定」を開き、出力したいWebサイトやアプリのストリームにチェックを付けます。対象サイトのストリームが選ばれていることを確認し、「完了」を押してください。
ここでは、出力から除外するイベントも指定できます。特に除外する理由がなければ空欄で進めます。購入や問い合わせなど、後で分析したいイベントを容量削減のためだけに外さないようにしましょう。
「モバイルアプリストリーム用の広告識別子の追加」は、アプリの広告識別子が必要な場合に選びます。Webサイトのデータだけを残す今回の設定では、選択しません。
まずは「毎日」を選び、設定を送信する
イベントデータのエクスポートタイプを選びます。前日分を日ごとにためるなら「毎日」にチェックを付けましょう。
「ストリーミング」は、当日分を数分単位で確認したい場合の選択肢です。ただし、完全性は保証されず、追加の取り込み料金もかかります。エクスポート方式の違い
僕は日単位で分析できればよいので、ストリーミングにはチェックを付けていません。表が増えたり、データの容量が増えたりするのも気になるので、自分の分析に必要な設定を選んでいます。
下にある「ユーザーデータ」の日別出力は、イベントデータとは別の設定です。実演ではこれも選んでいますが、イベントの蓄積に必須ではありません。ユーザーの属性などもBigQueryで扱う場合に、出力される項目を確認して選択してください。
「次へ」を押し、保存先・ロケーション・対象ストリーム・出力頻度を見直してから「送信」を押します。
「リンク作成済み」と表示されれば、GA4側の操作は完了です。次は翌日以降に、BigQueryへデータが届いたか確かめましょう。
手順3.BigQueryにデータが届いたことを確認する
日次エクスポートは、設定した瞬間に過去の表が現れる仕組みではありません。翌日以降、BigQueryのエクスプローラで保存先のプロジェクトを開きます。出力時刻は固定ではなく、遅れることもあります。
- 保存先プロジェクトの下に、
analytics_プロパティIDというデータセットができているか確認する。 - その中の
events_YYYYMMDDという日付付きテーブルを開く。 - 「プレビュー」を開き、日付・イベント名と実際のデータ行があることを確かめる。列名は
event_dateやevent_nameです。 - データセット名のプロパティIDと日付を照合し、意図したGA4の出力か確認する。
上の画像は、すでに出力されているデータを開いた例です。新しいリンクを作成した直後の結果ではありません。テーブル名や列の定義は、公式のBigQuery Exportスキーマで確認できます。
長期保存する場合は、ここで有効期限も確認します。BigQueryでデータセットを選び、「詳細」からデフォルトのテーブル有効期限を確認してください。個別テーブルも開いて「詳細」を見て、残したい期間より前に消える設定になっていないかを確認します。すでにあるテーブルの期限は、データセットの既定値を変えるだけでは変更されません。テーブルの有効期限を管理する
データが出ない・消えたときに確認すること
| 困っていること | 最初に確認すること |
|---|---|
| GA4でプロジェクトを選べない | Googleアカウント、Google Cloud側の権限、BigQuery APIの有効化を確認する。GA4の編集権限だけで十分とは限らない。 |
| リンク作成済みなのに表がない | 「毎日」が有効か、対象ストリームに計測データがあるか、正しいプロジェクトを開いているかを確認する。日次出力の待ち時間も考慮する。 |
| 途中から日次データが来ない | 請求設定、権限変更、出力エラーの通知、日次イベント数を確認する。 |
| 古いテーブルが消えた | サンドボックスの利用状況と、データセット・個別テーブル・パーティションの有効期限を確認する。 |
| GA4の画面と数字が一致しない | 同じ期間・指標で比較しているかを確認する。画面側のモデリングなどと、生イベントを数えるBigQueryの集計は、条件によって一致しない。 |
標準GA4プロパティの日次エクスポートには、1日100万イベントの上限があります。超過が続く場合や大きく超える場合には、日次エクスポートが停止することがあります。「100万件までは必ず残り、超過分だけ落ちる」と考えないでください。通知が来たら、不要なストリーム・イベントを出力対象から外すか、360を含めて運用を見直します。公式の制限とエラー原因
また、BigQueryに出ていない過去の生データを、後から同じ形で取り戻せるとは限りません。リンクを作って終わりにせず、最初のテーブルと、その後の日付が増えていることまで確認しておきましょう。
まとめ:一度つないで、毎日のデータを残していく
連携するだけなら、思っていたより簡単だったのではないでしょうか。正直、僕も最初は腰が重かったんですけど、一度設定すれば、毎日のデータがたまっていくんですよね。
Google Cloudの保存先を用意し、GA4で「毎日」の出力を選び、BigQueryでデータを確認する。長く残す場合は、請求設定と有効期限も確認します。まずは翌日以降、最初の日付付きテーブルができたか見てみてください。
GA4の分析は、Synapse MCPを使ってAIに聞いてみる
BigQueryへの保存を始めたら、普段の分析にもデータを使っていきたいですよね。「先月と比べてPVは増えた?」「どの記事がよく読まれている?」といった集計は、Synapse MCPでGA4をAIにつなぐと、自然言語で頼めます。
探索レポートの作り方を知らなくても、知りたいことを日本語で伝えて、GA4の数字を取得できます。ClaudeやChatGPTなど、MCP接続に対応したAI環境から利用します。
たとえば、日別のPVをグラフにする
「GA4のデータをグラフ化して」と頼むと、取得した数字をこんな形で確認できます。この実演では、Claudeがセッション数・ユーザー数・PVを日別のグラフにしました。
数字を取り出してからグラフを作るまで、AIとの会話で進められます。日ごとの増減が見えると、次にどの日や流入元を詳しく調べるかも考えやすくなります。
Synapse MCPはGA4の集計データをAIへ渡し、AIが表やグラフにまとめます。長期保存はBigQueryで続けながら、日常の集計にはGA4を直接つないだAIを使えます。
次の2つは、接続後にご自身のデータで試せる質問例です。
「先月と今月のPVを比べて」と聞く
比較期間を指定すれば、PVの合計と増減を表にまとめるよう頼めます。今月の途中なら、先月も同じ日数にそろえて比較しましょう。以下はWebサイトのPVを調べる質問例です。
接続したGA4で、今月と先月のWebサイトのPVを比較してください。
今月は昨日までを対象に、両月とも1日から、そろえられる日数で比較してください。
アプリのデータもある場合はWebと分けてください。
対象プロパティ・開始日・終了日を明記し、PV・増減数・増減率を表にしてください。
比較できるデータがない場合や、先月のPVが0で増減率を計算できない場合は、その旨を示してください。
「どの記事が人気?」を一覧にする
ここでいう「人気」はPVの多さです。先月のページ別PVを取得し、記事ページを見つけるときは、例えばこんな聞き方ができます。
接続したGA4から、先月のWebサイトのページ別PVを多い順で取得してください。
取得したページのうち、記事ページのURL・タイトル・PVを一覧にしてください。
記事ページのURLの決まりが分からなければ、先に確認してください。
対象プロパティ・集計期間・取得件数を添え、取得範囲内の一覧として示してください。
1回に取得できるのは最大1,000行です。記事だけに絞る作業は、取得後にAIが行います。対象の記事が取得範囲に含まれているかを確かめ、全記事のランキングとは区別してください。
まずは自分のGA4で、最初の数字を取得してみる
最初から複雑な分析を頼む必要はありません。まずは、自分のサイトのPVがAIから返ってくるところまで試してみましょう。
- GA4を接続する:Synapse MCPにログインし、対象の店舗・案件でGA4を追加。Google認証で分析するプロパティを選びます。
- AIへ登録する:同じ店舗・案件のMCPリンクを発行し、MCP接続に対応したClaudeやChatGPTへ登録します。
- 最初の数字を聞く:「接続したGA4の、昨日のWebサイトのPVを教えて。プロパティ名と対象日も添えて」と頼みます。
返ってきたプロパティ名と日付を見て、ご自身のGA4でも同じ条件の数字を確認してください。接続操作は、GA4をClaude・ChatGPTにつなぐ手順で画像付きで説明しています。
