Googleアナリティクス4(GA4)やGoogleサーチコンソールのデータをChatGPTで分析する際、毎回管理画面を開いて数値を確認し、CSVなどでデータを渡していないでしょうか。
この作業は、MCP(Model Context Protocol)を利用することで効率化できる可能性があります。
markeTransでは、GA4とGoogleサーチコンソールに接続する独自MCPサーバーを開発し、筆者のChatGPT Plus環境において、プラグインとして登録して通常のチャットから呼び出せることを確認しました。
さらに、実際のGoogle APIからデータを取得し、検索クエリの追加調査候補を抽出するところまで検証しています。
本記事では、実装した仕組みと検証結果、構築の進め方、OAuth認証で発生した問題と解決方法、マーケティング実務への活用方法を解説します。
この記事の対象読者
- GA4やサーチコンソールの分析を日常的に行うWeb担当者
- 複数のWebサイトを担当するマーケター
- ChatGPTとGoogleの分析データを連携させたい人
- プログラミングの専門知識はないが、AIを活用して業務環境を構築したい人
※本記事は2026年10月11日時点のmarkeTransにおける実装・検証記録です。ChatGPTの機能提供条件や設定画面は変更される場合があります。筆者のPlus環境での成功は、すべてのPlusアカウントで同じ方法を利用できることを保証するものではありません。
1. ChatGPTからGA4・サーチコンソールを取得した検証結果
今回構築した「markeTrans Marketing MCP」は、ChatGPTからGoogle APIを呼び出し、GA4とGoogleサーチコンソールのデータを取得する仕組みです。
例えば、次のように依頼できます。
自社サイトの2026年9月のGA4セッション数、アクティブユーザー数、ページビュー数を取得してください。サーチコンソールのクリック数、表示回数、CTR、平均掲載順位も確認してください。
実際の取得結果
markeTransの自社サイトについて、2026年9月1日〜30日のデータを取得しました。
| データソース | 指標 | 取得結果 |
|---|---|---|
| GA4 | セッション | 406 |
| GA4 | アクティブユーザー | 275 |
| GA4 | ページビュー | 881 |
| サーチコンソール | クリック数 | 26 |
| サーチコンソール | 表示回数 | 1,403 |
| サーチコンソール | CTR | 約1.85% |
| サーチコンソール | 平均掲載順位 | 約14.95位 |
これらの数値は、記事改稿時にもMCP経由で再取得し、元の検証結果との一致を確認しました。
GA4のレポートではタイムゾーンが「Asia/Tokyo」、サーチコンソールの検索パフォーマンスでは日付が太平洋時間基準で扱われます。両サービスのデータを比較する際には、集計条件の違いに注意が必要です。
また、GA4のセッション数とサーチコンソールのクリック数は、そもそも異なる指標です。数値が一致しないことだけを理由に異常とは判断できません。
複数サイトのデータソースも取得可能
今回の接続では、権限のあるGoogleアカウントからGA4の8プロパティ、サーチコンソールの7サイトを一覧取得できました。
ただし、両者が同じWebサイトを指しているとは限りません。
そのため、GA4プロパティとサーチコンソールのサイトの対応関係を確認してから、分析対象を決定する設計としています。
PCブラウザではデータの取得と照合を確認済みです。デスクトップアプリとスマートフォンアプリでもMCPの呼び出しを確認していますが、全指標の数値照合まで完了したのはPCブラウザです。
2. 取得したデータから追加調査の候補を抽出できるか
GA4やサーチコンソールの数値を取得できるだけでは、マーケティング業務の改善につながるとは限りません。
そこで、今回の改稿に合わせて、MCP経由で検索クエリ別のデータを取得し、追加調査の候補を検討しました。
2026年9月の検索クエリを分析
サーチコンソールから取得したデータの一部がこちらです。
| 検索クエリ | 表示回数 | クリック数 | 平均掲載順位 |
|---|---|---|---|
| marketrans | 12 | 6 | 2.25位 |
| ab3c分析 | 33 | 0 | 約3.15位 |
| ab3c | 7 | 0 | 約5.43位 |
| ga4 ユーザー数 合わない | 4 | 0 | 3.75位 |
| ga4 合計 合わない | 7 | 0 | 約7.57位 |
※2026年9月1日〜30日、Web検索、確定データ。検索クエリ別データは匿名化やAPI上の制限などにより、サイト全体の合計値と一致しない場合があります。
例えば「ab3c分析」は、検索結果に33回表示され、クリックが発生していませんでした。平均掲載順位は約3.15位です。
ただし、表示回数は少なく、対象ページや検索結果上の表示内容も未確認です。そのため、現時点では改善対象ではなく、追加調査の候補として扱います。
markeTransには、AB3C分析に触れている既存記事「ウェブサイトリニューアル時の戦略の作り方」があります。
ただし、この検索クエリの流入先が当該記事であるとは確認できていません。対象ページを特定するには、サーチコンソールで検索クエリとページを組み合わせたデータを取得する必要があります。
データ取得と改善判断を分ける
今回の検証では、次の3段階を実施しました。
- MCP経由で検索クエリ別の実データを取得する
- 表示回数・クリック数・平均掲載順位から確認候補を抽出する
- サンプル数や検索意図を踏まえ、追加調査の必要性を判断する
ここで重要なのは、AIが提示した候補をそのまま改善指示にしないことです。
AIはデータの整理や仮説の提示に役立ちますが、実際にページを修正するかどうかは、検索意図、事業との関連性、期待できる効果を踏まえて判断する必要があります。
3. MCPとプラグインは何が違うのか
今回の仕組みを理解するうえで、最初に整理したいのが「API」「MCP」「プラグイン」の違いです。
| 用語 | 今回の役割 |
|---|---|
| API | GA4・サーチコンソールからデータを取得する窓口 |
| MCP | AIと外部ツールを接続するための共通規格 |
| MCPサーバー | Google APIに問い合わせるプログラム |
| プラグイン | MCPなどの機能をChatGPTから利用するためのパッケージ |
| OAuth | 利用者認証やアクセス許可を扱う仕組み |
今回のシステムでは、ChatGPTからプラグインを通じてMCPを呼び出し、MCPがGoogle APIからデータを取得します。
システムの全体像
ChatGPTの通常チャット
│
▼
プラグイン
│
│ Auth0による認証・アクセス権限の確認
▼
Cloud Run上のMCPサーバー
│
│ Google OAuthで許可された範囲
▼
Google API
├─ GA4
└─ サーチコンソール
│
▼
取得したデータをChatGPTへ返す
この構成で特に重要なのは、MCPサーバーを構築することと、ChatGPTの通常チャットから利用できるようにすることは別の工程だという点です。
実際、今回の開発では、Google APIとの連携よりも、ChatGPT側の登録方法とOAuth認証の調整が大きな課題になりました。

4. ChatGPT Plusで独自MCPを利用するための条件
今回の環境では、筆者のChatGPT Plusアカウントで、独自MCPをプラグインとして登録し、通常のチャットから呼び出せました。
ただし、Plusを契約していれば、すべてのアカウントで同じ登録機能が利用できるという意味ではありません。
プラグインの作成・接続機能と、別のMCP登録機能では、利用条件や設定方法が異なる場合があります。
そのため、構築を始める前に、まず自分のChatGPT環境で独自MCPを登録できるか確認する必要があります。
確認できない場合は、先にGoogle Cloudや認証サービスを構築しても、目的の利用形態を実現できない可能性があります。
5. 実装に使用した技術とサービス
今回採用した構成は以下のとおりです。
| 技術・サービス | 用途 |
|---|---|
| Python | MCPサーバーの開発 |
| Python MCP SDK | MCPツールの実装 |
| Google Cloud | クラウド環境 |
| Cloud Run | MCPサーバーの実行 |
| Google Analytics Admin API | GA4プロパティ情報の取得 |
| Google Analytics Data API | GA4レポートの取得 |
| Search Console API | 検索パフォーマンスの取得 |
| Google OAuth | Googleデータへのアクセス許可 |
| Auth0 | ChatGPTからMCPを利用する際の認証 |
| ChatGPTプラグイン | 通常チャットからのMCP呼び出し |
Cloud Runを利用することで、MacやCloud Shellを起動していなくてもMCPを利用できる構成にしました。
なお、Cloud Runの外部到達性と、MCPを利用できるユーザーの制限は区別する必要があります。
外部からHTTPSで到達可能なエンドポイントを用意する場合でも、MCP側では適切な認証・認可を実装し、未認証のデータ取得を拒否しなければなりません。
6. 独自MCPの構築からプラグイン登録までの8ステップ
ここでは、実際の開発工程を8段階に整理します。
本章は、すべての環境でそのまま実行できる完成コード集ではなく、構築に必要な工程と確認事項を理解するための実践ガイドです。
STEP 0:ChatGPTの利用環境を確認する
最初に、独自MCPをプラグインとして登録できる機能が利用可能か確認します。
ChatGPTの設定画面と、最新の公式ドキュメントを照合してください。
STEP 1:テスト用MCPを作成する
最初からGoogle APIへ接続せず、固定文字列を返す簡単なMCPツールを作ります。
これにより、ChatGPTとMCPの接続自体が成立するかを先に検証できます。
STEP 2:Google APIを設定する
Google Cloudで必要なAPIを有効化し、Google OAuthを設定します。
今回使用したのは、Google Analytics Admin API、Google Analytics Data API、Search Console APIです。
認可スコープは読み取りに必要な範囲に限定します。
Client SecretやRefresh Tokenなどの秘密情報は、チャット本文やソースコードに直接記載せず、適切な方法で保管します。
STEP 3:PythonでMCPサーバーを実装する
Python MCP SDKを使用し、以下のような機能を実装します。
- GA4プロパティ一覧の取得
- サーチコンソールのサイト一覧の取得
- GA4レポートの取得
- サーチコンソールの検索パフォーマンス取得
最初は一覧取得などの簡単な機能から実装し、段階的にレポート取得へ進みます。
APIエラーを「データ0件」と誤認しないよう、正常応答とエラーを区別することも重要です。
STEP 4:Cloud Runへ配置する
MCPサーバーをCloud Run上で動作させます。
この段階では、起動確認だけでなく、HTTPS接続、アクセス制御、ログに秘密情報が含まれていないかなども確認します。
公開設定を変更する場合は、認証・認可が有効に機能することを検証してから実施します。
STEP 5:Auth0で利用者認証・認可を実装する
今回の実装では、ChatGPTからMCPを呼び出す際の認証にAuth0を使用しました。
MCP側では、アクセストークンの署名、発行者、対象、有効期限、必要な権限などを、リクエストごとに検証する設計としています。
Google APIへのアクセス許可とは別に、MCPの利用者と実行可能な操作を制限するための仕組みです。
STEP 6:ChatGPTプラグインとして登録する
MCPサーバーの接続情報をプラグインに登録します。
今回の構成では、Auth0に登録済みのOAuthクライアントを利用する方式を採用しました。
OpenAIのプラグイン仕様では、既存OAuthクライアントを指定する provided モードが用意されています。
この方式では、登録済みのクライアントIDを指定し、必要に応じて認証エンドポイントやスコープを設定します。
リダイレクトURIは、ChatGPTの接続管理画面に表示される実際の値をAuth0側で許可します。固定のURLを推測して設定しないことが重要です。

STEP 7:実データを取得して照合する
接続が完了したら、対象サイトと期間を指定してデータを取得します。
GA4とサーチコンソールそれぞれについて、別の取得経路や管理画面と数値を照合します。
確認すべきなのは、数値だけではありません。
対象サイト、期間、指標、集計条件、タイムゾーンまで確認し、意図したデータを取得できているか検証します。
7. OAuth認証で「Unknown client」が発生した問題と解決方法
今回の開発で大きな課題となったのが、ChatGPTとAuth0のOAuth認証でした。
最初に試したMCP登録方法では、Auth0側でクライアントを認識できず、Unknown client エラーが発生しました。
今回の環境で行った対応
登録方式を変更し、プラグイン作成機能から既存のAuth0 OAuthクライアントを明示的に指定しました。
さらに、ChatGPTが認証結果を受け取るリダイレクトURIをAuth0側で許可しました。
その結果、今回の環境では、認証を無効化することなく接続できました。
ただし、同じエラーメッセージが表示された場合でも、必ず同じ原因とは限りません。
なぜ登録方式の違いが重要なのか
OAuthでは、接続元のアプリケーションを識別するためのクライアント情報が使われます。
OpenAIの公式仕様では、既存クライアントを指定する方式のほか、CIMDやDynamic Client Registration(DCR)といった方式も説明されています。
今回の環境では、既存クライアントを指定する方法が有効でした。
その他のエラーへの対応
| エラー | 確認すべきこと |
|---|---|
| 401 | 認証情報、トークンの期限、対象サーバー |
| 403 | アクセス権限、APIスコープ、サーバー側の制限 |
| 421 | ホスト名や接続先の整合性 |
| 再認証が必要になる | トークンの期限、失効、更新処理 |
| 数値が一致しない | 対象サイト、期間、指標、集計条件 |
エラーの種類だけで原因を断定せず、どの接続段階で問題が発生しているかを確認することが重要です。
8. マーケティング実務での活用方法
今回の構成は、特に定期的な分析業務や複数サイトの管理に適しています。
月次・週次レポートの確認
GA4のセッション数や流入元、サーチコンソールの検索パフォーマンスなどを、ChatGPTから取得できます。
例えば、毎週同じ指標を確認する業務では、管理画面からデータを転記する工程を削減できる可能性があります。
SEOの追加調査候補の抽出
今回実施した検索クエリ分析のように、表示回数があるのにクリックが少ないクエリや、検索順位の変化を確認したいクエリを抽出できます。
ただし、改善案の採否には検索意図やサイトの目的を踏まえた判断が必要です。
複数サイトの分析
複数のGA4プロパティやサーチコンソールのサイトにアクセスできる場合、同じインターフェースから対象を切り替えて確認できます。
一方、サイトの取り違えを防ぐため、対象の識別と確認を省略しないことが重要です。
SNS・広告データへの拡張
MCPはGA4やサーチコンソール専用の仕組みではありません。
将来的には、Meta APIを利用したInstagram・Facebookのインサイト取得や、Google Ads APIを利用した広告・検索需要データの取得にも応用できる可能性があります。
ただし、今回のMCPでは、Meta APIとGoogle Ads Keyword Plannerの機能はまだ実装していません。
これらの接続には、各サービスのAPI利用条件や権限設定を別途確認する必要があります。
9. クライアントデータを扱う際の注意点
自社サイトでの検証と、クライアントサイトのデータを利用する場合では、求められる管理水準が異なります。
特に重要なのは、次の4点です。
① MCPを利用できる人を制限する
今回の構成では、Auth0を利用してMCPへのアクセスを制御しています。
認証が成功した場合でも、実行するツールに必要な権限があるかを確認する必要があります。
② Google APIの権限を最小限にする
分析データの取得が目的であれば、不要な編集権限や管理権限を付与しない設計が適切です。
③ ChatGPTに送信されるデータを管理する
MCPが取得した結果は、ChatGPTが回答を生成するために利用します。
そのため、MCPへのアクセスを制限することと、外部AIに渡すデータを管理することは別の問題です。
取得項目を必要最小限に限定し、個人情報や機密情報を不用意に含めないことが重要です。
また、ChatGPTのデータ取扱い条件や設定は、利用するプランや機能に応じて確認する必要があります。
④ クライアントの承認を確認する
GA4やサーチコンソールの閲覧権限を持っていても、そのデータを外部AIへ送信してよいとは限りません。
契約内容、秘密保持義務、社内規定などを確認し、必要に応じて事前承認を得る必要があります。
最初は自社サイトの集計データで検証し、安全性と運用ルールを整えてからクライアントへ展開することを推奨します。
10. どのような業務に導入すると効果的か
MCPの導入は、すべてのマーケティング業務に必要というわけではありません。
単発の分析であれば、管理画面からCSVを取得するだけで十分な場合もあります。
一方、次のような業務では、導入を検討する価値があります。
| 業務 | 期待できる効果 | 注意点 |
|---|---|---|
| 毎日のアクセス確認 | 数値取得の手間を削減 | 異常値の確認は必要 |
| 週次・月次レポート | 同じ指標を繰り返し取得しやすい | 集計条件を統一する |
| 複数サイトの運用 | 同じ画面から対象を切り替えられる | サイトの取り違えを防ぐ |
| SEOの調査候補抽出 | クエリやページの変化を確認しやすい | サンプル数と検索意図を考慮 |
| SNS・Web横断分析 | 将来的なデータ統合の基盤になる | 各APIの実装と権限確認が必要 |
導入効果は、データ取得の頻度、対象サイト数、分析業務の内容によって変わります。
構築・保守にかかる時間や費用も考慮し、業務課題に対して適切な手段かどうかを判断することが重要です。
まとめ|MCPはマーケティング判断を支援するための基盤
今回、markeTransでは独自MCPを構築し、筆者のChatGPT Plus環境において、通常チャットからGA4とGoogleサーチコンソールのデータを取得できることを確認しました。
実際の数値取得だけでなく、検索クエリ別データから追加調査の候補を抽出する検証も行っています。
また、今回の開発で重要だったのは、Google APIとの接続だけではありません。
作成したMCPをChatGPTのプラグインとして登録し、OAuth認証を通して日常的に利用できるようにしたことが、大きな成果です。
ただし、AIによるデータ取得や調査候補の抽出が、そのまま正しいマーケティング判断につながるわけではありません。
数字の背景にあるユーザー行動や事業課題を理解し、何を改善すべきかを判断することは、引き続きマーケターの役割です。
データを集める時間を減らし、分析と改善判断に使える時間を増やすこと。
markeTransでは、自社サイトを実践・検証の場として活用しながら、AIとマーケティングの連携方法を継続的に検討していきます。
参考資料
- OpenAI|Plugins
- OpenAI|Build an MCP server
- OpenAI|Package your plugin
- OpenAI|Authentication
- Google|Analytics Data API
- Google|Search Console API
- Google Cloud|Cloud Run Authentication
関連記事
- ウェブサイトリニューアル時の戦略の作り方 — Web解析から課題を整理し、改善方針を設計する考え方を紹介
