Google Analytics 4 と microCMS のデータを統合し、月次 PV 数を Google Sheets に自動集計するシステムです。
このプロジェクトは以下の機能を提供します:
- microCMS ブログの記事別・著者別の月次 PV 数を自動集計
- Google Sheets への定期的なデータ更新(毎日午前 3 時 JST)
- GitHub Actions による完全自動化
- Google Cloud Project が作成済み
- microCMS の API キーが発行済み
- Google Sheets が作成済み
- Google Cloud Consoleにアクセス
- 以下の API を有効化:
- Google Analytics Data API
- Google Sheets API
- 「IAM と管理」→「サービスアカウント」から新規作成
- 適切な名前を付けて作成(例:
microcms-analytics-bot) - JSON キーを作成してダウンロード
- Google Analytics: GA4 プロパティの「管理」→「アカウントのアクセス管理」でサービスアカウントのメールを追加(閲覧者権限)
- Google Sheets: 対象のスプレッドシートでサービスアカウントのメールに編集権限を付与
- microCMS の管理画面から「設定」→「API キー」へ
- 読み取り専用の API キーを作成(または既存のものを使用)
リポジトリの「Settings」→「Secrets and variables」→「Actions」で以下を追加:
Secrets(機密情報):
| Secret 名 | 値 | 説明 |
|---|---|---|
GOOGLE_CREDENTIALS_JSON |
{...} |
サービスアカウントの JSON 全文 |
MICROCMS_API_KEY |
xxxxx |
microCMS の API キー |
Variables(設定値):
| Variable 名 | 値 | 説明 |
|---|---|---|
GA_PROPERTY_ID |
123456789 |
GA4 のプロパティ ID |
MICROCMS_SERVICE |
your-service |
microCMS のサブドメイン |
MICROCMS_ENDPOINT |
articles |
microCMS の API エンドポイント(デフォルト:articles) |
SHEETS_ID |
1abc...xyz |
スプレッドシート ID(URL の/d/と/editの間) |
「Settings」→「Actions」→「General」で以下を確認:
- Actions permissions: "Allow all actions and reusable workflows"
- Workflow permissions: "Read and write permissions"
pnpm install.envファイルを作成:
GA_PROPERTY_ID=123456789
GOOGLE_CREDENTIALS={"type":"service_account",...}
MICROCMS_SERVICE=your-service
MICROCMS_API_KEY=xxxxx
MICROCMS_ENDPOINT=articles
SHEETS_ID=1abc...xyznpm run start:monthly| author | 2024-08 | 2024-09 | 2024-10 | ... |
|---|---|---|---|---|
| 山田太郎 | 1,234 | 2,345 | 3,456 | ... |
| 鈴木花子 | 567 | 890 | 1,234 | ... |
| slug | title | 2024-08 | 2024-09 | 2024-10 | ... |
|---|---|---|---|---|---|
| hello-world | はじめての記事 | 123 | 234 | 345 | ... |
| tech-tips | 技術 Tips | 456 | 567 | 678 | ... |
必要な環境変数が設定されていません。GitHub Secrets またはローカルの ENV ファイルを確認してください。
サービスアカウントの権限が不足しています:
- GA4: プロパティへの閲覧権限を確認
- Sheets: スプレッドシートへの編集権限を確認
microCMS の API キーが無効です。正しいキーが設定されているか確認してください。
- GitHub Actions のログを確認
- 手動で Workflow を実行して動作確認
- GA4 のデータ反映には最大 24 時間かかる場合があります
src/update-monthly-stats.tsの以下の部分を修正:
dateRanges: [{ startDate: "2024-08-01", endDate: "yesterday" }],stringFilter: { matchType: "BEGINS_WITH", value: "/blog/" },.github/workflows/update-monthly-stats.ymlの cron 式を修正:
- cron: "0 18 * * *" # JST 03:00MIT