【第3回】Claude Code × GA4でレポート自動化 – 対話によるテンプレート作成
第1回に続いて、Claude CodeでGA4レポートの自動化を進めていきます。前回までは、Claude CodeとGA4を連携してHTMLファイルでGA4の月次レポートを出力するところまで解説しました。
今回は、Claude Codeと対話して、GA4レポートのテンプレート作成まで行います。
Claude Codeにプロジェクトディレクトリ内のファイルを作成・編集してもらいます。これまでのチャット型AIとは一線を画すもので、Claude Code自身がパソコンの中のファイルを編集するわけです。
GA4レポートテンプレートの作成
実際のClaude Codeとの会話をご紹介します。
CLAUDE.mdの作成
(GA4レポートをHTML出力した直後)

今度から、このプロジェクトでレポート作成を指示したら、同じフォーマットで出力してほしい。



了解しました。次回からこのプロジェクトでレポート作成を指示されたら、同じHTMLフォーマット(前月比較・エンゲージメント率・トップ10・総評の構成)で自動的に出力します。



何か指示を保存しないとClaudeを再起動したら仕様引き継げないよね?



確実にGA4レポートの仕様を引き継ぐには、プロジェクトディレクトリに CLAUDE.mdを置く方法があります。こちらはClaudeが必ず読む設定ファイルです。作っておきますか?



はい。



作成しました。
ga4-aruru/ ← プロジェクトディレクトリ
├── CLAUDE.md ← 全体ルールのファイルが生成された!
生成されたCLAUDE.mdを見る
# ga4-aruru プロジェクト設定
## レポート作成ルール
レポート作成を指示されたら、`templates/` フォルダのテンプレートをベースに HTMLファイルを生成する。
ブラウザで開いて `Ctrl+P` → PDFに保存 で運用。
### ファイル名
`report_[サイト略称]_YYYYMM.html`
例: `report_aruru_202603.html`
### テンプレート一覧
| テンプレートファイル | 用途 |
|---|---|
| `templates/report_monthly.html` | 月次レポート(前月比・トップ10・総評) |
### テンプレートの使い方
`templates/report_monthly.html` 内の `{{プレースホルダー}}` を実データに置き換えて出力する。
#### プレースホルダー一覧(月次レポート)
| プレースホルダー | 内容 |
|---|---|
| `{{SITE_NAME}}` | サイト名(例: アルル制作所) |
| `{{YEAR}}` | 集計年(例: 2026) |
| `{{MONTH}}` | 集計月(例: 3) |
| `{{END_DAY}}` | 集計最終日(例: 27) |
| `{{PREV_YEAR}}` | 前月の年 |
| `{{PREV_MONTH}}` | 前月(例: 2) |
| `{{PREV_END_DAY}}` | 前月の最終日(例: 28) |
| `{{REMAINING_DAYS}}` | 月末まで残り日数(月途中の場合) |
| `{{PREV_TOTAL_DAYS}}` | 前月の総日数 |
| `{{PREV_SESSIONS}}` | 前月セッション数(カンマ区切り) |
| `{{CURR_SESSIONS}}` | 今月セッション数(カンマ区切り) |
| `{{SESSION_DIFF}}` | セッション増減(例: -2,441 / +54) |
| `{{SESSION_DIFF_CLASS}}` | up / down |
| `{{SESSION_BADGE}}` | badge-green / badge-red |
| `{{SESSION_RATE}}` | 変化率(例: -11.2% / ▲+28.4%) |
| `{{PREV_USERS}}` | 前月アクティブユーザー数 |
| `{{CURR_USERS}}` | 今月アクティブユーザー数 |
| `{{USER_DIFF}}` | ユーザー増減 |
| `{{USER_DIFF_CLASS}}` | up / down |
| `{{USER_BADGE}}` | badge-green / badge-red |
| `{{USER_RATE}}` | ユーザー変化率 |
| `{{PREV_ENG_RATE}}` | 前月エンゲージメント率(例: 49.8%) |
| `{{CURR_ENG_RATE}}` | 今月エンゲージメント率 |
| `{{ENG_DIFF}}` | エンゲージメント差分(例: -1.9pt / +3.7pt) |
| `{{ENG_BADGE}}` | badge-green / badge-red / badge-orange |
| `{{TOP10_ROWS}}` | トップ10ページの `<tr>` タグ群 |
| `{{POSITIVE_ITEMS}}` | 総評ポジティブの `<li>` タグ群 |
| `{{NEGATIVE_ITEMS}}` | 総評要注意の `<li>` タグ群 |
| `{{CREATED_DATE}}` | レポート作成日(例: 2026年3月28日) |
### デザイン仕様(変更禁止)
- フォント: Hiragino Sans / Yu Gothic / Meiryo
- メインカラー: `#1a1a2e`(紺)、アクセント: `#e84393`(ピンク)、`#3a6fd8`(青)
- 増加: badge-green、減少: badge-red、微変動: badge-orange
- `@media print` で印刷最適化済み
### 過去レポート
| ファイル | 内容 |
|---|---|
| `report_aruru_202603.html` | アルル制作所 2026年3月(初回・基準フォーマット) |
GA4レポートテンプレートを複数作成する



プロジェクトディレクトリに設定ファイルを作って何パターンも記憶できる?



レポートの種類(月次・週次・サイト別など)ごとにテンプレートファイルを作れます。
例えばこんな構成:
ga4-aruru/
├── CLAUDE.md ← 全体ルール・参照先を記載
├── templates/
│ ├── report_monthly.html ← 月次レポート
│ ├── report_weekly.html ← 週次レポート(将来用)
│ └── report_site.html ← サイト別レポート(将来用)
└── report_aruru_202603.html
CLAUDE.md には「月次レポートは templates/report_monthly.html を使うこと」と書いておけば、何パターンでも管理できます。



今の report_aruru_202603.html をテンプレートとして templates/ フォルダに整理しましょうか?



はい!



完成しました。構成はこうなっています:
ga4-aruru/
├── CLAUDE.md ← テンプレート一覧・プレースホルダー仕様
├── templates/
│ └── report_monthly.html ← 月次レポートテンプレート({{変数}}形式)
└── report_aruru_202603.html ← 2026年3月の実績レポート



週次レポートのテンプレートを作って。



完成しました。
templates/report_weekly.html を新規作成
月次との違いは「前週比較」「週番号・日付範囲表示」で、デザインは統一
ファイル名は report_2026W13.html(W+週番号2桁)形式
CLAUDE.mdにもプレースホルダー仕様を追記済み
「アルル制作所の今週の週次レポートを作って」などと指示すればすぐ出力できます。
サイトごとにフォルダ分けをする



GA4プロパティごとにサイト名をつけて、サイト名のフォルダを作ってそこに実績レポートを入れていくようにしたいです。



完成しました。
ga4-aruru/
├── CLAUDE.md
├── templates/
│ └── report_monthly.html
│ └── report_weekly.html
└── reports/
├── サイト名xxx/
│ └── report_202603.html ← 移動済み
├── サイト名xxx/
├── サイト名xxx/
└── サイト名xxx/
CLAUDE.mdにはプロパティID → サイト名 →
フォルダ名の対応表も追記したので、次回から「どのサイトのレポート」と指示すれば正しいフォルダに自動保存します。
あとは、グラフを入れたり、LookerStudioのカードタイプを入れたり、昨年比にしたり、キーイベント計測を入れたり、好きに指示すればいいでしょう。
お客さんごとにイベント申し込み・問い合わせ・採用といったチェックポイントがあるので、サイト名ディレクトリ内にカスタムテンプレートをお客さんごとに作ってもよさそうですね。


