GAS×Google Custom Search JSON APIでキーワードごとの検索上位記事を自動でリスト化する方法
「Google検索結果を自動で取得して、スプレッドシートに一覧化できたら便利なのに…」
そんなふうに思ったことはありませんか?
この記事では、Googleが提供している「Custom Search JSON API」を使って、スプレッドシートにキーワードを入力するだけで、Google検索の上位結果(タイトルとURL)を自動で取得し、一覧化する方法を紹介します。使用するのは、Google Apps Script(GAS)です。
手動で検索してURLをコピペする手間を大幅に削減できるので、リサーチ作業やSEO分析を効率化したい方におすすめです。
「APIって難しそう…」と思った方も大丈夫。この記事では、APIキーや検索エンジンIDの取得から、コードの貼り付け、実行方法までを、画像付きでわかりやすく解説しています。
以下のようなものができるイメージです。
このツールを作成する手順を解説していきます。
▼本記事の対象者
- プログラミングは詳しくないWebマーケター
- プログラミングの知識がなくても利用可能です
- アフィリエイターリストを作りたい方
- 記事ディレクターで、上位表示している記事の分析をしたい人
🔍 Google Custom Search JSON API の設定手順(完全ガイド)
📌 目的
Google Apps Script(GAS)などのプログラムから、Googleの検索結果(ウェブ・画像など)を取得するための「Custom Search JSON API」を有効化し、APIキーと検索エンジンID(cx)を取得する手順です。
手順1:Custom Search JSON API のAPI Keyを取得
① Custom Search JSON API にアクセス
- Custom Search JSON API | Programmable Search Engine | Google for Developersにアクセス
- 表示されたページで「キーを取得」をクリックします。
→ 以下のような画面がポップアップで開きます。
② プロジェクトを作成
- 任意のプロジェクト名(例:
serpkw
)を入力 - 「Yes」にチェックを入れて、規約に同意
- 「NEXT」をクリック
③ API キーの表示とコピー
- 「SHOW KEY」をクリック
- 表示されたAPIキーをコピーして保存(例:
AIdeapisyutoku...
)
以下は、Google Custom Search の検索エンジンID(CX)を取得する手順の解説です。添付いただいた画像に基づき、ステップごとにわかりやすく説明します。
🚨 注意点
- 無料枠では1日100クエリが上限です(超えると有料)。
- Custom Search Engine作成時、「全ウェブを検索対象にする」設定にすることでGoogle検索に近い結果が得られます。
- 「画像検索」も有効にしたい場合は、検索エンジンの設定で「画像検索を有効にする」にチェックを入れてください。
手順2:検索エンジンID(CX)の取得手順
①「使ってみる」ボタンをクリック
Googleの「プログラム可能な検索エンジン(Programmable Search Engine)」のトップページにアクセスし、右側にある「使ってみる」ボタンをクリックします。
② 「追加」ボタンから検索エンジンを作成
表示された画面の右上にある「追加」ボタンをクリックして、新しい検索エンジンの作成を開始します。
③ 検索エンジンの設定を行う
以下の情報を入力・選択します。
- 検索エンジン名:任意の名前(例:「Web全体」)
- 検索対象:「ウェブ全体を検索」にチェックを入れる
- ロボット確認:「私はロボットではありません」にチェックを入れる
その後、「作成」ボタンをクリックします。
④ 検索エンジン作成完了 →「カスタマイズ」をクリック
検索エンジンが作成されると確認画面が表示されるので、「カスタマイズ」ボタンをクリックして詳細設定画面へ進みます。
⑤ 「検索エンジンID(CX)」を確認・コピー
「概要」ページ内の「基本情報」セクションに検索エンジンIDが表示されているので、それをコピーしてメモしておきます。
このID(例:012345678901234567890:abcde12345
)が、GAS や API で使用する「cx」パラメータになります。
以上で、検索エンジンID(CX)の取得は完了です。
取得した ID は、GAS スクリプトや API リクエストに活用できます。
手順3:GASにコードを貼り付け
Google スプレッドシートから、Googleの検索結果を取得するには、Apps Scriptにコードを貼り付けて実行する必要があります。以下に、その準備手順を画像つきで解説します。
①Apps Script を開く
- Googleスプレッドシートを開く(例:
記事リスト_custom_json_api
)。 - メニューの「拡張機能」をクリック。
- 表示されたメニューから「Apps Script」を選択。
②コード.gs に GAS スクリプトを貼り付ける
- エディタ画面が開いたら、デフォルトの
コード.gs
に、Custom Search API を利用する GAS のコードを貼り付けます。 -
API_KEY
とCX
の部分に、それぞれ取得済みの APIキー と 検索エンジンID(cx) を入力してください。
今回、張り付けるコードは以下です。
const API_KEY = 'あなたのCustom Search JSON API'; // 提供されたAPIキー
const CX = '検索エンジンID'; // 🔁ここに「検索エンジンID」を入力してください
function searchGoogleCustom() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const kwSheet = ss.getSheetByName("KW");
const resultSheet = ss.getSheetByName("result") || ss.insertSheet("result");
// 既存データを削除し、ヘッダーをセット
resultSheet.clear();
resultSheet.appendRow(["KW", "title", "URL"]);
// キーワードの取得
const keywords = kwSheet.getRange("A2:A" + kwSheet.getLastRow()).getValues().flat().filter(String);
for (let i = 0; i < keywords.length; i++) {
const kw = keywords[i];
const url = `https://www.googleapis.com/customsearch/v1?key=${API_KEY}&cx=${CX}&q=${encodeURIComponent(kw)}`;
try {
const response = UrlFetchApp.fetch(url);
const json = JSON.parse(response.getContentText());
if (json.items && json.items.length > 0) {
json.items.forEach(item => {
resultSheet.appendRow([kw, item.title, item.link]);
});
} else {
resultSheet.appendRow([kw, "No results found", ""]);
}
} catch (e) {
resultSheet.appendRow([kw, "API Error", e.message]);
}
}
}
③スクリプトを実行
- 上部メニューの「▶︎ 実行」ボタンをクリックして、スクリプトを初回実行します。
④認証のリクエストに応じる
初回実行時には、Googleアカウントのアクセス許可が求められます。
-
「権限を確認」ボタンをクリック。
-
自分のアカウントを選択。
- アクセス許可画面で「すべて選択」をチェックし、「続行」をクリック。
以上で、Apps Scriptを通じてCustom Search APIを実行する準備は完了です。
手順4:実行する
1.「KW」シートのA列に調べたいキーワードを入力
2.「result」に記事リストができている
まとめ
今回ご紹介した方法を使えば、Google検索結果の取得と一覧化が数秒で完了します。
手動でコピペしていた時間がなくなるだけで、かなりの効率化になります。
APIの設定やGASに少しでも慣れておくと、今後の業務でも大きな武器になります。この記事がその第一歩になれば嬉しいです。
Discussion