【第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に公開
claude-ga4は、プロジェクトディレクトリと同じ名前にしてね

【準備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広告のレポート作成に移ります。

ポストしてくれるとうれしいです

この記事を書いた人

岩永 圭一のアバター 岩永 圭一 アルル制作所 代表取締役

2003年にECサイト「ウェディングアイテム」を立ち上げ、手作り結婚式を応援。年商3億円達成。2005年デザイン会社を設立。2社を譲渡後、2021年にアルル制作所を立ち上げ、オウンドメディア運営代行『記事スナイパー』を開始。これまで立ち上げた事業は、他にも中古ドメイン販売・キーワードツール・バー専門ホームページ制作・記事LP制作・レンタルスペース・撮影スタジオと多岐にわたる。

目次