目次
毎月のSEOレポート、まだ手作業で作っていませんか?
GA4を開いて、Search Consoleを開いて、数字をスプレッドシートにコピペして、グラフを整えて——
毎月この繰り返しをしていないでしょうか。
「数字を並べるだけなら何とかなる。でも、分析コメントを書くのが一番しんどい」。
そんな声をよく聞きます。前月比で何が変わったのか、なぜ変わったのか、次に何をすべきか。
この「だから何なのか」を言語化する作業が、レポート作成で最も時間がかかる部分です。
今回、私たちは n8n + GA4 API + Search Console API + LLM(Claude) を組み合わせて、
データ取得から分析コメント生成、Teamsへの投稿までを完全自動化する実験を行いました。
その実験ログを公開します。
n8nとLLMを組み合わせれば、「自社サイト専用のSEOアナリスト」を自動化できる
先に結論をお伝えします。今回構築したワークフローでできることは以下の通りです。
- GA4から直近のセッション数・ページビュー・流入経路・ユーザー行動データを自動取得
- Search Consoleから検索クエリ・表示回数・クリック数・掲載順位を自動取得
- 取得したデータをLLM(Claude)に渡して、サイト固有の分析コメントを自動生成
- レポートをTeamsチャネルに自動投稿(週次 or 月次で定期実行)
汎用的なSEOツールとの違いは、自社のKPIや事業文脈をプロンプトに組み込める点です。
「うちのサイトにとって何が重要か」に特化した分析が得られます。
全体のアーキテクチャは以下の通りです。
graph LR
A[GA4 Data API] --> C[n8n]
B[Search Console API] --> C
C --> D[LLM / Claude API]
D --> E[レポート生成]
E --> F[Teams投稿]
style C fill:#ff6d5a,color:#fff
style D fill:#7c5cfc,color:#fff
構築にかかった時間は約半日。月々の運用コストはAPI利用料のみで、ほぼゼロです。
なぜ「n8n × API × LLM」の構成にしたのか
n8nを選んだ理由
自動化ツールはZapierやMakeなど選択肢がありますが、n8nを選んだ理由は3つあります。
- セルフホスト可能:社内データを外部のSaaSに出さずに済みます。製造業の情報管理要件に合致する点が大きい
- API連携の自由度が高い:HTTP Requestノードで任意のAPIを柔軟に呼び出せます。
GA4 Data APIやSearch Console APIにも対応可能 - ワークフローをGit管理できる:JSONエクスポートでバージョン管理ができるため、チームでの運用にも向いています
ものづくりAI研究所では、こうした自動化実験の基盤としてn8nを採用しています。
GA4 API / Search Console APIを直接使う理由
GA4の標準レポートやLooker Studioでもレポートは作れます。
しかし、今回あえてAPIを直接叩く構成にしました。理由は明確です。
- 「自社にとって重要な指標だけ」を抽出するには、APIが最も柔軟
- Search ConsoleのデータとGA4のデータを1つのレポートにまとめるには、両方のAPIが必要
- 何より、LLMに渡すための構造化データを得るにはAPIが最適
つまり、API直接アクセスは「LLMに分析させる」ための前提条件なのです。
SEOレポート作成にLLMを挟む理由
レポート自動化の既存ソリューション——Looker StudioやData Portalは「数字の可視化」まではできます。
しかし、「分析コメント」は人間が書くしかなかったのが従来の限界でした。
LLMの登場で「数値データ → 分析テキスト」の変換が可能になりました。ポイントは、プロンプトに自社の文脈を埋め込むことです。
- 自社サイトのKPI定義(何を重視しているか)
- 注力しているページやキーワード
- 前月比で注目すべき変化の閾値
これにより、汎用SEOツールの定型コメントではなく、自社のWeb担当者が書くような分析が自動生成されます。
実際に構築してみた — 5つのステップ
graph LR
S1[Step 1
API有効化] --> S2[Step 2
GA4データ取得]
S2 --> S3[Step 3
Search Console
データ取得]
S3 --> S4[Step 4
LLMで分析生成]
S4 --> S5[Step 5
Teams投稿
定期実行]
style S1 fill:#e8e8e8,color:#333
style S2 fill:#4285f4,color:#fff
style S3 fill:#34a853,color:#fff
style S4 fill:#7c5cfc,color:#fff
style S5 fill:#ff6d5a,color:#fff
Step 1:Google Cloud ConsoleでAPIを有効化する
まず、Google Cloud Consoleで以下の2つのAPIを有効化します。
- GA4 Data API(Analytics Data API v1)
- Search Console API(Search Console API v1)
サービスアカウントを作成し、JSON鍵ファイルをダウンロードします。
その後、GA4プロパティとSearch Consoleプロパティの両方に、このサービスアカウントのメールアドレスを閲覧者以上の権限で追加してください。
つまずきポイント:
GA4プロパティへの権限付与を忘れがちです。
Google Cloud Console側でAPIを有効化しただけでは、データにアクセスできません。
GA4の管理画面で「プロパティのアクセス管理」からサービスアカウントを追加する必要があります。
Step 2:n8nでGA4データを取得する
n8nのHTTP Requestノードを使って、GA4 Data API v1を呼び出します。
認証にはサービスアカウントのJWT認証を使います。
n8nの「Credentials」でGoogle Service Accountを登録し、先ほどダウンロードしたJSON鍵ファイルの内容を設定してください。
リクエストボディでは、dimensions(日付、ページパスなど)とmetrics(セッション数、PV数、アクティブユーザー数など)を指定します。
レスポンスはネストされたJSON構造で返ってくるので、Setノードやコードノードで必要なデータだけを抽出・整形します。
Step 3:Search Consoleのデータも取得する
Search Console APIの呼び出しもGA4と同じ流れです。
検索アナリティクスのエンドポイントから、以下のデータを取得します。
- 検索クエリ(どんなキーワードで検索されたか)
- ページURL
- クリック数・表示回数・CTR・掲載順位
GA4データとSearch Consoleデータは、n8nのMergeノードで1つのデータセットに統合します。
つまずきポイント:GA4とSearch Consoleでは日付範囲のずれが発生しやすいです。
Search Consoleのデータは2〜3日遅れで反映されるため、両者の集計期間を揃える工夫が必要です。
Step 4:LLMに渡して分析コメントを自動生成する
ここが今回の実験の核心部分です。統合したデータをLLM(Claude API)に渡して、分析コメントを自動生成します。
graph TD
A[GA4データ
セッション・PV・流入経路] --> C[データ統合・整形]
B[Search Consoleデータ
クエリ・順位・CTR] --> C
C --> D[プロンプト構築]
E[自社KPI定義
注力キーワード
変化の閾値] --> D
D --> F[Claude API]
F --> G[分析レポート
Markdown形式]
style C fill:#ff6d5a,color:#fff
style D fill:#ff6d5a,color:#fff
style F fill:#7c5cfc,color:#fff
style G fill:#34a853,color:#fff
プロンプト設計のポイントは3つあります。
- 役割の設定:「あなたは〇〇社のWebマーケティングアナリストです」とシステムプロンプトで指定
- 自社文脈の埋め込み:KPI定義や注目指標をプロンプトに含める
- 出力フォーマットの指定:Markdown形式でレポート構成を指定し、そのまま投稿できる形にする
実験結果:生成された分析コメントの品質は「7割はそのまま使える」レベルでした。
「前月比でセッション数が12%増加しており、特にブログ記事Aの流入増が主因です」のような分析は的確です。
ただし、「なぜその変化が起きたのか」の考察はやや表層的になりがちで、ここは人間がひと言添える必要があります。
プロンプトは3〜4回のチューニングで実用レベルに達しました。
Step 5:Teamsに自動投稿して定期実行する
最後に、生成されたレポートをMicrosoft TeamsのIncoming Webhook経由で投稿します。
n8nのHTTP RequestノードでWebhook URLにPOSTするだけです。
定期実行は、n8nのScheduleトリガーで設定します。毎週月曜の朝9時にレポートが届く、という運用にしました。
実験から見えた「使えるレベル」と「まだ足りない部分」
うまくいったこと
- データ取得からレポート生成、投稿まで完全自動化を達成
- LLMの分析コメントは7割がそのまま使える品質。人間が軽く手直しすれば実用十分
- 構築後の運用コストはほぼゼロ(API利用料のみ)
改善が必要な点
- LLMの分析が「前月比で下がりました」のような表層的コメントに留まることがある。プロンプトの継続改善が必要
- データ量が多いとトークン数が増えてコストが上昇する。事前にデータを要約・フィルタリングする工夫が有効
- Teamsへの投稿時にMarkdownの互換性問題が発生する場合がある。Adaptive Card形式への変換を検討中
業務にどう効くか
graph LR
subgraph Before["従来の運用"]
direction TB
B1[GA4を開く] --> B2[数値をコピペ]
B2 --> B3[グラフ作成]
B3 --> B4[分析コメント執筆]
B4 --> B5[レポート共有]
end
subgraph After["自動化後の運用"]
direction TB
A1[n8nが自動実行] --> A2[Teamsに届く]
A2 --> A3[15分レビュー]
end
Before -. "毎月2〜3時間" .-> After
After -. "毎月15分" .-> Done[次の施策を考える時間へ]
style Before fill:#fff3e0,color:#333
style After fill:#e8f5e9,color:#333
style Done fill:#7c5cfc,color:#fff
従来、毎月2〜3時間かけていたレポート作成が、自動化後はレビュー15分に短縮されました。
これは単なる時間削減ではありません。「レポートを作る時間」が「レポートを読んで次の施策を考える時間」に変わるのです。
特に、製造業のようにWeb担当が他業務と兼務しているケースでは、この効果は大きいはずです。
再現するためのチェックリスト
この実験を自社で再現するために必要なものをまとめます。
| 必要なもの | 備考 |
|---|---|
| Google Cloud Consoleアカウント | GA4 Data API / Search Console API を有効化 |
| GA4プロパティ + Search Consoleプロパティ | サービスアカウントに閲覧者以上の権限を付与 |
| n8n環境 | セルフホスト版 or n8n Cloud |
| LLM APIキー | Claude API 等 |
| Teamsチャネル + Incoming Webhook URL | 投稿先のチャネル |
まずは「GA4データの取得だけ」でも試してみてください。1つ動けば、残りのステップは同じパターンの繰り返しです。
n8n × API連携の構築支援や、ものづくりAI研究所の取り組みについてのご相談は、お気軽にアディエムまでお問い合わせください。
