こんにちは。CData Software Japan リードエンジニアの杉本です。
みなさんは Google Search の順位って気にされていますか? ビジネスユースでは、Google Adによって、特定の検索結果の上位に広告を出すというアプローチを取っている方も多いかと思いますが、やはり通常のコンテンツの力・SEOによって上位に上がってくる検索結果は強いものです。
ただ、自分達の作ったコンテンツが今どのあたりに存在していて、どのくらいの順位に変動していっているのか、日々確認するのは大変じゃないでしょうか。
今日はそんな Google Search の検索結果を毎日BigQueryにレプリケートしてしまい、自分たちのコンテンツの順位をトラッキングするための方法を紹介したいと思います。
最終的な完成イメージ
最終的には日々の検索結果が以下のGoogle BigQuery GoogleSearchResultというテーブルに格納されます。
100位までのランキングを毎日取得する感じです。
あとは、Google Data Portalなどで可視化できるという流れです。
必要なもの
必要なものは以下の通りです。CDataSyncは30日間の無償版が提供されていますし、Google Search API と Google BigQueryは無償枠があるので、試すだけであれば無料で行えます。
実施手順
それでは、実際にやってみましょう。
Google BigQuery の準備
まずは、データの格納先となる Google BigQueryのプロジェクトとデータセットを構成しておきます。
なお、今回はあらかじめ専用のアカウントを作って対応しています。
手順は特に難しくありません。GCPの管理コンソールへ移動し、新しいプロジェクトを作成
BigQuery に移動し、プロジェクト配下にデータセットを作っておきます。ここにGoogle Search の結果がテーブルとして格納されます。
以上で BigQuery 側の準備は完了です。
Google Seach API Keyの準備
次にGoogle Search APIにアクセスするためのカスタム検索エンジン API Keyを準備します。
以下のURLにアクセスし検索エンジンの追加を行います。
https://cse.google.com/cse/all
次に検索エンジンの設定をするのですが、検索するサイトは今回最終的にはなくしてしまうので、適当な値を入れておきます。そして、対象の言語と任意の名称を入力し、作成をクリックしてください。
次に「設定」に移動し、登録していたダミーのサイトを削除
そして、「プログラム的なアクセス」から「Custom Search JSON API」の「使ってみる」をクリックします。
クリックすると、以下のページにリダイレクトされるので「Get a Key」をクリックしてください。
先程作成したGCPのProjectを選択し、確認事項に同意の上、「NEXT」をクリック
すると、API Keyを取得できるので、これを控えておきます。
CDataSyncのインストール
それでは、取得した情報を元にCDataSyncの設定を行っていきましょう。
CDataSyncはインストール型のソフトウェアなので、以下のURLからダウンロードして、任意のPCでセットアップを行います。
https://www.cdata.com/jp/sync/
セットアップ後、CData Syncの画面がブラウザで立ち上がるので、セットアップ時に入力したパスワードとユーザー名「admin」を入力して、ログインします。
ログイン後「情報」タブに移動し、「30日間の評価版をアクティベート」を行えば、CDataSyncの初期設定は完了です。
Google Search データソースの設定
まずはデータのSyncを行うためのデータソースの設定を行っていきましょう。
CDataSyncでは任意のデータソースを自由に追加して、連携することが可能です。
デフォルトでは Google Searchが含まれていないため、「接続」に移動し「+ Add More」をクリックし、追加を行います。
一覧の中から「Google Seach」を検索し、追加します。
「ダウンロード&インストール」をクリックし、CDataSyncを再起動すれば
以下のようにGoogle Search のデータソースアイコンが追加されます。
次に接続設定です。Google Searchのアイコンをクリックすると、以下のような画面が表示されるので「接続文字列」のラジオボタンをクリックし、事前に入手していた情報を元に以下のような接続文字列を入力します。
API Key=XXXXX;Custom Search Id=XXXXX;
入力後、接続テストを実施し、成功のメッセージが表示されたら、設定を保存しましょう。
BigQueryへの同期先設定
続いて、同期先となるBigQueryへの接続を構成します。
「接続」→「同期先」から「Google BigQuery」を選択し
あらかじめ作成しておいた、「ProjectId」と「Dataset Id」を入力し、「接続」をクリックします。
クリックすると、OAuthの認証プロセスが開始されますので、対象アカウントでログインし、アクセス許可を承認してください。承認後、設定を保存すれば準備完了です。
以下のように接続情報が2種類構成されていればOKです。
ジョブの作成
最後に実際の処理となる連携ジョブを作成してみましょう。ジョブのタブから「ジョブを追加」をクリックします。
データソースに「Google Search」、同期先に「Google BigQuery」を選択し、「作成」をクリックします。
ジョブの画面に移動したら「カスタムクエリの追加」をクリックし、ここで検索文などの絞り込みクエリを指定します。
使用するカスタムクエリの例は以下のようなものになります。
CACHE GoogleSearchResult SELECT ROW_NUMBER() AS [RANK], CURRENT_TIMESTAMP, * FROM [WebSearch] WHERE [SearchTerms] = 'kintone C#'
「GoogleSearchResult」が実際にBigQueryへ生成されるテーブル名
「WHERE [SearchTerms] = 'kintone C#'」の「'kintone C#'」部分が検索対象となるキーワードです。これを任意の文字列に変更してください。
保存後、試しに実行してみましょう。対象のジョブをチェックし「実行」ボタンをクリックします。
少しの間、実行を待つと、以下のようにジョブの完了結果が表示されます。
実際にBigQueryのテーブルを見てみると、以下のように検索結果が保存されたことがわかります。
なお、Google Custome Seach APIは1日1000リクエストまで実行でき、CData Syncはデフォルトで上位100件を取得します。
そのため、1日あたり10キーワードまで検索結果を取得できます。もちろん有償APIライセンスを使うことで、より多くの検索キーワードの登録が可能です。
ジョブのスケジュールの設定
最後にジョブのスケジュール設定を行いましょう。
ジョブの画面から「スケジュール」タブに移動し、スケジュールを有効化、Dailyで指定時間を入力すれば、毎日その時間に検索結果をBigQueryに同期するようになります。
おわりに
今回は個人的にもビジネス的にも気になるトピックでCDataSyncを使ってみました。
Google Search APIが存在するというのを知らない方も多いかと思いますが、是非気になる検索ワードを使って、試してもらえればなと思います。