GA4とBigQueryを無料で連携!分析手順と課金防止設定を解説

GA4とBigQueryを無料で連携!分析手順と課金防止設定を解説

📋 検証環境および一次情報ソースについて

  • 検証環境:Google アナリティクス 4(GA4) & Google Cloud BigQuery(東京リージョン asia-northeast1 / 無料利用枠運用)
  • 確認日:2026年11月時点のGoogle公式仕様および当サイト実運用データに基づきます。
  • 公式ドキュメント:Google Cloud BigQuery 公式料金・無料枠ガイド

📋 1分でわかるこの記事のまとめ

  • GA4 × BigQuery 連携のコスト:
    • BigQueryの標準無料利用枠(ストレージ 月10GiB・クエリ 月1TiB)の範囲内であれば、個人ブログや中小規模サイトは 追加料金なし(完全無料枠内) で運用できます。
  • 失敗しない連携設定の2大ポイント:
    • データの保存先は日本国内の「東京(asia-northeast1)」を選択する。
    • エクスポート頻度は課金対象になりやすい「ストリーミング」を外し、「毎日(Daily)」のみを選択する。
  • 登録セキスペ流の課金防止策:
    • 連携直後にGoogle Cloud側で「月額1,000円の予算アラート(しきい値50%・90%・100%)」を設定しておくことで、万が一のクエリ実行ミスを早期検知できます。
  • 実際に取得して分かった生ログの面白さ:
    • 連携翌朝の9時12分にテーブルが自動生成され、わずか数キロバイトの処理量で「Perplexity(AI検索)からのスマホ流入」や「秒単位のユーザー行動ログ」をSQLで即座に可視化できました。

はじめに:GA4管理画面の限界を超え、「生ログ」を手元に貯める

こんにちは、LEEです。

普段はインフラエンジニアおよびプレイングマネージャーとして働きながら、PMP®や情報処理安全確保支援士の知見を活かし、個人ブログや自作Webサービスの運営・技術検証を行っています。

Googleアナリティクス4(GA4)を使ってサイト分析をしていると、一度は次のような壁にぶつかります。

「標準レポートではデータ保持期間(最大14ヶ月)を過ぎると探索データが見られなくなる……」
「ページごとのPVだけでなく、1人のユーザーが何時何分にどのページを何秒読んだか、生の行動ログを見たい!」

こうした課題をまとめて解決できるのが、GA4の公式機能である「BigQuery Export(生データ連携)」です。

「Google CloudやBigQueryはお金がかかりそう」と身構える方も多いのですが、結論から言うと、個人ブログ規模であれば毎月ほぼ0円で運用可能です。

本記事では、当ブログ(jetree.work)で実際にイチから連携を構築し、翌朝到着した生データをSQLで分析するまでの全工程を、実機スクリーンショットとともに徹底解説します。


第1章:本当に無料で使える?BigQuery料金枠と一次ソース確認

手順に入る前に、コスト面の仕組みを公式ドキュメントに基づいて正確に確認しておきます。

Google Cloudの公式料金ページおよびGA4ヘルプには、BigQueryの無料利用枠(Always Free)として以下の基準が明記されています。

  • ストレージ容量: 毎月最初の 10 GiB まで無料
  • クエリ処理量(オンデマンド分析): 毎月最初の 1 TiB(約1,000 GiB) まで無料
  • 日次エクスポート(毎日): GA4側からのバッチエクスポート自体に処理料金は不要(※1日100万イベントが上限)

📚 公式一次ソース(出典)

個人ブログや小規模オウンドメディアのアクセス数であれば、1日あたりのデータ量は数十KB〜数MB程度です。後述する実際の検証でも、1回のSQL実行で消費したクエリ処理量は わずか 677 B 〜 27.73 KB でした。

無料枠「1 TiB」に対して数千万分の1しか使わない計算になるため、適切な設定を守れば意図しない課金は極めて高い確率で防げます。


第2章:わずか3分!GA4 × BigQuery 無料連携 3ステップ

全体の流れは以下の3ステップです。

flowchart LR
    S1["Step 1<br>Google Cloud<br>プロジェクト作成"] --> S2["Step 2<br>GA4 管理画面で<br>BigQueryリンク作成"]
    S2 --> S3["Step 3<br>GCP お支払いで<br>予算アラート設定"]
    S3 --> S4["翌日昼までに<br>生データ自動生成"]

Step 1:Google Cloud で専用プロジェクトを作成する

まず、データの受け皿となるGoogle Cloud(GCP)プロジェクトを新規作成します。既存の別プロジェクトと混在させないよう、分析専用のプロジェクトを1つ立てておくと管理しやすくなります。

  1. Google Cloud コンソール にログインし、画面上部のプロジェクト選択プルダウンから「新しいプロジェクト」をクリック。
  2. プロジェクト名(例:blog-analytics)を入力し、「作成」をクリック。

Google Cloud 新しいプロジェクト作成画面

数秒でプロジェクトの作成が完了します。画面上部のプロジェクト名が新しく作ったものに切り替わっていることを確認してください。


Step 2:GA4管理画面からBigQueryへリンクを張る

続いて、GA4の画面に移動して先ほどのプロジェクトと紐づけます。

  1. GA4の左下にある「管理(歯車アイコン)」を開く。
  2. プロパティ列の「サービス間のリンク設定」>「BigQuery のリンク」> 右上の「リンク」ボタンをクリック。
  3. 「BigQuery プロジェクトを選択」を押し、先ほど作成した blog-analytics を指定します。

⚠️ 注意点①:データのロケーションは「東京」を選ぶ

プロジェクトを選んだ直後の初期状態では、ロケーションが「米国(us)」になっています。このまま進むと後から変更できないため、プルダウンから「東京(asia-northeast1)」を選び直してから「次へ」を押してください。

GA4 BigQueryリンク ロケーション東京選択画面

⚠️ 注意点②:エクスポートタイプは「毎日」だけを選択する

「構成の設定」画面に進むと、エクスポートタイプを選ぶチェックボックスが現れます。

GA4 エクスポートタイプ毎日選択画面

ここで 「ストリーミング(ベスト エフォート)」にはチェックを入れず、「毎日」のみを選択 してください。

ストリーミングは数秒以内にデータが飛んでくる便利な仕組みですが、1GBあたり約0.05ドルの課金対象となるほか、BigQueryのサンドボックス環境(クレジットカード未登録)では利用できません。ブログのトレンド分析や記事改善が目的であれば、「毎日(1日1回まとめて転送)」だけで十分です。

最後に内容を確認して「送信」をクリックすると、緑色の「リンク作成済み」ステータスが表示されて連携完了です。

GA4 BigQueryリンク作成完了画面


Step 3:【重要】課金事故を防ぐ「予算アラート」を設定する

クラウド運用では、「もし間違えて巨大なクエリを実行してしまったら」と不安になる場面があります。そこで、登録セキスペの標準作法として Google Cloudの予算アラート(メール通知) を設定しておきます。

  1. Google Cloud コンソールの左メニューから「お支払い」>「予算とアラート(予算と上限)」>「Create new」をクリック。
  2. 予算名を「月次セーフティアラート」、対象プロジェクトを選択して金額を「¥1,000」(または ¥100 など少額)に設定。
  3. アラートしきい値を 50%(¥500)・90%(¥900)・100%(¥1,000) の3段階に設定し、「メール通知アラートを課金管理者とユーザーに送信する」にチェックを入れて「終了」を押します。

Google Cloud 予算アラートしきい値設定画面

一覧画面に自分のアラートが登録されれば安全弁の完成です。これで、仮に想定外の利用が発生しても初期段階でメール通知が届き、即座に対処できます。

Google Cloud 予算アラート作成完了一覧画面


第3章:翌朝のデータ到着を確認!BigQueryに届く実データの姿

GA4の「毎日(Daily)」エクスポートは、設定した瞬間に過去データが入るわけではありません。設定後の初回集計が終わる翌日の午前〜午後にかけて、自動的にデータセットが生成されます。

今回の検証では、夜23時頃にリンク設定を完了したところ、翌朝 9時12分(2026年11月10日 09:12:31) にBigQuery上で analytics_555220652 データセットと、前日分の events_20261109 テーブル(49行・55.55 KB)が生成されていました!

BigQuery 自動生成されたテーブルスキーマ画面

GA4の生データは、1つのイベント(ページ閲覧やスクロールなど)が1行として記録されており、ページタイトルやURLなどの詳細パラメータは event_params という階層構造(RECORD型)の中に格納されています。


第4章:実データで検証!コピペで動く分析SQL 4選

せっかく生データが手元に届いたので、さっそくBigQuery Studioから4パターンのSQLを実行して分析してみました。

※以下のSQLをコピーして使う際は、FROM 句の `your-project.analytics_XXXXXXXXX.events_*` を、ご自身のプロジェクトIDとデータセット名に書き換えて実行してください。

1. まずは疎通確認:イベント件数の内訳を見る

どんな種類のユーザー行動が記録されているかをカウントする基本クエリです。

SELECT
  event_name,
  COUNT(*) AS event_count
FROM
  `your-project.analytics_XXXXXXXXX.events_*`
GROUP BY
  event_name
ORDER BY
  event_count DESC;

BigQuery イベント件数集計の実行結果

1日分の全イベントは合計49件。session_start(16回)、page_view(11回)、first_visit(10回)、user_engagement(10回)、scroll(2回)といったデータが正確に取得できています。


2. 記事別ページビュー(PV)ランキング

GA4のデータ分析で最初に覚えたいのが、UNNEST(event_params) という構文です。入れ子になっている記事タイトルやURLをフラットに取り出して集計します。

SELECT
  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_title') AS page_title,
  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location') AS page_url,
  COUNT(*) AS pv
FROM
  `your-project.analytics_XXXXXXXXX.events_*`
WHERE
  event_name = 'page_view'
GROUP BY
  page_title,
  page_url
ORDER BY
  pv DESC
LIMIT 20;

BigQuery 記事別PVランキングの実行結果

実行前のクエリバリデータには 「このクエリを実行すると、23.03 KB が処理されます」 と表示されました。月間1TBの無料枠がいかに余裕に満ちているかが実感できます。


3. 【面白い発見】デバイス × 流入元分析で「AI検索流入」を捕捉

読者がどんな端末・経路から記事へ辿り着いているかを集計してみたところ、興味深い結果が浮かび上がりました。

SELECT
  device.category AS device_type,
  traffic_source.source AS source,
  traffic_source.medium AS medium,
  COUNT(DISTINCT user_pseudo_id) AS users,
  COUNTIF(event_name = 'page_view') AS page_views
FROM
  `your-project.analytics_XXXXXXXXX.events_*`
GROUP BY
  device_type,
  source,
  medium
ORDER BY
  page_views DESC;

BigQuery デバイスと流入元分析の実行結果

GoogleやYahooからのオーガーニック検索に加えて、3行目に mobile × perplexity(AI検索エンジン)からの流入がしっかり捕捉されていました(処理量:2.97 KB)。

2番目の記事URLを見ると ?utm_source=perplexity パラメータが付与されており、AI検索の回答引用リンクからスマホユーザーが記事を読みに来ている実態を、クエリ1本で把握できました。


4. GA4画面では見られない「1ユーザーの秒単位行動タイムライン」

最後に紹介するのが、BigQuery連携ならではの醍醐味である「個人単位(匿名ID)の時系列行動ログ」です。

SELECT
  FORMAT_TIMESTAMP('%Y-%m-%d %H:%M:%S', TIMESTAMP_MICROS(event_timestamp), 'Asia/Tokyo') AS jst_time,
  user_pseudo_id,
  event_name,
  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_title') AS page_title,
  ROUND((SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'engagement_time_msec') / 1000, 1) AS stay_sec,
  device.category AS device,
  geo.city AS city,
  traffic_source.source AS source
FROM
  `your-project.analytics_XXXXXXXXX.events_*`
ORDER BY
  event_timestamp ASC
LIMIT 50;

BigQuery 秒単位の行動タイムライン実行結果

※上図では読者プライバシー配慮のため user_pseudo_id 列にモザイク処理を施しています。

「ある匿名ユーザーが日本時間の朝8時39分39秒に初訪問し、どの記事で何秒滞在し、最後までスクロールしたか」が一本の時系列ログとして並びます(処理量:27.73 KB)。この生ログが毎日積み上がっていけば、後から何度でも好きな切り口で集計し直すことが可能です。


第5章:【応用】AIエージェントがBigQueryを定期分析し「次の打ち手」を提案する仕組み

せっかくBigQueryへ生データを貯めても、毎回コンソールを開いて手動でSQLを叩くだけでは次第に足が遠のいてしまいます。そこで当ブログの自律AI環境では、 「ブログをBigQueryで分析して」と一言投げるだけで、改善案と次の記事企画まで自動で返ってくる仕組み を構築しました。

構築した自動分析パイプラインの全体像

flowchart LR
    BQ["BigQuery<br>GA4日次生ログ"] -->|Pythonスクリプト<br>わずか64KB処理| SNAP["集計スナップショット<br>JSON"]
    CMS["microCMS API<br>公開記事56本一覧"] --> SNAP
    SNAP --> AI["AIエージェント<br>(専用分析スキル)"]
    AI --> OUT["① リライト対象記事の特定<br>② AI検索流入の検知<br>③ ブルーオーシャン記事案"]

実装の3つのポイント(セキュリティと自動化の両立)

  1. 最小権限のサービスアカウントで安全に接続する
    • Google Cloud側で BigQuery データ閲覧者 と BigQuery ジョブユーザー の2つの権限だけを付与した専用サービスアカウントを作成します。
    • 発行したJSONキーはGitリポジトリ外の専用ディレクトリ(~/.config/myoffice/)へ格納し、アクセス権を chmod 600 でロックすることで、誤ってソースコードと一緒に公開してしまうリスクを防ぎます。
  2. 「公開中だが読まれていない記事」をAPI突合で炙り出す
    • Python(google-cloud-bigquery)から期間を限定(_TABLE_SUFFIX 指定)してPV・滞在秒数・スクロール率・流入元を取得しつつ、ブログCMS(microCMS API)の公開記事一覧と突き合わせます。
    • 今回のテスト実行では、わずか 64.58 KB の処理量で、全56本の公開記事のうち「アクセスが集中して熟読(平均220秒)されているのに回遊が0件の記事」や「Perplexityが引用し始めた記事」が一目で判明しました。
  3. スキル(指示書)化してワンフレーズで起動させる
    • データの抽出から課題診断・改善提案までの手順をエージェントの専用スキルとして定義しておけば、週に1回チャットで「ブログをBigQueryで分析して」と依頼(または定期スケジュール実行)するだけで、定量データに基づいた次の一手が手に入ります。

第6章:今後の活用と安全運用のチェックリスト

最後に、BigQuery連携を安全かつ快適に続けるためのポイントを整理します。

  1. テスト時は LIMIT 句や対象日付の絞り込みを習慣化する
    • 今後数ヶ月・数年とデータが溜まってきた際、events_* で全期間をスキャンすると処理量が増えます。WHERE _TABLE_SUFFIX BETWEEN '20261101' AND '20261130' のように期間を絞る癖をつけると、ずっと無料枠内に収まりやすくなります。
  2. クエリ実行前に右上の処理量チェックを見る
    • BigQueryエディタは実行ボタンを押す前に「何KB/何GBスキャンするか」を緑色のチェックマークで事前試算してくれます。まずはここを見る習慣をつけましょう。
  3. AIにSQLを書かせて爆速で分析する
    • BigQuery Studio内のGeminiや、手元のAIエージェントに「GA4のBigQueryスキーマで、離脱前の平均滞在時間を出すSQLを書いて」と頼めば、SQLが苦手な方でもすぐに高度な分析ができます。

まとめ

GA4とBigQueryの連携は、設定自体が約3分で終わり、個人ブログ規模なら 無料利用枠(月1TBクエリ / 10GBストレージ)の範囲内でずっと資産データを蓄積できる 強力な仕組みです。

さらに一歩踏み込んでAIエージェントと組み合わせれば、生データを貯めるだけでなく「次にどの記事を直し、何を書くべきか」まで自動で導き出すブログ改善基盤になります。まだ連携していない方は、過去の生データが消えてしまう前に、まずは「東京リージョン × 毎日エクスポート × 予算アラート」の3点セットから始めてみてください。


関連記事 & 実践ノウハウ

Antigravityをスマホから遠隔操作!外出先から自宅PCのAIを動かす実践検証

今回のようなGoogle Cloudやデータ分析の実務検証を加速させる自律AI環境「Antigravity 2.0」について、外出先のスマホからQRコード1つで自宅PCを遠隔操作する手順と注意点を実機検証しています。

  • Remote Control実機検証: 専用アプリ不要(PWA対応)&モバイル回線接続テスト
  • スリープ切断の対策: 安全に稼働し続けるための設定とセキュリティ解説

著者プロフィール

LEE
インフラエンジニア / PMP®(Project Management Professional) / 情報処理安全確保支援士 / ネットワークスペシャリスト。
製造業から30代未経験でIT業界へ転職。現場でのネットワーク更改やセキュリティ監査、大規模プロジェクトマネジメントに従事。現在は個人ブログ『LEEの自宅サーバ運用記(https://jetree.work/)』にて、人間1名×自律AIエージェントによる次世代組織「MyOffice」の運営ノウハウや技術検証をオープンに発信中。

Featured 実務知見・実践アーカイブ

現場で役立つ「インフラ×PM×組織設計」の実践ログ

現役インフラ屋・PMPホルダーとして、実際の案件や組織マネジメント、セキュリティ運用の現場から得た一次情報を公開しています。

LEE
Author

LEE

現役インフラエンジニア / PMP / Jet Studio 代表

30代未経験からインフラの世界に入り、実務1.5年でネスペ一発合格。現在はSI管理職を務めつつ、AIエージェント自律組織の研究・開発や、無料Webドリル『忘却バスター』・プロジェクト管理シート『Simple PM』を自作公開しています。

PMP (2026年取得) 情報処理安全確保支援士 (2024年合格) ネットワークスペシャリスト (2023年合格) 自作Webドリル『忘却バスター』開発者 PMツール『Simple PM』開発者