「過去7日のセッション数は?」GA4に話しかけられるダッシュボードを作った話

こんにちは、豊藏です。
「先週と今週のセッション数、比較したいな……」
そう思ってGA4を開くと、まず「探索」を選んで、ディメンションを選んで、指標を選んで、期間を設定して……
気づいたら10分経ってる。
しかも、出したいデータが出せなくて、「あれ、これどうやるんだっけ…?」って調べ始める。
「もっと気軽に、普通の言葉で質問できたらいいのに」
そう思ったことはありませんか?
Google Analytics のMCPサーバが公開されたので、欲しいデータを取得しやすいGA4ダッシュボードを作ってみました。

https://developers.google.com/analytics/devguides/MCP?hl=ja
できたもの
要は、「GA4データを日本語で質問できるダッシュボード」です。
こんな感じで使えます:
- 「過去7日間のセッション数は?」 → 2秒でサマリーとグラフ表示
- 「流入元トップ5は?」 → 横棒グラフでランキング表示
- 「今週と先週のセッション数を比較して」 → 比較グラフを自動生成
- 「直帰率が高いページは?」 → ワーストランキングを表示
GA4の管理画面を開かなくても、LINEに話しかけるみたいに分析できます。
チャット形式なので、質問を重ねていくこともできるし、グラフはそのままダウンロードしてレポートに貼り付けることもできる。
正直、自分でもめちゃくちゃ便利だなと思ってます。
なぜ作ったのか
GA4の標準のビュー。色々あってみにくいですよね。自分もLooker Studioで作ることが多いのですが、MCPあるならもうちょい楽に出来ないかなー?と思って試してみました。
クライアントと話してても、こんな声をよく聞きます
- 「GA4、見方がよく分からない」
- 「データは取れてるけど、活用できてない」
- 「毎回同じデータ見るのに、手順を調べ直してる」
データはあるのに、使われない。もったいないなと。
GA4のUIって、正直分かりにくい
GA4の良い部分であり、難所でもあるイベント型。慣れれば便利ですが、自由度が高すぎて逆に「どうやるんだっけ?」ってなる。
しかも、ちょっと複雑な分析しようとすると、Looker Studioに飛んで、レポート組んで……みたいな手間がかかる。
MCPが出来たなら、テキストでやり取りするよりむしろView作った方が早くね?と思い作ってみました。
どんな時に使える?
具体的に、こんなシーンで便利です
週次レポート作成の時
毎週、同じデータを見てレポート作ってる人、多いと思うんです。
そういう時、「過去7日のセッション数は?」って聞くだけで、数値とグラフが出る。CSVでダウンロードもできる。

これだけでも、結構な時短になります。
クライアント報告前のチェック
「今月の流入元トップ10は?」って聞けば、すぐに傾向が見える。

「あれ、今月は広告経由が多いな」とか、「自然検索が減ってるな」とか、パッと把握できるのが便利。
報告資料作る前に、ざっくり全体像を掴みたい時とかに重宝します。
施策の効果確認
「今週と先週のCV数を比較して」って聞けば、即座に変化が見えました。
施策を打った後、効果が出てるかどうか確認したい時とか、会議の直前にサッと数値見たい時とか。
GA4の管理画面開いて、あれこれ設定してる余裕がない時に便利です。
会議の資料作成
グラフがそのまま画像でダウンロードできるので、資料に貼り付けやすい。
「ちょっと待って、今データ見てくる……」じゃなくて、その場で「ちょっと聞いてみるね」って質問投げて、出てきたグラフをスライドに貼る。
これ、意外と便利です。

今後の展開
この仕組み、もっと発展させられそうだなと思ってます。
例えば
クライアントごとにカスタマイズしたダッシュボード
「御社のGA4データを、こういう風に見られますよ」っていうデモとして使えそう。
業界やビジネスモデルによって、見たい指標って違うじゃないですか。EC事業者なら商品ページのランキングとか、メディアなら記事別のPVとか。
そういうのを、クライアントごとにカスタマイズして提供できたら便利かもしれない。
異常値を検知したら自動でアラート
「先週比でセッション数が30%減ってます」みたいな通知を、Slackとかに飛ばす。
毎日GA4見る習慣がない人でも、異常があったら気づける仕組み。
レポート形式で自動出力
毎週決まった曜日に、「今週のサマリーレポート」をPDFとかExcelで自動生成して、メールで送る。
週次レポート作成の手間が、ほぼゼロになる。
「データ分析のハードルを下げる」って、結構大きなテーマな気がしていて。
データはあるのに、使われない。使い方が分からない。そういうのって、もったいないじゃないですか。
もしご興味あれば、お気軽にご相談ください!実験ベースですが、ずっと向き合ってます。
(余談)技術的な話
ここから先は、技術的な話に興味ある人向けです。
興味ない人は飛ばしてOKです。
技術スタック
使った技術は以下です。ClaudeCode✖️Cursorでやってます。
フロントエンド
- Streamlit(チャットUI)
- Plotly(グラフ描画)
バックエンド
- Google Analytics Data API(GA4データ取得)
- Python(全体の処理)
主要なコンポーネント
query_parser.py:日本語の質問をパースga4_client.py:GA4 APIとの通信response_generator.py:レスポンス生成&グラフ作成chat_dashboard.py:Streamlitのメイン処理
実装の流れ
全体の流れはこんな感じです:
- ユーザーが質問を入力
query_parser.pyで質問を解析- 日数抽出(「過去7日」→
days=7) - 分析タイプ判定(比較 / ランキング / サマリー)
- レポートタイプ判定(トラフィック / 流入元 / デバイス)
- 日数抽出(「過去7日」→
ga4_client.pyでGA4 APIを叩いてデータ取得response_generator.pyでグラフとテキスト生成- Streamlitのチャット画面に表示
クエリ解析はルールベース
「過去7日のセッション数は?」みたいな質問を解析する部分、LLMは使ってません。
正規表現とキーワードマッチだけで実装してます。
例えば:
- 「過去7日」「7日間」→
days=7 - 「今月」→ 月初から今日まで
- 「トップ5」「上位10」→
limit=5orlimit=10 - 「ワースト」→
order='asc'(昇順)
シンプルなルールベースでも、意外と精度出ます。
まとめ
対話型GA4ダッシュボード、環境構築こそ大変ですが、結構色々な可能性を感じました。
エンジニアではないので、細かいところ聞かれてもわからなくてすいません。
人に使っていただくには環境構築含めてどう教えたらいいのか難しい部分もありますが、自分で使う分には支障はあまりなかったです。
自分のGA4のプロパティでこんな感じで一度動き始めたら便利です。
「過去7日のセッション数は?」って入力するだけで、データ取得からグラフ作成まで全部やってくれる。
GA4のUIに慣れてない人でも、普通の言葉で質問できる。
データ分析のハードルが、確実に下がるんじゃないかなと思ってます。
面白いネタだったので、共有でした。
もし新しい発見があったら教えてくれたら嬉しいです!


コメント