検索アナリティクスで1000件以上の検索クエリを取得する方法

Search Console
データ取得

記事公開日:

検索アナリティクスで1000件以上の検索クエリを取得する方法

Googleのウェブマスターツールが、Search Consoleに名称変更となり、検索クエリを閲覧する画面も、「検索アナリティクス」といった形でリニューアルが行なわれました。

検索アナリティクスになり、検索クエリとそれに紐づくランディングページやデバイスなどが分かりやすくなったというメリットの反面、取得可能な検索クエリの個数が画面UI上では999件となり多くの検索クエリを見ることが難しくなった、という声も聞くようになりました。検索クエリの上限については、APIを利用すれば最大5,000件まで取得可能とかかれた情報もあるのですが、実際にどうAPIを利用したらいいか?が書かれた肝心の記事は出回っていないように思います。

そこで、Search Console APIの中の検索アナリティクスのデータを取得するAPIを利用したツールをこのブログ内に作成しました。


Search Console API - 検索アナリティクス

APIを利用してできること

APIを利用してできることは、今回作成したクエリデータの取得の他に、サイトの登録や削除、サイトマップの送信、クロールエラーの情報取得などができるようになります。これらの機能を利用すると、大規模サイトで多量のサイトを管理するときの、Search Consoleへの一括登録やサイトマップの一括送信、クロールエラーの監視といったことができるようになります。現状では、Fetch as Googleを利用したインデックスの送信は行えないようですが、今後機能追加されたときには、CMSなどとの連携も考えられます。

APIに関する情報

Search Console APIの開発者向けヘルプ・ドキュメントは、

Google Developers - Search Console API (Webmaster Tools API)

にあります。

ただ、プログラムを書くにはここにある情報だけでは不足します。自分もいろいろ試行錯誤しながら、約2日かけてツール開発を行いました。ライブラリ自体は、

  • Python
  • Go
  • JavaScript
  • .NET
  • Objective-C
  • PHP
  • Java

にて提供されているものの、サンプルコードはPython版の簡素なものしか書かれていません。今回は、各利用ユーザーのトークン管理が面倒だったこともあり、JavaScript版のライブラリを利用しています。ただ、ライブラリを使って、クエリデータを取得しようとすると、Cross Origin関連のエラーが発生してしまい、先に進めなかったため、結局XMLHttpRequestオブジェクトを生成して、リクエスト部分から自分で実装してしまっています。

このあたりは、PythonやPHPといったサーバー側の言語を使うようにすれば、簡単に実装できたのかもしれません。

実装コードはもう少しリファクタリングを行ったのちに、どこかで共有できればと思います。

作成したツールの使い方

作成したツールは、

https://sem-technology.info/tools/search_console

からご利用いただけます。最初に「認証処理」のボタンをクリックして、認証を行います。認証完了後、該当アカウントに登録されているサイトの一覧を取得します。APIを経由して取得したサイトデータが「対象サイト」のコンボボックスに入ってきます。

検索条件は

検索項目必須/任意説明
対象サイト必須検索クエリを取得したいサイトを選択してください。選択肢のサイトは、認証後に
データ取得期間必須取得データに含めたい期間を設定してください。
取得件数任意取得するデータの上限を設定します。1以上5,000以下の値が指定可能で、省略した場合はデフォルト値1,000が使われます。
検索タイプ任意Web、Image, Videoのどの検索タイプのデータを取得するかを指定します。デフォルトはWebとなっています。
ディメンション任意検索データをどの単位で分割するかを設定します。項目を増やすと、データ行数が増えてしまい、最大行数5,000に収まらないこともあるので注意が必要です。

となっています。これらのうち、必要な項目を指定したら、「データ取得」ボタン、または「CSV出力」ボタンをクリックしてデータ取得を行います。データの取得処理は少し時間がかかる上に、読み込み中の表示を実装していないため、処理をしているのか不安に思うかもしれませんが、お待ち下さい。数十秒あれば読み込みは終わるはずですので、数分経っても変化がない場合は、再度画面をリロードして、やり直してみてください。それでもダメな場合は、お問い合わせフォームより、ご連絡ください。

現状の機能

現状の機能としては、画面UI上から行えない取得件数の上限変更が実装されているくらいで、それ以外にこのツールを利用するメリットはありません。とはいえ、いろいろなサイトで、APIを使えば1,000件以上の検索クエリ取得ができる、と書かれていながらも、手軽にAPIを利用する方法はどこにも書かれていないことから考えると、ニッチな機能ながらも、ニーズはあるかと思います。

なお、ツールの利用頻度の計測のため、Google認証を行ったタイミングと、データ出力ボタン(CSVボタン含む)がクリックされたタイミングで、Googleアナリティクスにイベントデータとして送信しています。認証に使われたアカウント情報や、データ取得の対象となっているWebサイトの情報についてはGoogleアナリティクス、自サイトを含むいかなる場所にも送信していません。

今後の機能追加(予定)

今の所、機能追加の予定はありませんが、利用者が多く、他の機能追加の要望が出てきたら、順次対応を検討したいと思っています。

とはいっても、現在のSearch Analytics APIの仕様を見る限りでは、追加できる機能としては、出力結果のフィルタリング機能くらいでしょうか。他には、ページ単位のフィルタリング機能を自動で利用して5,000件以上の全データを取得できたら、理想かと思います(その場合は, JavaScriptの処理では限界がありそうなので、サーバーサイドでの実装になりそうです)。

参考サイト