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エディタからリンクされているプロジェクトは、自動で割り当てられているケースもあり、GASエディタが自動的に作成する「デフォルトのGCPプロジェクト」は、Google Cloud ConsoleからAPIの有効化やOAuth同意画面の設定ができません。
そのため、自分で新しいプロジェクトを作成し、GASと関連付ける必要があります。
このままではAPIの有効化ができず、認証で止まってしまいます。
対応方法:
- Google Cloud Consoleで新しいプロジェクトを自分で作成する
- GASエディタの[プロジェクトの設定]画面から、そのプロジェクト番号を連携する
3. OAuth同意画面で「テストユーザー」を追加していなかった
OAuthの同意画面を「テスト中」のままにしていた場合、明示的に“テストユーザー”として追加したGoogleアカウントでしか認証ができません。
これを忘れていたため、以下のようなエラーが発生しました。
アクセスをブロック:Search ConsoleデータはGoogleの審査プロセスを完了していません
エラー 403: access_denied
対応方法:
- [OAuth同意画面] > [対象] タブから、該当のGoogleアカウント(例:xxxxx@gmail.com)を「テストユーザー」として追加する
OAuth 同意画面でテストユーザーを追加したあとも、APIを正しく動かすには以下のスコープを明示的に設定する必要があります。
設定場所は「OAuth同意画面の“スコープを追加”」または、GASの appsscript.json
ファイルの oauthScopes
に記述します。
https://www.googleapis.com/auth/webmasters.readonly
(Search Console の読み取り権限)https://www.googleapis.com/auth/spreadsheets
(スプレッドシート操作権限)https://www.googleapis.com/auth/script.external_request
(外部リクエスト送信権限)
これら3つの権限を追加しておくことで、403エラーなどの認可関連のトラブルを未然に防げます。
4. 実行結果:ようやくデータが出力されました
設定を一通り見直し、OAuth認証が正常に通るようになったところで、ようやくスプレッドシートにSearch Consoleのデータが出力されました。
表示されたのは以下のような項目です:
- クエリ
- クリック数
- 表示回数
- CTR(クリック率)
- 掲載順位
思わず「やった……!」と声が出た瞬間でした。
学びと振り返り
今回のプロセスで感じたのは、「コードを書くこと」より「設定を理解すること」の方がはるかに難しいという点です。
特に重要なチェックポイント:
- GCPのプロジェクトは自分で作成し、GASと関連付けること
- Search Console APIを有効化すること
- OAuth同意画面でテストユーザーを設定すること
-
ScriptApp.getOAuthToken()
の記述はテンプレートリテラルで囲むこと(バッククォート)
これから取り組む方へのメッセージ
GASとSearch Console APIの連携は、一度設定してしまえば非常に便利ですが、初心者にとっては「非コード部分」で戸惑うことが多いと感じました。
わからなくても焦らず、一つひとつ確認しながら進めることが何より大切です。
もしつまずいたら、この記事や公式ドキュメント、そしてChatGPTなどの支援を活用して乗り越えていきましょう。