GA4月次レポートをPythonで自動化してみた話(後編)

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

前回、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_rangesstart_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の画面は便利だけど、数字を毎月拾って整える作業って地味にめんどう。
なのでこういう仕組みがあるだけで、ちょっとした施策の結果を振り返るハードルが下がるなと実感しました。

今回は以上です!