広告・EC・SEOのデータを、MCPでClaudeや業務AIへ。
← コラム一覧へ
BigQuery・AI分析

ChatGPTとBigQueryを連携する方法|現在の選択肢とGPTsでの実演

執筆:中都智仁公開 更新 18分で読めます

ChatGPTとBigQueryをつなぎ、売上を自然言語で分析する方法を解説。現在のプラグインとGPTsの利用条件、OAuth・IAM・アクション設定、月別売上の実演を紹介します。列名エラーの修正、グラフの失敗、Claudeとの違いも正直に振り返ります。

こんにちは、中都です。

BigQueryに売上やアクセスのデータは入っている。でも、数字を知りたいだけなのに、そのたびにSQLを書くところから始まってしまう。僕がChatGPTとBigQueryをつないでみたかったのは、その手間を減らして「先月の売上は?」「次に何を調べる?」と会話で分析を進めたかったからです。

実際に試すと、ChatGPTが列名のエラーを調べ直し、月別売上を表にしてくれました。一方、グラフが表示されなかったり、確認を何度も押したりする場面もありました。接続方法と、使って初めて分かった手応えを、実演画像と一緒に紹介します。

動画でも解説しています

SQLの依頼待ちを減らし、自分で売上の変化を調べたい方へ

数字を一度出してもらうだけでは、分析は終わらない

「2025年の売上を月別に見たい」。表が出てきたら、今度は「落ち込んだ月は、注文数と単価のどちらが変わった?」と知りたくなります。質問のたびに集計を依頼したり、SQLを一から書いたりしていると、気になったことをその場で確かめにくいですよね。

ChatGPTからBigQueryを参照できれば、データの場所を伝え、自然な言葉で集計を頼めます。自分でSQLを書き始める前に、知りたいことを言葉にして、必要な表と集計方法をAIに相談できるのが、この連携の便益です。ただし、AIが選んだ列や集計条件が、自社の売上の定義と合うかは確認します。

この記事でできるようになること

  • 接続方法を選ぶ:現在のBigQueryプラグインと、既存GPTのアクション設定を区別する。
  • 接続を確かめる:Google認証、権限、プロジェクト・リージョンを確認し、自分のデータの取得まで進める。
  • 分析結果を読む:月別売上の実演から、エラーの直し方、数字の照合、グラフ化で確認する点を学ぶ。

本編の実演は、クラフトビールECを想定したデモデータです。自社の売上実績ではありません。BigQueryに分析したいデータがあり、Google Cloudの設定権限を持つ方、または管理者に設定を依頼できる方を対象にしています。

最初に確認:現在の接続方法と、動画のGPTs設定は異なります

現在、新規に接続するなら、まずOpenAI公式のBigQueryプラグインの利用可否を確認してください。動画で実演したのは、GPTsの「アクション」にAPIの設定を登録する方法です。ここを同じものとして進めると、設定項目が見つからなくなります。

OpenAIの現行案内では、Free・Go・Plus・Proの個人アカウントは新しいGPTを作成できません。既存GPTの編集や、Business・Enterprise・Eduでの作成は、プランと組織の権限に依存します。GPTからプラグインへの移行も案内されています。動画の「ChatGPTに課金していれば試せる」という条件は、そのまま現在に当てはめないでください。GPTの作成・編集に関する公式案内

これから始める場合:BigQueryプラグインを確認する

  1. OpenAI公式のBigQueryプラグインを開き、「Install plugin」からChatGPTへ進みます。ChatGPT内の「Plugins」から探す方法もあります。
  2. 利用するアカウント・ワークスペースを確認して追加し、求められた接続手順に従ってGoogleアカウントを認証します。組織で制限されている場合は、管理者に利用可否を確認します。
  3. 新しい会話でBigQueryを指定し、まずプロジェクトIDと対象のデータセットを伝えます。下の質問例で、参照先と列名を確認します。
  4. 返ってきたプロジェクト・データセット・テーブルが自分の対象と合っていることを、BigQueryの画面と照合します。接続の表示だけで終えず、読み取り結果まで確認してください。
BigQueryのプロジェクト「自分のプロジェクトID」について、
売上分析に使えるデータセットとテーブルを確認してください。
売上金額と購入日時に使う列、その型、データの期間を教えてください。
データの変更は行わず、読み取った事実と推測を分けてください。

利用できる環境や機能はプラン・組織設定によって変わります。インストールや権限設定の共通操作は、プラグインの公式ガイドを参照してください。このあと掲載する画像は、動画で試したGPTsアクション方式の画面です。

GPTsアクション方式を設定する前に、準備するもの

ここからは、既存GPTの設定を見直す方、またはGPTを作成できる組織環境の方向けです。手順は「Google Cloudの準備→OAuth認証→GPTの設定→最初の取得」の順に進みます。

  • Google Cloud:対象のプロジェクトID、データセット名、テーブル名、データセットのロケーション。
  • Googleアカウント:そのデータを閲覧でき、クエリを実行できるアカウント。認証の設定をする人と、分析に使う人は区別します。
  • ChatGPT:既存GPTを編集できる環境、またはGPT作成が許可された組織環境。
  • 費用:ChatGPT側の契約に加え、BigQueryの保存・クエリ処理の費用を確認します。「接続できる」ことと「分析がすべて無料」であることは別です。

BigQueryの処理量と料金は公式料金ページで確認できます。最初は期間と集計項目を絞り、元の画面と照合できる小さな集計から始めましょう。

手順1.BigQuery APIと、分析する人の権限を確認する

Google Cloudコンソールを開き、上部のプロジェクト選択から対象を選びます。プロジェクトの表示名だけでなく、プロジェクトIDを控えてください。

上部の検索で「BigQuery API」を探し、詳細画面を開きます。「有効にする」が表示されている場合だけ有効化します。「管理」など、有効な状態の表示があれば次へ進めます。

BigQuery APIの詳細画面で有効状態を確認する
実演ではBigQuery APIが有効でした。すでに有効なら、同じ設定を繰り返す必要はありません。

続いて、左のメニューから「IAMと管理」→「IAM」を開き、分析に使うGoogleアカウントの権限を確認します。追加が必要なら管理者に依頼します。クエリを実行するプロジェクトではBigQuery ジョブユーザー、読み取るデータセットではBigQuery データ閲覧者など、目的に合った権限を設定します。設定後、対象アカウントと適用範囲が一覧に表示されれば確認できます。BigQueryのIAM権限

動画でBigQueryユーザー・データ閲覧者・MCPツールユーザーを設定した画面
撮影時はMCP向けの権限も追加しています。本文のGPTsアクション方式では、実際に呼ぶBigQuery APIに必要な権限を確認してください。

動画ではMCPの有効化も行っていますが、GPTsアクションのAPI設定と、https://bigquery.googleapis.com/mcpへ接続するリモートMCPは別の方式です。Google公式の現行MCP手順でも、BigQuery APIを有効にするとMCPが有効になります。古いターミナル操作を一律に追加する必要はありません。BigQuery MCPの公式手順

手順2.Google Auth PlatformでOAuthの利用者を設定する

Google Cloudコンソールの「すべてのプロダクト」→「Google Auth Platform」を開きます。初回は「開始」からアプリ名・サポートメール・連絡先を登録します。設定済みなら、既存のアプリ情報を確認してください。

僕は、どの環境の設定か分かるようにアプリ名へプロジェクトIDを入れていました。複数の環境がある場合は、見ただけで区別できる名前にしておくと扱いやすいです。

「対象」とテストユーザー

「対象」を開き、組織内で使うのか、組織外のアカウントも使うのかを確認します。「内部」は対応するGoogle Workspace等の組織内向けです。個人アカウントなどで試す場合は「外部・テスト中」とし、テストユーザーの追加で、あとからGoogle認証に使うメールアドレスを登録・保存します。

ここで指定するのは、BigQueryへアクセスするGoogleアカウントです。ChatGPTのログインメールと必ず同じである必要はありません。保存後、対象のアドレスがテストユーザー一覧にあることを確認してください。

Google Auth Platformの対象画面でテストユーザーを追加する
外部・テスト中の実演画面です。「Add users」からGoogle認証に使うアカウントを追加します。

「データアクセス」でスコープを確認する

「データアクセス」→「スコープを追加または削除」を開きます。後述の設定例では、読み取り用のhttps://www.googleapis.com/auth/bigquery.readonlyを使います。該当スコープを選択し、「更新」したあと、データアクセス画面でも保存します。

Google Auth Platformで追加したOAuthスコープを確認する
動画ではcloud-platformとbigquery.readonlyを追加しています。設定例ではbigquery.readonlyを指定し、必要のない広いアクセスを増やさない形にしています。

Googleのスコープは、同意画面で許可する範囲です。IAMは、そのアカウントが実際に操作できるデータと処理を決めます。片方だけ整っていても取得できないことがあります。外部・テスト中のアプリでは認可が期限切れになる場合があり、継続利用では公開状態や組織の方針も確認してください。Google OAuthの公式説明

手順3.OAuthクライアントとGPTのアクションを設定する

Google側でクライアントを作る

Google Auth Platformの「クライアント」→「クライアントを作成」を開き、種類は「ウェブ アプリケーション」を選びます。用途が分かる名前を付けて作成し、クライアントIDとクライアントシークレットを保管します。シークレットを記事、共有メモ、GPTの指示欄へ貼らないでください。入力するのは、次に説明する認証設定の専用欄です。

ウェブアプリケーションのOAuthクライアントを作成する入力欄
名前を付けて作成します。リダイレクトURIは、あとで自分のGPTに表示される値を登録します。画像の仮URLはコピーしません。

リダイレクトURIはGoogleから認証結果を戻す先です。この段階で自分のGPTの値がなければ、作成後にクライアントを編集して追加します。動画では仮の値を入れてから置き換えていましたが、最後に自分のGPTの値と一致させることが大切です。

GPTの指示と、アクションを登録する

ChatGPTのGPT一覧で既存GPTの編集画面を開きます。作成できる組織環境なら「作成」から進めます。構成画面で名前・説明を入力し、指示には対象のプロジェクトと分析のルールを書きます。

指定したBigQueryプロジェクトの分析を手伝ってください。
プロジェクトID:自分のプロジェクトID
対象データセット:自分のデータセット名
ロケーション:自分のデータセットのロケーション
最初にテーブルと列名・型を確認し、存在しない列は推測で使わないでください。
売上の定義、期間、タイムゾーンが不明なら確認してください。
データ変更を行わず、SELECTによる集計を使ってください。
クエリの見積もり処理量を確認し、合意した上限内で実行してください。
結果とともに、参照テーブル、SQL、集計期間、取得範囲を示してください。

この指示は、実演でつまずいた列名とリージョンを踏まえた質問の補足例です。指示文だけで権限を制限できるわけではないので、Google側のIAMも合わせます。

GPTの構成画面で指示と新しいアクションの作成を設定する
指示を設定したら、下部の「アクション」から「新しいアクションを作成する」へ進みます。

「アクション」→「新しいアクションを作成する」を開き、「スキーマ」へAPIの定義を貼り付けます。以下は、この記事用にBigQuery REST APIをもとに用意した設定例です。動画の配布コードとは区別して使ってください。

アクション設定例の全文を開く(コピー用)
openapi: 3.1.0
info:
  title: BigQuery analysis example
  version: 1.0.0
servers:
  - url: https://bigquery.googleapis.com/bigquery/v2
paths:
  /projects/{projectId}/queries:
    post:
      operationId: runQuery
      description: Run a read-only GoogleSQL query. Inspect the schema first and use the dataset location. First estimate processing with dryRun. Do not issue writes or DDL.
      x-openai-isConsequential: true
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [query, location, useLegacySql, maximumBytesBilled, maxResults]
              properties:
                query:
                  type: string
                location:
                  type: string
                  description: Actual BigQuery dataset location, for example asia-northeast1 or US.
                useLegacySql:
                  type: boolean
                  enum: [false]
                dryRun:
                  type: boolean
                  description: true estimates processing without running the query.
                maximumBytesBilled:
                  type: string
                  description: Per-query billing limit in bytes, agreed with the user.
                maxResults:
                  type: integer
                  minimum: 1
                  maximum: 1000
                timeoutMs:
                  type: integer
                  minimum: 0
                  maximum: 10000
      responses:
        '200':
          description: Query metadata, schema and the first page of results. If jobComplete is false or pageToken exists, use getQueryResults.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jobComplete:
                    type: boolean
                  jobReference:
                    type: object
                    properties:
                      projectId: {type: string}
                      jobId: {type: string}
                      location: {type: string}
                  schema:
                    type: object
                    properties:
                      fields:
                        type: array
                        items:
                          type: object
                          properties:
                            name: {type: string}
                            type: {type: string}
                            mode: {type: string}
                  rows:
                    type: array
                    items:
                      type: object
                      properties:
                        f:
                          type: array
                          items:
                            type: object
                            properties:
                              v: {}
                  totalRows: {type: string}
                  pageToken: {type: string}
                  totalBytesProcessed: {type: string}
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        reason: {type: string}
                        message: {type: string}
  /projects/{projectId}/queries/{jobId}:
    get:
      operationId: getQueryResults
      description: Retrieve the completed query result or the next page. Keep the original location and follow pageToken until absent.
      parameters:
        - {name: projectId, in: path, required: true, schema: {type: string}}
        - {name: jobId, in: path, required: true, schema: {type: string}}
        - {name: location, in: query, required: true, schema: {type: string}}
        - {name: pageToken, in: query, schema: {type: string}}
        - {name: maxResults, in: query, required: true, schema: {type: integer, minimum: 1, maximum: 1000}}
      responses:
        '200':
          description: Query result page, schema, jobComplete, totalRows and optional pageToken.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jobComplete: {type: boolean}
                  totalRows: {type: string}
                  pageToken: {type: string}
                  schema:
                    type: object
                    properties:
                      fields:
                        type: array
                        items:
                          type: object
                          properties:
                            name: {type: string}
                            type: {type: string}
                            mode: {type: string}
                  rows:
                    type: array
                    items:
                      type: object
                      properties:
                        f:
                          type: array
                          items:
                            type: object
                            properties:
                              v: {}
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        reason: {type: string}
                        message: {type: string}
security:
  - googleOAuth: [https://www.googleapis.com/auth/bigquery.readonly]
components:
  schemas: {}
  securitySchemes:
    googleOAuth:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/v2/auth
          tokenUrl: https://oauth2.googleapis.com/token
          scopes:
            https://www.googleapis.com/auth/bigquery.readonly: Read BigQuery data

上の定義を先頭から末尾までコピーすると、SQLを実行するrunQueryと、結果の続きを取得するgetQueryResultsを登録できます。スキーマのエラーがないことと、アクション名が表示されることを確認します。接続後は小さな集計で試してください。

GPTのアクションにAPIスキーマを貼り付けた画面
スキーマはGPTから呼び出すAPIの定義です。画像は動画の設定で、上の掲載例とは同一のコードではありません。

設定例では1回の応答を最大1,000行とし、続きを取得するための項目も含めています。返ってきた最初の表を、そのまま全件の結果と思い込まないでください。処理が完了しているか、続きがあるかを確認します。また、課金対象の処理量上限を指定するようにしています。上限を超えるクエリは失敗するため、エラーを0件の結果と読み替えないでください。クエリ実行の公式仕様/結果取得の公式仕様

OAuthを選び、認証情報を入力する

アクションの「認証」の設定を開き、「OAuth」を選びます。次の値を入力して保存します。

項目入力する値
クライアントID自分が作成したOAuthクライアントのID
クライアントシークレット同じOAuthクライアントのシークレット
認証URLhttps://accounts.google.com/o/oauth2/v2/auth
トークンURLhttps://oauth2.googleapis.com/token
スコープhttps://www.googleapis.com/auth/bigquery.readonly
トークン交換メソッドデフォルトのPOSTリクエスト
動画で説明したOAuthの認証URL・トークンURL・読み取りスコープ
認証先とトークン交換先は別のURLです。ID・シークレットは、自分のOAuthクライアントの値を専用欄に入力します。

保存後にGPTの設定へ戻り、表示された「コールバックURL」をコピーします。Google Auth Platformで先ほどのクライアントを開き、「承認済みのリダイレクトURI」へ追加して保存してください。GPTごとに値が異なるため、例示URLや別のGPTのURLでは認証できません。GPT ActionsのOAuth設定

承認済みリダイレクトURIへGPTのコールバックURLを入力する
GPTからコピーした値を、自分のOAuthクライアントへ追加して保存します。画像のURLを転記せず、自分のGPTの値を使ってください。

最後にGPT側の設定を保存します。個人の検証であれば、共有対象を「自分だけ」にしてから確定します。組織環境では、その環境の共有ポリシーに従ってください。

GPTの共有範囲で自分だけを選んで保存する画面
接続を試す段階では、共有範囲も確認します。動画では「自分だけ」を選んで保存しました。

僕が試したときは、ここまでの準備に手間がかかりました。Claudeの接続と比べると、My GPTsを作ってアクションや認証を入れる部分は、正直「若干面倒くさいですね」と感じたところです。現在これから始める方に、最初にプラグインの利用可否を確認してほしいのも、この設定の違いがあるためです。

手順4.Google認証を済ませ、データを取得する

保存したGPTを開き、自分のプロジェクトIDと対象のリージョンを伝えます。最初の呼び出しでGoogleへのサインインが表示されたら、先ほどテストユーザーとIAMに設定したGoogleアカウントを選び、表示されたアクセス内容を確認して認証します。

ChatGPTにアカウントが接続されましたと表示された画面
認証完了の表示です。このあと、実際のデータが返ることまで確認します。

データセットのロケーションは、BigQueryで対象データセットを開いた詳細から確認できます。東京ならasia-northeast1ですが、すべてのデータが東京にあるわけではありません。表示された値を使います。

プロジェクト「自分のプロジェクトID」、ロケーション「実際のロケーション」で、
閲覧できるデータセットを確認してください。
対象のデータセットは「自分のデータセット名」です。
続いて、その中のテーブル名と列名・型を確認してください。
ChatGPTがリージョン指定の必要性を説明した実演画面
最初の実演ではリージョンの指定が必要になりました。対象データセットのロケーションを確認して伝えます。

僕もここで「リージョンを設定する必要があるのか」と気づきました。GPTの指示へ最初から対象の場所を書いておけば、会話の途中で伝え直すことを減らせます。接続先の名前だけでなく、データの場所と期間まで渡すと、最初の行き違いを減らせます。

月別売上を聞くと、列名のエラーを調べ直してくれた

次に、クラフトビールECを想定したデータで「2025年の売上を月ごとに出して」と頼みました。ここで一度、存在しないorder_dateという列を使ってエラーになりました。

order_dateが存在しないためChatGPTがsales_unifiedの列を確認し直した画面
エラーのあと、ChatGPTはテーブル構成を取得し、購入日時に使うdate_timeと売上金額のrevenueを確認しました。

すると、ChatGPTが自分でテーブルの列構成を取りに行き、購入日時を表すdate_timeを見つけて、集計を進め直したんです。ここは「おお、すごい」と思いました。単にSQLを書いて終わるだけでなく、返ってきたエラーをもとに、次に調べるものを変えていました。

デモデータの2025年月別売上がChatGPTの表に表示された画面
月別の売上表が返った実演です。2025年のデモデータであり、読者の売上や現在の数値ではありません。

ただし、回答中には「売上金額は割引後の最終金額と思われます」という推測もありました。列名を見つけられたことと、その数字が自社の売上定義に合っていることは、別に確認します。税込・税抜、返品、キャンセル、割引の扱いを伝えてから、仕事の判断に使いましょう。

自分のデータで試すなら、たとえば次のように条件を添えて聞けます。

対象は「自分のプロジェクトID.データセット名.テーブル名」です。
2026年1月1日から8月31日までの売上を、月別に集計してください。
購入日時と売上金額に使う列を、先に確認してください。
月の区切りは日本時間です。返品・キャンセル・割引の扱いが分からなければ質問してください。
実行するSQLと見積もり処理量を示し、確認後に実行してください。
結果は月・売上金額の表にし、元データと照合できる条件を添えてください。

SQLが初めから完全でなくても、調べ直して先へ進めるのは頼もしいです。その一方で、AIが補った業務上の意味まで正しいとは限らない。この両方を押さえて使うのがよいと思います。

売上の変化からGA4や検索流入まで調べたい場合は、Synapse MCPで普段のツールをAIにつなぐ方法も、この記事の末尾で紹介しています。

グラフ化で止まったこと、Claudeと比べて感じた違い

表が出たので、続いて「これをグラフで出して」と頼みました。ところが、この実演ではコードは出たものの、期待したグラフが表示されませんでした。

グラフ用コードが表示されたもののグラフが出なかった実演画面
データ取得とグラフ出力は別の段階です。この実演を、グラフ作成まで成功した例として扱わないでください。

もう一つ気になったのが、処理のたびに出る確認でした。僕が比較した環境では、Claudeは続けて複数のSQLを書き、分析を進めてくれる印象がありました。ChatGPTではその都度確認を押す場面があり、「分析を任せている間に自分は別の作業をする」という使い方には、ストレスの違いを感じました。

なので、当時の僕の正直な感想は「本格的な分析ならClaudeも検討してほしい」です。ただし、これは2026年2月公開の実演で使ったモデル・接続方式に対する感想です。現在の全モデルを同じ条件で比較した評価ではありません。確認の出方もアクションの設定や組織の方針で変わります。

AIを選ぶときは、接続できたかだけでなく、必要な分析が終わるまでの手間と、結果を確かめやすいかを見てください。同じ小さな集計を試すと、自分の仕事での違いが分かりやすくなります。Claude側の接続は、Web版ClaudeとBigQueryのMCP接続手順にまとめています。

接続・分析で止まったときの確認箇所

止まった場面確認すること
GPTの「作成」がない個人アカウントの新規作成制限、組織の権限。現在のBigQueryプラグインを確認する。
Google認証で止まる実際に使うGoogleアカウントがテストユーザーに登録されているか。内部・外部の対象が合うか。
redirect_uri_mismatchが出るそのGPTのコールバックURLが、Google側の承認済みリダイレクトURIと完全に一致するか。
認証できたのに取得できない認証したアカウントのIAM、対象プロジェクト・データセット、クエリ実行権限。
テーブルが見つからないプロジェクト・データセット・テーブル名と、データセットのロケーション。
列名のエラーテーブルの実際の列名と型を取得してから、SQLを作り直す。
表は出たがグラフがない表の取得結果と、グラフ用コードの実行エラーを分けて確認する。再取得を繰り返す前に、取得済みの表を使う。

まとめ:つないだ次に、何を判断するためのデータかを決める

ChatGPTとBigQueryをつなぐと、自然な言葉からデータを調べ、集計まで進められます。僕の実演でも、列名のエラーを調べ直して月別売上を出すところまで進みました。一方、グラフ出力と確認の手間には課題が残りました。

僕が伝えたいのは、データを連携すること自体が目的ではない、ということです。BigQueryにつないでも、分析したいデータが入っていなければ始まりません。これからは、社内のデータを集め、数字の意味をそろえて、AIが判断材料に使えるようにすることに、ますます価値が出てくると考えています。

まずは、元の数字と照合できる月別売上などを一つ選び、自分の環境で取得してください。データを蓄積する段階なら、BigQueryの接続ガイドや、BigQueryとスプレッドシートの連携・自動更新も参考になります。普段のGA4や売上表を入口に始めたい方は、次の方法も使えます。

Synapse MCPで、普段使っているツールのデータをAIに聞く

売上の変化を見たあと、「サイトへの流入は変わった?」「検索から来る人は減っていない?」と調べたくなることがあります。こうした分析を始める入口が、普段使っているGA4やSearch Console、Googleスプレッドシートのデータです。

Synapse MCPは、これらのツールのデータをAIから参照できるようにするサービスです。CSVを出力して貼り付ける作業を減らし、取得した数字をもとに次の質問へ進めます。BigQueryへの直接接続は本編の方法を使い、ここではGA4・Search Consoleの別の実演で、その使い方を紹介します。

1.使うデータを接続して、対象を確かめる

Synapse MCPで分析する店舗・案件を開き、GA4を追加します。Google認証を済ませ、対象のプロパティを選びます。検索流入も調べる場合は、同じサイトのSearch Consoleを追加します。

Synapse MCPでGA4とSearch Consoleの接続先を確認した画面
関連記事「GA4の週次レポートをAIで作る方法」の実演。接続する媒体と対象サイトを確認する場面です。

AIへの接続設定でMCPリンクを発行し、ChatGPTまたはClaudeへ登録・認証します。画面ごとの操作はGA4のMCP接続ガイド、検索データの準備はSearch Consoleの接続ガイドで説明しています。

2.表で数字を確かめ、グラフで変化を見る

接続後は、いつもAIに質問するように、対象サイトと期間を伝えます。関連記事の実演では、Search Consoleのクリック数・表示回数などを、Claudeが会話の中へ表として返しています。

ClaudeがSearch Consoleの検索データを日別の表で回答した画面
7月22日〜29日のSearch Consoleの表。以下の質問例の実行結果ではなく、関連記事で取得した出力例です。

続いてGA4の数字をグラフにすると、アクセスが増えた日・減った日を見つけやすくなります。

ClaudeがGA4のセッション数・ユーザー数・PVを日別グラフにした画面
7月24日〜31日のGA4の日別推移。前のSearch Consoleの表とは期間が異なるため、同期間の比較結果としては扱いません。

表が返り、その数字を会話でグラフへ進められる。この別の実演を紹介した記事で、僕は「控えめに言って便利でしかないです」と書きました。集計表を受け取って終わらず、気になった変化の次に何を調べるかまで、その場でAIと相談できます。

自分のデータで試すなら、まずは次のように期間をそろえて聞いてください。「自分のサイト名」は接続したサイトへ置き換えます。

接続したGA4の「自分のサイト名」について、プロパティ名とIDを確認してください。
2026年9月14日〜20日と、9月7日〜13日のセッション数を日別に取得してください。
各7日間の合計と増減数を表にし、変化の大きい日を示してください。
続けてグラフにしてください。原因は断定せず、次に調べる流入元やページを提案してください。

同じサイトのSearch Consoleも接続したら、「同じ日付で、クリック数と表示回数も日別に出して」と続けられます。GA4のセッション数とSearch Consoleのクリック数は別の指標なので、数値を足し合わせず、それぞれの変化を見ます。質問例は、そのまま試せるように追加したものです。

売上がGoogleスプレッドシートにまとまっている場合は、その表を接続する方法もあります。「接続した売上表の『月次売上』タブA1:C13を読み、列名・通貨・対象期間を確認してから、月別売上と前月との差を出して」と頼めます。シート名・範囲は自分の表に合わせ、表が更新された日時も確認してください。掲載したGA4の画像は、この売上表の実行例ではありません。

自分のGA4をつないで、最初の数字を取得する

  1. Synapse MCPに登録・ログインし、分析する店舗・案件でGA4を追加する。
  2. Google認証後に自分のプロパティを選び、AIへの接続設定からMCPリンクを発行する。
  3. ChatGPTまたはClaudeへ登録・認証し、新しい会話で接続先を使える状態にする。
  4. 「自分のサイトの、7日前から昨日までのセッション数を日別に教えて。プロパティ名と実際の開始日・終了日も示して」と聞く。

自分のプロパティ名・期間と日別の数字が返ったら、GA4でも同じ条件にして照合します。登録だけで終わらず、自分のデータが返るところまで進めてみてください。

自分のGA4をつないで、AIにアクセス状況を聞く →

新規フリー契約は14日間、3サービス・各媒体1アカウントまでで、自動課金はありません。利用できる媒体やその後の料金は料金ページで確認できます。AI側の接続機能や利用量の条件は別途適用されます。出力から報告文までの流れは、GA4の週次レポートをAIで作る方法もご覧ください。