GA4 + Pythonで定点観測ダッシュボードを自作してみた

2025.08.12 09:26
2025.08.12 09:26
GA4 + Pythonで定点観測ダッシュボードを自作してみた

Googleアナリティクス(GA4)の画面、いろんなことができるけど、
正直「毎月アクセス見たいだけなんだよな…」ってときに、ちょっと多機能すぎてしんどいと感じることがあります。

そこで今回は、GA4のData APIをPythonで叩いて、簡単なダッシュボードを自作してみました

やりたかったこと

  • 月ごとのユーザー数をざっくり見たい
  • デバイス(PC/スマホ)の割合を見たい
  • 前月比で増えたかどうかだけ知りたい
  • グラフはあった方がいいけど、凝ったUIは不要
  • とにかく“見るだけ”にしたい!

使ったもの

  • GA4 Data API v1(Python用の公式SDKを使用)
  • Streamlit(神ライブラリ。st.metric()でグラフも数字も出せる)
  • pandas / plotly(データ整形と可視化)

最小構成のコード例(抜粋)

# main.py
import streamlit as st
import pandas as pd
from mylib import get_monthly_data, get_device_data

st.title("GA4 月次ダッシュボード")

month = st.selectbox("対象月", ["2024-08", "2024-07"])

total = get_monthly_data(month)
by_device = get_device_data(month)

st.metric(label="アクティブユーザー数", value=total["users"], delta=total["delta_str"])
st.bar_chart(by_device.set_index("device")["users"])

これで以下を表示できます。

  • 指定月のアクティブユーザー数(前月比つき)
  • デバイス別(PC/スマホ/タブレット)のユーザー数グラフ

やってみた感想

GAの画面って多機能なんだけど、自分にとって必要な情報を“毎回整えて見る”のが意外と手間で、
ダッシュボードを自作してみたら「毎月これでいいじゃん」と思えるレベルになりましたStreamlitはとにかく爆速でUIが作れて、Pythonさえ書ければ一瞬で“自分用Notion”ができる感じ。

今後やってみたいこと

  • GA4の他の指標(流入元、イベント数)も追加
  • Streamlit Cloud で社内共有用に公開
  • Slack通知 or PDF化と組み合わせて、自動配信も検討中

「とりあえず改善の“目安”だけ見れればいい」っていうニーズには、
GA4+Streamlitの組み合わせは本当にちょうどよかったです。

今回は以上です!