この記事を書いているのは、2025年7月末です。4、5日ほど前に、GoogleからGoogle Analyticsの公式MCPサーバーがローンチされました。MCPサーバーのMCPとはModel Context Protocolの略です。GAのMCPサーバーを使うと、生成AIエンジン(GeminiやClaude)がデータソースであるGA4から直接データを受け取ることができます。
データの流れとしては、次の通りです。
- 人間が生成AIエンジンに対し、自然言語で問い合わせを行う
- 生成AIエンジンは、回答に必要なディメンションや指標を指定して、Google Analytics MCPサーバーにリクエストを投げる
- Google Analytics MCPサーバーはGA4のAPI経由でデータを取得し、取得したデータを生成AIエンジンに返す
- データを受け取った生成AIエンジンはデータを分析し、人間から聞かれた問い合わせに回答する
Google公式のこちらのYouTube動画(5分35秒の尺)では、どのようなことができるのかが、簡単に説明されています。デモもありますし、それほど長くないので、見ておくと良いかもしれません。また、「自分でやってみたいよ」という方は、小川卓さんのこちらのブログ記事が超おすすめです。画像をたくさん使って、ステップバイステップで手順を説明してくれているので、特に、生成AIとしてClaudeを利用したい人には向いていると思います。わたしも、小川さんの記事を参照して、ClaudeからGA4のデータについて自然言語で問い合わせをすることができました。(小川さん、ありがとうございます)
一旦接続してしまえば、生成AIに、自然言語での指示出しによるデータ分析をしてもらえるので、Google AnalyticsのMCPサーバーが来たぞ!と業界は多少沸いています。ですが、皆さんがお読みのこの記事は、実は、GA4のMCPサーバーについての記事ではありません。この記事は、生成AIエンジンから、BigQueryのMCPサーバーを利用してBigQuery上のGA4データのテーブルに接続し、自然言語でデータについて問い合わせをする方法。という記事です。生成AIエンジンとしてはClaudeを利用しています。
なぜGA4のAPIではなくBigQueryに接続するのか?
GA4のMCPサーバー経由でGoogle AnalyticsのAPI(Google Analytics Data API)からデータを取得できるのに、なぜ、あえてGA4がBigQueryに出力したテーブルからのデータ取得をするのか?わたしは、BigQueryからのデータ取得には、以下の3点のメリットがあると思います。ちなみに、SQLは生成AIエンジンが記述してくれるので、人間が書く必要は一切ありません。
- APIの呼び出し割り当ての制限からの自由
- 生成AIに与えるデータの柔軟性の高さ
- 検証可能性の高さ、容易さ
メリット1:API呼び出し割り当て制限からの自由
Google Analytics APIは無尽蔵に利用できる訳ではありません。こちらの公式ヘルプで「クォータ」として説明されている通り、1時間、あるいは1日あたりで割り当ての量が決まっています。それを超えてしまうと利用できないので、生成AIエンジンに無制限に「質問」を投げかける訳にはいきません。
一方、BigQueryからデータを取得する上では、SQL文を実行するたびに費用がかかるというデメリットはありますが、割り当てによって制限がかかるということはありません。
メリット2:生成AIに与えるデータの柔軟性の高さ
このメリットは言わずもがなではありますが、BigQueryからデータを取得した方が断然柔軟です。例えば、Web解析で利用されるディメンションの一つに「離脱ページ」があります。セッションの一番最後に表示されたページのことです。重要な「ここでは離脱されたくない」と考えているページで離脱が起きていないかを確認するときに利用するディメンションです。
ところが、「離脱ページ」はGA4のディメンションとしては存在しません。そのため、離脱数について生成AIから問い合わせてもまともな回答は返ってきませんし、離脱数についての分析をしてもらうこともできません。一方、BigQueryに接続すれば「セッションの最後の page_viewイベントが発生した page_location」を抽出することで、簡単に離脱ページを特定し、生成AIに分析してもらうことができます。
また、BigQueryを利用すれば、Region(都道府県)をグループ化して、8地域(北海道、東北、関東、中部、近畿、四国、中国、九州・沖縄)にグループ化したり、セッション数(ga_session_number)をグループ化して1を「初回訪問」、2と3を「暦浅訪問」、4以上を「常連訪問」などとして分析させることも可能です。
メリット3:検証可能性の高さ、容易さ
GA4 API経由で取得したデータを生成AIエンジンに分析してもらうと、何らかの示唆が返ってきます。それは素晴らしいのですが、現実には、どのようなデータに基づいて生成してくれた示唆なのか、つまり、示唆の根拠はどうしても確認する必要があります。返ってきた示唆をそのまま鵜呑みにするのは(少なくとも現時点では)危険です。
そこで、生成AIに、どのようなデータを元にした示唆なのか聞くことになります。示されたデータが適切なものかどうか、その答え合わせは、GA4の探索レポートで「裏取り」をして行うことになります。GA4の探索レポートはかなり柔軟にレポートを作成できますが、それでも検証しきれない、あるいは検証に非常に手間がかかる。ということは十分にありえます。
一方、BigQueryからデータを取得した場合には、生成AIがSQL文をBigQueryに投げますので、「どんなSQL文を投げたのか?」を生成AIに質問すると、ちゃんと教えてくれるのです。SQLはロジックの塊ですので、どのカラム(列)をどんな条件で取得し、どんな集計をしたのか、、、がすべて分かります。つまり、(SQLをある程度書ければ、、、ですが)検証が可能です。このメリットは非常に大きい気がします。
ClaudeからBigQuery上のテーブルへの自然言語での問いの例
この記事で紹介する方法をご自身の環境で再現して頂くと、こんなことができるようになります。
Claudeに投げたプロンプト

Claudeからのお返事
以下のように、指示どおりの結果を返してくれました。実際にはちゃんと20個のページを出してくれています。

SQLによる検算
どんなSQLを書いて分析したのか聞いてみました。そのお返事(の一部)は以下の通りです。人間がSQLをわかっていれば、ちゃんと検算できる。ということはご理解頂けるかと思います。

実現までのステップバイステップの手順
それぞれの手順の詳細は後述しますが、上記のような、Claude Desktopを利用したBigQuery上のGA4データに対する自然言語での問い合わせを実現するまでの全体のステップは以下の7ステップです。
- Google Cloud上でのIAM設定
- Claude Desktopのインストール
- Node.jsのインストール
- Claude Desktopの設定ファイルへの接続情報の記述
- Google Cloud CLIのインストール
- ADCを利用した認証
- Claude Desktopへの自然言語による問い合わせの実行
ステップ1:Google Cloud上でのIAM設定
GA4のテーブルが格納されているプロジェクトに対して、ユーザーに「役割」を付与する必要があります。以下の3つの役割を付与することが必要です。(あるいは推奨されています。)
- BigQuery データ閲覧者(BigQuery Data Viewer)
- BigQuery メタデータ閲覧者(BigQuery Metadata Viewer)
- BigQuery ジョブユーザー(BigQuery Job User)
以下がGeminiが教えてくれた、必要な役割と、その付与の方法です。

ステップ2:Claude Desktopのインストール
Claudeは、オンライン版を利用している方が多いと思いますが、実はオンラインのClaudeからはMCPサーバーを利用することができません。そこで、本プロジェクトでは、Claude Desktopを利用することになります。Claude DesktopはAnthropicの公式サイトからインストール可能です。OSは、Mac、Windows両方に対応しています。
ダウンロードURL: https://claude.ai/download
ステップ3:Node.jsのインストール
Node.jsはオープンソースのJavaScript実行環境です。JavaScriptがブラウザで動くのはご存じの方が多いと思いますが、ローカルのPC上でJavaScriptを動かすのに必要になります。MCPサーバーは、JavaScriptで記述されているので、ローカルに、JavaScriptを動かす環境が必要ということですね。
手順としては、Node.jsの公式サイトから、「Node.jsを入手」をクリックし、ガイダンスに従ってインストールします。

インストールが完了したら、ウィンドウを閉じてしまって構いません。念の為、コマンドプロンプトツール(Windowsの場合には、デスクトップ左下にある「検索バー」に「cmd」と入力し、検索結果に表示される 「コマンドプロンプト」をクリック)から、
node--version
と入力して、エンターを押し、以下のようなバージョン情報が表示されれば正常にインストールされています。

ステップ4:Claude Desktopの設定ファイルへの接続情報の記述
Claude Desktop、Node.jsのインストールが完了したら、次は、Claude DesktopがBigQueryの情報をどこに読みに行けばよいかを設定ファイルに記述します。設定ファイルはjson形式のテキストファイルです。ファイル名は、claude_desktop_config.json です。Windowsの方は以下のフォルダにあります。

もし、見つからなかったり、Macの方は、Claude Desktopの ファイル > 編集を開き、「開発者」(赤枠)をクリックすると現れる、「設定の編集」(青枠)をクリックすると、当該のjsonファイルが格納されているフォルダが開きます。(ちなみに、以下の画像はわたしの環境のものですが、BigQueryのMCPサーバーが追加され、稼働中(running)ということが分かります。(つまり、自然言語でBigQuery上のテーブルに対して問い合わせが可能な状態です。)

jsonファイルを開くと、最初は {} しか記述されていないので、以下の内容で上書きし、保存します。ただし、以下はわたしの環境ですので、2箇所ある太字のところは皆さんの環境に書き換えてください。もし、ご自身の環境で、GA4のテーブルを格納するデータセットのリージョンがus以外であれば、そこも修正してください。
bigquerytableauoct → GA4のテーブルが格納されているプロジェクトのプロジェクトID(プロジェクト名ではありません)
{
"mcpServers": {
"bigquery": {
"command": "npx",
"args": [
"-y",
"@ergut/mcp-bigquery-server",
"--project-id",
"bigquerytableauoct",
"--location",
"us"
],
"env": {
"BIGQUERY_PROJECT": "bigquerytableauoct"
}
}
}
}
ステップ4:Google Cloud CLIのインストール
次に、Google Cloud CLIをインストールします。目的は、Claude Desktopが、BigQueryのGA4テーブルに接続に行くときの認証を通しておくためです。何の認証情報も与えなければ、Claude DesktopはBigQueryにアクセスできない(し、アクセスできるべきでもない)のはご理解の通りです。Google Cloud CLIをインストールし、その上で、ステップ6で認証を通します。
Google Cloud CLIのインストールは、Google Cloudの公式サイトの、以下のURLから行います。
https://cloud.google.com/sdk/docs/install?hl=ja
ステップ6:ADCを利用した認証
Google Cloud CLIのインストールが完了したら、コマンドプロンプトを開きます。(前述の通り Windowsの場合には、cmdを利用)わたしも含め、多くの、エンジニアでない皆さんはコマンドラインなんて開かないと思いますので、少しビビりますが、「認証を通すだけ」なので、ビビらなくて大丈夫です。
コマンドラインツールが開いたら、以下をコピペして、エンターキーを押します。
gcloud auth application-default login
すると、ブラウザが立ち上がり、「どのGoogleアカウントの認証を通したいのですか?」と聞いてきますので、GA4テーブルを格納しているBigQueryと紐づいているGoogleアカウントをクリックし、認証を与えます。この認証方式をADC(Application Default Credentials)と呼びます。
アカウントの選択画面

以下の画面で「続行」をクリックすると認証が通ります。

ステップ7:Claude Desktopへの自然言語による問い合わせの実行
以上で環境設定は完了しましたので、Claude Desktopから自然言語で問い合わせができるようになります。先ほどは、「GA4のAPI経由ではできないけれど、BigQueryを使えばできる」例として、「ページタイトルごとの、表示回数、離脱数、離脱率」をClaude Desktopから可視化しました。
一方、実際にはもっと複雑なタスクもこなしてくれます。例えば、以下のようなプロンプトに対しても、分析、示唆だしをしてくれました。

まとめ
手順をかなり細かく紹介したので、長くなってしまいましたが、如何でしたか?わたしには、「人間による分析」の終わりの始まりが見えた。そんな気持ちになりました。
では、人間は何も関与しなくてよいのか?というと、そんなことはありません。以下は、わたしが考える、人間(Web解析コンサルタント)の関与が必要、かつ、関与する人間の力量で差がつくタスク分野かと思います。
適切なイベント収集設計
いくらデータソースをBigQueryにしても、適切なイベント収集設計ができてなければ簡単に「Garbage In, Garbage Out」の罠にハマってしまいます。適切に設計、実装されたイベント収集は人間が関与する必要があるでしょう。
GA4テーブルのスキーマを理解したプロンプト作成
生成AIは、一般的に、適切なプロンプトを出せば、適切な回答や示唆を出してきます。つまり、生成AIに分析させるデータもそうですが、プロンプトについても「Garbage In, Garbage Out」の鉄則は生きています。つまり、GA4テーブルを分析するためのプロンプトを適切に記述するには、GA4スキーマを理解した人間の関与は必要でしょう。
生成AIの示唆の妥当性の検証
生成AIに対して、テキストによる問い合わせをしたとき、ハルシネーションと呼ばれる「事実ではない答弁」をすることがあります。データに基づいた分析や示唆だしにおいても、問いを投げた人間が意図していない分析に基づいて示唆を出してくることは十分にあり得ることでしょう。そこで、(少なくとも現時点では)生成AIの出した示唆が適切なデータに裏付けられているのか、その検証をする必要があると思います。その検証は人間の役割です。
Web解析の知識に基づく生成AIが出した示唆の見立て
生成AIが出してきた示唆が、適切な分析に基づくものだったとしても、それを、サイトオーナーが理解し、合意し、示唆に基づくアクションを実行しなければ改善は起きません。すると、生成AIの示唆が妥当であり、少なくともアクションしてみる価値があることを保証したり、あと押したりする人間が必要でしょう。そこは人間の関与領域だと思います。
学ぼう
「まとめ」にも書きましたが、「分析」自体は生成AIが行うにしても、その検証は必要です。生成AIが分析をする過程で利用したSQLの適切さを検証するにはSQLを知っている人間が必要ですし、SQLが正しいとなった場合でも、分析自体が適切かどうか確認するには、人間の側にSQLの戻してきたテーブル上のデータの可視化スキルが求められます。
「学んでおきたいな」とピンと来た方に自信をもって紹介できる学習用の良い動画講座があります。1000件を超えるレビューを頂き、5点満点中4.6点と、お陰様で評判も良いようです。よろしければどうぞ。(画像をクリックするとUdemy.comにジャンプします。)

え?SQLは本で勉強したい?なるほど、では、こちらをどうぞ。クリックをするとアマゾンにジャンプします。
(本記事執筆時点で、レビューが51件、評点4.3/5 です)

Tableauを学べる講座はこちらです。「最高評価」とか、「ベストセラー」をいただいています。いずれも、クリックすると、Udemy.comにジャンプします。

