【第4回】Claude Code×GitHub Actionsで自動実行|GA4レポート作成
今回は、Claude CodeとGitHub Actionsを組み合わせた自動実行を解説します。ネットで情報を探しましたが、GitHub ActionsでGA4MCPサーバーつなげてる人がいなくて今回は苦労しました。
そして分かったことは、「仕組みがややこしくて、寝たら忘れそう!」ということ。週1回のレポート作成なら、手動でClaude Codeにお願いしたほうが早いです。

だから言っただろ
AIでサボろうとしたら時間溶けるって。
この方法は、毎週・毎月のGA4レポートを、なるべく同じ形で定期的に作りたい人に向いています。複数サイトを見ていたり、毎回同じ集計を手でやるのが大変になってきた人なら、仕組みを作る価値があります。
逆に、レポートの形や見る数字がまだ固まっていない段階なら、手動のほうが早いです。自動化は便利ですが、維持する手間もあるので、運用が固まってきた人向けです。
Claude Code×GitHub Actionsで自動実行する流れ
GitHub Actionsとは
GitHub Actionsは、GitHubが提供する自動化サービスです。「毎月1日の午前9時になったら処理を実行する」のような定期タスクを、GitHubのサーバー上で自動で動かせます。
自分のパソコンが電源オフでも、GitHubのサーバーが代わりに動いてくれるのが最大のメリットです。
Claude Codeは、ローカル(自分のパソコン)で動かしているから、パソコンの電源を落としたら自動実行できなくなるわけです。あ、VPSにインストールすればいつでも動かせますね。(今気付いた)
エックスサーバーVPSに、Claude Codeアプリイメージが準備されてますが、沼りそうなのでやめときましょう。
https://vps.xserver.ne.jp/support/manual/man_server_app_use_claude_code.php
GitHub Actionsで自動実行する準備
流れはシンプルで、やることは大きく3つです。
① GitHubリポジトリを作成する
② GitHubにシークレットを登録
③ Claude Codeにワークフローファイルを作成させる
毎月1日・毎週月曜 午前9時(JST)
↓
GitHubのサーバーが自動起動
↓
Claude CodeがGA4データを取得
↓
HTMLレポートを生成
↓
reports/フォルダに保存してGitHubにコミット
【準備1】GitHubリポジトリを作成する(GitHub Desktop)
Claude Codeで定期実行をするためには、ローカル環境(要するに自分のパソコンの中)ではできません。リモート環境で実行させる必要があるので、GitHubを使います。
- GitHub Desktop を開く
- File → New Repository をクリック
- プロジェクトディレクトリを選択
- Create Repository をクリック
注意:Local Pathは、C:\claude-code\ga4-aruruがプロジェクトディレクトリの場合、上の階層のC:\claude-code\にしてください。 - Publish repository をクリックする


- Nameをプロジェクトディレクトリ名にしてGitHubに公開


【準備2】GitHubにシークレットを登録
セキュリティのために、GitHubのシークレットという場所に認証キー2つを保管します。
・CLAUDE_CODE_OAUTH_TOKEN(Claudeの認証トークン)
・GOOGLE_CREDENTIALS(GA4アクセス用のJSONキー)
Claudeのトークンを生成する
GitHub上でClaude Codeを動かすためには、Claude Code有料契約の証明 or APIキーが必要です。ここでは、有料契約のトークンを使用します。
コマンドプロンプトで、以下を実行してください。これで認証用トークンが発行されます。
claude setup-token
ブラウザが開くので、承認するボタンを押したらブラウザタブを閉じて、コマンドプロンプトに戻ってください。


Claude Code上に、トークンが表示されるので、コピーして大切に保存してください。
GitHubにトークンを保存する
GitHubリポジトリを開きます。(GitHub Desktopの下画面で開けます)


GitHubのリポジトリ →「Settings」→「Secrets and variables」→「Actions」→「New repository secret」
CLAUDE_CODE_OAUTH_TOKEN という名前でリポジトリのシークレットに登録します。(名前にスペースが入っていると登録できないので気をつけてください)


GitHubにサービスアカウントの秘密キーを保存する
次に、Google CloudのGA4 APIにアクセスする必要があるので、GitHub側にGoogle Cloudで作ったサービスアカウントの秘密キー(JSONファイル)のテキスト全てをコピーして、GOOGLE_CREDENTIALSという名前でリポジトリのシークレットに登録してください。
Claude CodeからGitHubに接続してみる
コマンドプロンプトで、Claude Codeプロジェクトを開きます。
cd プロジェクトのPATH
claude



githubにアクセスするためのトークンを入れたから、アクセスできるか試してみて~
ポップアップでGitHubサインイン画面が出るので、Sing in with your browserを押してサインインします。(2段階認証が入ります)





GitHubへのアクセス成功です。
トークンは正常に機能しています。



ふっふっふ
GitHub Actionsのワークフローを作成する
GitHub Actionsは、ワークフローファイルに記述された内容に基づいて動きます。リポジトリに以下のファイルが必要です。
.github/
└── workflows/
└── monthly_report.yml ← これが必要!
Claude Codeにワークフローファイルの作成をお願いしましょう。



GitHub Actionのワークフローを作って。
サイト名:◯◯
月次レポート:毎月1日午前9時
週次レポート:毎週月曜日の午前9時
で定期作成したい。
GitHubのシークレットキーには
Claude Codeのトークン:CLAUDE_CODE_OAUTH_TOKEN
Google Cloudのサービスアカウント秘密キー:GOOGLE_CREDENTIALS
を入れてるよ。
実際に作られたワークフローファイルがこちら。
ワークフローファイル
name: GA4 Report Generator
on:
schedule:
– cron: ‘0 0 * * 1’ # 週次: 毎週月曜 9:00 JST
– cron: ‘0 0 1 * *’ # 月次: 毎月1日 9:00 JST
workflow_dispatch:
inputs:
report_type:
description: ‘生成するレポートの種類’
required: true
type: choice
options:
– weekly
– monthly
jobs:
weekly-report:
name: 週次レポート生成
if: github.event.schedule == ‘0 0 * * 1’ || inputs.report_type == ‘weekly’
runs-on: ubuntu-latest
permissions:
contents: write
steps:
– uses: actions/checkout@v4
– name: 認証情報を設定
run: echo ‘${{ secrets.GOOGLE_CREDENTIALS }}’ > /tmp/ga4-credentials.json
– name: pipx / analytics-mcp をインストール
run: |
python -m pip install –user pipx
python -m pipx ensurepath
pipx install analytics-mcp
– name: Claude Code をインストール
run: npm install -g @anthropic-ai/claude-code
– name: 週次レポートを生成
env:
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
GOOGLE_APPLICATION_CREDENTIALS: /tmp/ga4-credentials.json
run: |
claude -p “
あなたはGA4レポート自動生成エージェントです。CLAUDE.mdの指示に従い、アルル制作所(GA4プロパティID: xxxxxxxxx)の週次レポートを作成してください。
## 作業手順
1. 今日の日付を確認し(月曜実行)、前週の集計期間(月曜〜日曜)と前々週の集計期間を計算する
2. GA4 MCPツールを使って以下のデータを取得:
– 指標: sessions, activeUsers, engagementRate
– ディメンション: pagePath(上位10件)
– 前週・前々週の両期間分
3. templates/report_weekly.html を読み込み、全プレースホルダーを実データに置き換える
4. ISO週番号を計算し、reports/アルル制作所/report_YYYYWNN.html として保存(NNは2桁週番号)
## 判定ルール
– セッション・ユーザー増加 → badge-green / up、減少 → badge-red / down
– エンゲージメント率 ±3pt以内 → badge-orange、+3pt超 → badge-green、-3pt超 → badge-red
## 注意
– CLAUDE.mdのプレースホルダー仕様・デザイン仕様に厳密に従うこと
– 数値はカンマ区切り(例: 1,234)、エンゲージメント率はパーセント表示(例: 52.3%)
– git操作は不要。ファイルの保存のみ行うこと
” –allowedTools “Bash,Read,Write,Edit,Glob,Grep,mcp__ga4__run_report,mcp__ga4__get_account_summaries,mcp__ga4__get_property_details”
– name: コミット & プッシュ
run: |
git config user.name “github-actions[bot]”
git config user.email “github-actions[bot]@users.noreply.github.com”
git add reports/
git diff –cached –quiet || git commit -m “Add 週次レポート $(date -d ‘last monday’ ‘+%GW%V’) アルル制作所”
git push
monthly-report:
name: 月次レポート生成
if: github.event.schedule == ‘0 0 1 * *’ || inputs.report_type == ‘monthly’
runs-on: ubuntu-latest
permissions:
contents: write
steps:
– uses: actions/checkout@v4
– name: 認証情報を設定
run: echo ‘${{ secrets.GOOGLE_CREDENTIALS }}’ > /tmp/ga4-credentials.json
– name: pipx / analytics-mcp をインストール
run: |
python -m pip install –user pipx
python -m pipx ensurepath
pipx install analytics-mcp
– name: Claude Code をインストール
run: npm install -g @anthropic-ai/claude-code
– name: 月次レポートを生成
env:
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
GOOGLE_APPLICATION_CREDENTIALS: /tmp/ga4-credentials.json
run: |
claude -p “
あなたはGA4レポート自動生成エージェントです。CLAUDE.mdの指示に従い、アルル制作所(GA4プロパティID: 304900846)の月次レポートを作成してください。
## 作業手順
1. 今日の日付を確認し、前月の集計期間(1日〜末日)と前々月の集計期間を計算する
2. GA4 MCPツールを使って以下のデータを取得:
– 指標: sessions, activeUsers, engagementRate
– ディメンション: pagePath(上位10件)
– 前月・前々月の両期間分
3. templates/report_monthly.html を読み込み、全プレースホルダーを実データに置き換える
4. reports/アルル制作所/report_YYYYMM.html として保存(YYYYMMは前月の年月)
## 判定ルール
– セッション・ユーザー増加 → badge-green / up、減少 → badge-red / down
– エンゲージメント率 ±3pt以内 → badge-orange、+3pt超 → badge-green、-3pt超 → badge-red
## 注意
– CLAUDE.mdのプレースホルダー仕様・デザイン仕様に厳密に従うこと
– 数値はカンマ区切り(例: 1,234)、エンゲージメント率はパーセント表示(例: 52.3%)
– git操作は不要。ファイルの保存のみ行うこと
” –allowedTools “Bash,Read,Write,Edit,Glob,Grep,mcp__ga4__run_report,mcp__ga4__get_account_summaries,mcp__ga4__get_property_details”
– name: コミット & プッシュ
run: |
git config user.name “github-actions[bot]”
git config user.email “github-actions[bot]@users.noreply.github.com”
git add reports/
git diff –cached –quiet || git commit -m “Add 月次レポート $(date -d ‘last month’ ‘+%Y%m’) アルル制作所”
git push
ワークフローが完成したら、「週次テストで動作テストして」でOK。もし、作成に失敗したら、Claude Codeに「失敗しているから、ログ確認して直して」と言えば、完成するまでやってくれます。
ワークフロー処理には、MCPサーバーのインストール(処理時間1分)も含まれていて、処理時間は5分くらい。
考察
全4回にわたり、Claude CodeでのGA4レポート自動作成に取り組んできましたが、今回のGitHubを使っての自動実行はさすがに、「う~ん、ここまでする必要ある?」って感じでした。
AI自動化が目的になってしまうような気がして、いまいちでした。GitHub Actionsは消して、手動に戻しました。それよりも、レポートの質を上げていくほうがお客さんのためになりますね。



Github Actionsでやるよりも、ローカル環境でレポート作成したほうがいいですね。
ローカル環境稼働に戻して。



完了です。
どうしても自動化をしたいんだ!という方は、リモート環境VPSにClaude Codeをインストールして、Claude機能内の自動実行(スケジュール機能)を使ったほうがメンテナンス性もよいし、難易度低いと思います。



今回は難しかったね。
SlackやChatworkに送るのもWebhook URLというのを送るだけで実現できるけど、GA4レポートの自動作成はここで終了します。
しばらく、GA4レポートをカスタマイズして落ち着いた頃に、Google広告とMETA広告のレポート作成に移ります。


