Google Apps Script(以下GAS)を使って、Search Consoleのデータをスプレッドシートに自動で出力したい――。
そう思い立って始めた作業でしたが、認証やAPI設定など、普段あまり触れることのない手順に苦戦し、思っていた以上に多くの壁がありました。
この記事では、Search Console APIの取得から、データ出力までの流れをまとめつつ、つまずきやすいポイントとその対処法を、実際の体験をもとにご紹介します。
この記事を読むメリット
- GASとSearch Console APIの基本的な連携方法がわかります
- 初心者がつまずきがちなポイントと、その解決方法がわかります
- API認証やOAuth設定に関する注意点を事前に把握できます
1. 最初の疑問:APIキーとOAuthの違いがわからない
まず最初につまずいたのは、「認証」の考え方でした。
Search Console APIには、OAuth 2.0による認証が必要です。APIキーでは認証が通らず、エラーが返されました。
特に混乱したのは、GASで使うトークン取得部分。
javascriptAuthorization: `Bearer ${ScriptApp.getOAuthToken()}`
ここで使われるバッククォート(テンプレートリテラル)をMacで入力する方法がわからず、想定外の時間を費やしてしまいました。
補足:Macでのバッククォート入力
キーボードを「英数モード」にした状態で、option
+ @
で入力できます。
2. GCPのプロジェクトが自動で作成されていたことに気づかなかった
Apps ScriptからSearch Console APIを呼び出すためには、GCP(Google Cloud Platform)で作成したプロジェクトと連携させる必要があります。
ところが、GASエディタからリンクされているプロジェクトは、自動で割り当てられているケースもあり、意図せず「編集権限のないプロジェクト」で作業してしまっていました。
このままではAPIの有効化ができず、認証で止まってしまいます。
対応方法:
- Google Cloud Consoleで新しいプロジェクトを自分で作成する
- GASエディタの[プロジェクトの設定]画面から、そのプロジェクト番号を連携する
3. OAuth同意画面で「テストユーザー」を追加していなかった
OAuthの同意画面を「テスト中」のままにしていた場合、明示的に“テストユーザー”として追加したGoogleアカウントでしか認証ができません。
これを忘れていたため、以下のようなエラーが発生しました。
アクセスをブロック:Search ConsoleデータはGoogleの審査プロセスを完了していません
エラー 403: access_denied
対応方法:
- [OAuth同意画面] > [対象] タブから、該当のGoogleアカウント(例:xxxxx@gmail.com)を「テストユーザー」として追加する
4. 実行結果:ようやくデータが出力されました
設定を一通り見直し、OAuth認証が正常に通るようになったところで、ようやくスプレッドシートにSearch Consoleのデータが出力されました。
表示されたのは以下のような項目です:
- クエリ
- クリック数
- 表示回数
- CTR(クリック率)
- 掲載順位
思わず「やった……!」と声が出た瞬間でした。
学びと振り返り
今回のプロセスで感じたのは、「コードを書くこと」より「設定を理解すること」の方がはるかに難しいという点です。
特に重要なチェックポイント:
- GCPのプロジェクトは自分で作成し、GASと関連付けること
- Search Console APIを有効化すること
- OAuth同意画面でテストユーザーを設定すること
-
ScriptApp.getOAuthToken()
の記述はテンプレートリテラルで囲むこと(バッククォート)
これから取り組む方へのメッセージ
GASとSearch Console APIの連携は、一度設定してしまえば非常に便利ですが、初心者にとっては「非コード部分」で戸惑うことが多いと感じました。
わからなくても焦らず、一つひとつ確認しながら進めることが何より大切です。
もしつまずいたら、この記事や公式ドキュメント、そしてChatGPTなどの支援を活用して乗り越えていきましょう。