GA4月次レポートをPythonで自動化してみた話(後編)
2025.08.08 09:00
2025.08.03 20:59

前回、PythonからGA4 Data APIを使って「デバイスカテゴリごとのユーザー数」を取得するところまでやってみました。
今回はそれを元に、前月比の算出・CSV出力・定期実行の仕組みまで整えてみます。
まずは「前月比」ってどう出すの?
7月と6月の同じ指標(例:activeUsers)を比較して、差分と変化率を出します。
def calc_diff(current, previous):
diff = current - previous
rate = (diff / previous) * 100 if previous != 0 else 0
return diff, round(rate, 2)
こういう関数を用意して、月ごとに同じAPI呼び出しをして数字を比較する感じです。
APIからの取得は前回と同じ構成で date_ranges
を start_date="2024-06-01"
にすればOK。
データを整えて表にしてみる
import pandas as pd
data = {
"device": ["desktop", "mobile", "tablet"],
"2024-06": [1230, 5100, 300],
"2024-07": [1245, 5432, 345],
}
df = pd.DataFrame(data)
df["差分"] = df["2024-07"] - df["2024-06"]
df["変化率(%)"] = ((df["差分"] / df["2024-06"]) * 100).round(2)
print(df)
CSVとして出力
Excelで開きたいなら "utf-8-sig"
をつけておくと文字化けせずに済みます。/
df.to_csv("monthly_report.csv", index=False, encoding="utf-8-sig")
たとえばこれをcronで設定すれば勝手にレポートが取れる、ということになりますね。
作業としては全然むずかしくはないですけど、
それでも少しは頭を使うのは確かで、それが積み重なると意外と億劫なんですよね。
それがかなり軽減されるのはすごく助かります!
UIと数字がズレる問題について
実際に使ってみると、「あれ、GAの画面と数がちょっと違う?」ってなることがあります。
でもこれは集計タイミングやスコープの違いで起こることで、指標の取得方法を毎回同じにしていれば、改善に使うには問題ないです。
まとめ
GAの画面は便利だけど、数字を毎月拾って整える作業って地味にめんどう。
なのでこういう仕組みがあるだけで、ちょっとした施策の結果を振り返るハードルが下がるなと実感しました。
今回は以上です!