n8nの解析結果をGoogleスプレッドシートに自動出力する方法【ダッシュボード化】

柴田

よっしゃ!前回の記事で、ついにAIにリライト案を提案してもらったぞ!…このままAIがリライトしてくれればいいのになぁ…(チラッ)

AI

何見てるんですカ?ワタシは別のデータ分析があるからリライトなんかしませんヨ?スプシに出力しとくので自分でやってくだサイ

柴田

む…手厳しい…

このシリーズも最終回です。

第2回でGSCデータを取得し、第3回でリライト優先度をスコアリングし、第4回でClaude/Geminiにリライト提案を生成させました。

この記事ではこれらの結果をGoogleスプレッドシートに自動出力して、毎週見るだけで「今週何をリライトすべきか」が一目でわかるダッシュボードを作ります。

これでワークフローが完成します。

【この記事でわかること】

  • n8nからGoogleスプレッドシートへの出力設定
  • リライト優先度・Claude/Geminiの提案を見やすく整理する方法
  • ワークフロー全体の完成形
目次

ワークフロー全体のおさらい

ここまでで作ってきたワークフローはこうなっています。

Scheduleトリガー(週1)
 ├→ HTTP Request(数学ブログのGSCデータ取得)
  → Codeノード(スコアリング・上位10記事抽出)
  → Codeノード(プロンプト生成)
  ├→ HTTP Request(Claude)
   → Codeノード(レスポンス整形)
   → Google Sheets(出力)★今回はここ

Step1:Googleスプレッドシートを準備する

新しくスプレッドシートを作成して、以下の列を用意します。

内容
A日付
Bサイト名
CURL
D主要キーワード
E平均順位
FCTR
G表示回数
Hスコア
Iスコアの理由
JClaude提案
スプシ

Step2:n8nにGoogle Sheetsノードを追加する

ワークフローの最後にGoogle Sheetsノードを追加します。

柴田

ここも「実際に詰まったこと」があるので、先にそちらを読んでください!

ノードの設定

項目設定値
ResourceSheet Within Document
OperationAppend Row
Document作成したスプレッドシートを選択
Sheetシート名を選択

ハマりポイント① 第2回でGSC接続用に作った「Google OAuth2 API」のクレデンシャルは、そのままでは選択肢に出てきません。n8nでは「Google OAuth2 API」と「Google Sheets OAuth2 API」はクレデンシャルタイプとして別物扱いだからです。

ただしGoogle Cloud Platform側のClient ID・Client Secretは使い回せます。手順はこうです。

  1. Google Sheetsノードの認証欄で「+ Create new credential」を選び、「Google Sheets OAuth2 API」の新規作成画面を開く
  2. 第2回で作成したクレデンシャル(Automated Analytics GSCなど)を別タブで開き、Client IDとClient Secretをコピーする
  3. 新規作成画面に同じClient ID・Client Secretを貼り付ける
  4. スコープにhttps://www.googleapis.com/auth/spreadsheetsが含まれているか確認する
  5. 保存して認証(Connect)する

GCPのプロジェクト・OAuthクライアントは1つのまま、n8n側のクレデンシャルだけタイプ別に複数登録する、というイメージです。

Step3:サイト名を識別できるようにする

今後分析するブログを増やした場合、どのブログのデータわからなくなるので、最初のCodeノード(スコアリング)でsiteNameフィールドを追加しておきます。

柴田

スプシのノードを閉じて一度前のCodeノードに戻りましょう!
最初のCodeノードの最後の方(後ろから5行目〜30行目くらい)にある、results.pushに以下の1行を書き加えます

…
results.push({
  siteName: "数学ブログ", //←この1行追加
  url: d.url,
…
});

Step4:列のマッピング

Mapping Column Modeで「Map Each Column Manually」を選び、各列にどのデータを入れるかをマッピングします。

INPUTのJSONには、各ノードで出力したデータが拾えるので、

  • Claude提案:直前のCodeノードから渡ってきた”suggestion”
  • 日付:{{ new Date().toISOString().split(‘T’)[0] }}(←これをコピペしてください、今日の日付が入ります)
  • その他:この記事シリーズに従って作った場合、3つ目のCodeノード(GSCのデータをスコアリングしたもの)から拾ってきます
柴田

各JSONのデータを拾ってきたいときは、項目を左ドラッグでもってくるだけです。
画面左上、INPUTを「JSON」タブに切り替えると、その下にあるプルダウンで直前だけでなく、そこまでに出力したJSONデータを選べるので、そこから3つ目のCodeノードを選んで必要なデータを引っ張り出してください

(正しく紐づけできたら以下のようになるはずです。

Expression(内容)
日付{{ new Date().toISOString().split(‘T’)[0] }}
サイト名{{ $(‘【3つ目のCodeノード名】’).item.json.siteName }}
URL{{ $(‘【3つ目のCodeノード名】’).item.json.url }}
主要キーワード{{ $(‘【3つ目のCodeノード名】’).item.json.topKeyword }}
平均順位{{ $(‘【3つ目のCodeノード名】’).item.json.avgPosition }}
CTR{{ $(‘【3つ目のCodeノード名】’).item.json.avgCtr }}
表示回数{{ $(‘【3つ目のCodeノード名】’).item.json.totalImpressions }}
スコア{{ $(‘【3つ目のCodeノード名】’).item.json.score }}
スコアの理由{{ $(‘【3つ目のCodeノード名】’).item.json.reasons }}
Claude提案{{ $json.suggestion }}

完成したダッシュボードのイメージ

毎週月曜にこのスプレッドシートが自動更新され、こういう状態になります。

スコアの高い順にソートしておけば、開いた瞬間に「今週リライトすべき記事トップ10」が一目でわかります。

柴田

ついに完成!お疲れ様でした!

実際に詰まったこと

スプシにデータを追記する際、

  • スプシを開くために「Google Drive API」を有効にする
  • スプシのシートを開くために「Google Sheets API」を有効にする

…と、2つのAPIサービスを有効にしておかないといけません。

あらかじめGoogle Cloudeコンソール(https://console.cloud.google.com/)の左上メニュー「≡」→「APIとサービス」→「ライブラリ」の中から上記2つのAPIを有効にしておいてください。

1ヶ月運用してみた感想

柴田

こちらは実際使ってみてから報告しますね

このシリーズのまとめ

全5回でお届けしてきたGSC自動解析ワークフローはこれで完成です。

内容
第1回全体設計【6ノード構成】
第2回GSC APIへの接続とデータ取得
第3回Codeノードでスコアリングロジックを組む
第4回Claude/Gemini APIでリライト提案を生成
第5回(今回)スプレッドシートへの自動出力

毎週手動で数時間かかっていたGSC確認作業が、月60円程度のAPI費用で完全自動化されました。

完成版ワークフローは公式ラインで配布します

今回全部を統合した完成版ワークフローを公式ラインで配布します。

公式LINEに登録して、「GSC自動解析」とメッセージをください。ワークフローのJSONファイルへのリンクを送信します!

柴田

完全無料配布です!このブログ記事を参考にセットアップしてみてください!

【公式ラインQRコード】

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次