CData Software Blog

クラウド連携のCData Software の技術ブログです。

日々の Google Search キーワード検索結果をBigQueryにレプリケートして検索順位をトラッキング:CData Sync

f:id:sugimomoto:20191220185119p:plain

こんにちは。CData Software Japan リードエンジニアの杉本です。

みなさんは Google Search の順位って気にされていますか? ビジネスユースでは、Google Adによって、特定の検索結果の上位に広告を出すというアプローチを取っている方も多いかと思いますが、やはり通常のコンテンツの力・SEOによって上位に上がってくる検索結果は強いものです。

ただ、自分達の作ったコンテンツが今どのあたりに存在していて、どのくらいの順位に変動していっているのか、日々確認するのは大変じゃないでしょうか。

今日はそんな Google Search の検索結果を毎日BigQueryにレプリケートしてしまい、自分たちのコンテンツの順位をトラッキングするための方法を紹介したいと思います。

最終的な完成イメージ

最終的には日々の検索結果が以下のGoogle BigQuery GoogleSearchResultというテーブルに格納されます。

f:id:sugimomoto:20191220184628p:plain

100位までのランキングを毎日取得する感じです。

あとは、Google Data Portalなどで可視化できるという流れです。

必要なもの

必要なものは以下の通りです。CDataSyncは30日間の無償版が提供されていますし、Google Search APIGoogle BigQueryは無償枠があるので、試すだけであれば無料で行えます。

実施手順

それでは、実際にやってみましょう。

Google BigQuery の準備

まずは、データの格納先となる Google BigQueryのプロジェクトとデータセットを構成しておきます。

なお、今回はあらかじめ専用のアカウントを作って対応しています。

手順は特に難しくありません。GCPの管理コンソールへ移動し、新しいプロジェクトを作成

f:id:sugimomoto:20191220184635p:plain

BigQuery に移動し、プロジェクト配下にデータセットを作っておきます。ここにGoogle Search の結果がテーブルとして格納されます。

f:id:sugimomoto:20191220184640p:plain

以上で BigQuery 側の準備は完了です。

Google Seach API Keyの準備

次にGoogle Search APIにアクセスするためのカスタム検索エンジン API Keyを準備します。

以下のURLにアクセスし検索エンジンの追加を行います。

https://cse.google.com/cse/all

f:id:sugimomoto:20191220184645p:plain

次に検索エンジンの設定をするのですが、検索するサイトは今回最終的にはなくしてしまうので、適当な値を入れておきます。そして、対象の言語と任意の名称を入力し、作成をクリックしてください。

f:id:sugimomoto:20191220184650p:plain

次に「設定」に移動し、登録していたダミーのサイトを削除

f:id:sugimomoto:20191220184656p:plain

そして、「プログラム的なアクセス」から「Custom Search JSON API」の「使ってみる」をクリックします。

f:id:sugimomoto:20191220184701p:plain

クリックすると、以下のページにリダイレクトされるので「Get a Key」をクリックしてください。

f:id:sugimomoto:20191220184708p:plain

先程作成したGCPのProjectを選択し、確認事項に同意の上、「NEXT」をクリック

f:id:sugimomoto:20191220184714p:plain

すると、API Keyを取得できるので、これを控えておきます。

f:id:sugimomoto:20191220184718p:plain

CDataSyncのインストール

それでは、取得した情報を元にCDataSyncの設定を行っていきましょう。

CDataSyncはインストール型のソフトウェアなので、以下のURLからダウンロードして、任意のPCでセットアップを行います。

https://www.cdata.com/jp/sync/

f:id:sugimomoto:20191220184726p:plain

セットアップ後、CData Syncの画面がブラウザで立ち上がるので、セットアップ時に入力したパスワードとユーザー名「admin」を入力して、ログインします。

f:id:sugimomoto:20191220184734p:plain

ログイン後「情報」タブに移動し、「30日間の評価版をアクティベート」を行えば、CDataSyncの初期設定は完了です。

f:id:sugimomoto:20191220184740p:plain

Google Search データソースの設定

まずはデータのSyncを行うためのデータソースの設定を行っていきましょう。

CDataSyncでは任意のデータソースを自由に追加して、連携することが可能です。

デフォルトでは Google Searchが含まれていないため、「接続」に移動し「+ Add More」をクリックし、追加を行います。

f:id:sugimomoto:20191220184749p:plain

f:id:sugimomoto:20191220184822p:plain

一覧の中から「Google Seach」を検索し、追加します。

f:id:sugimomoto:20191220184827p:plain

「ダウンロード&インストール」をクリックし、CDataSyncを再起動すれば

f:id:sugimomoto:20191220184833p:plain

以下のようにGoogle Search のデータソースアイコンが追加されます。

f:id:sugimomoto:20191220184839p:plain

次に接続設定です。Google Searchのアイコンをクリックすると、以下のような画面が表示されるので「接続文字列」のラジオボタンをクリックし、事前に入手していた情報を元に以下のような接続文字列を入力します。

API Key=XXXXX;Custom Search Id=XXXXX;

入力後、接続テストを実施し、成功のメッセージが表示されたら、設定を保存しましょう。

f:id:sugimomoto:20191220184844p:plain

BigQueryへの同期先設定

続いて、同期先となるBigQueryへの接続を構成します。

「接続」→「同期先」から「Google BigQuery」を選択し

f:id:sugimomoto:20191220184850p:plain

あらかじめ作成しておいた、「ProjectId」と「Dataset Id」を入力し、「接続」をクリックします。

クリックすると、OAuthの認証プロセスが開始されますので、対象アカウントでログインし、アクセス許可を承認してください。承認後、設定を保存すれば準備完了です。

f:id:sugimomoto:20191220184856p:plain

以下のように接続情報が2種類構成されていればOKです。

f:id:sugimomoto:20191220184902p:plain

ジョブの作成

最後に実際の処理となる連携ジョブを作成してみましょう。ジョブのタブから「ジョブを追加」をクリックします。

f:id:sugimomoto:20191220184907p:plain

データソースに「Google Search」、同期先に「Google BigQuery」を選択し、「作成」をクリックします。

f:id:sugimomoto:20191220184912p:plain

ジョブの画面に移動したら「カスタムクエリの追加」をクリックし、ここで検索文などの絞り込みクエリを指定します。

f:id:sugimomoto:20191220184917p:plain

使用するカスタムクエリの例は以下のようなものになります。

CACHE GoogleSearchResult SELECT ROW_NUMBER() AS [RANK], CURRENT_TIMESTAMP, * FROM [WebSearch] WHERE [SearchTerms] = 'kintone C#'

「GoogleSearchResult」が実際にBigQueryへ生成されるテーブル名

「WHERE [SearchTerms] = 'kintone C#'」の「'kintone C#'」部分が検索対象となるキーワードです。これを任意の文字列に変更してください。

f:id:sugimomoto:20191220184924p:plain

保存後、試しに実行してみましょう。対象のジョブをチェックし「実行」ボタンをクリックします。

f:id:sugimomoto:20191220184929p:plain

少しの間、実行を待つと、以下のようにジョブの完了結果が表示されます。

f:id:sugimomoto:20191220184936p:plain

実際にBigQueryのテーブルを見てみると、以下のように検索結果が保存されたことがわかります。

f:id:sugimomoto:20191220184942p:plain

なお、Google Custome Seach APIは1日1000リクエストまで実行でき、CData Syncはデフォルトで上位100件を取得します。

そのため、1日あたり10キーワードまで検索結果を取得できます。もちろん有償APIライセンスを使うことで、より多くの検索キーワードの登録が可能です。

ジョブのスケジュールの設定

最後にジョブのスケジュール設定を行いましょう。

ジョブの画面から「スケジュール」タブに移動し、スケジュールを有効化、Dailyで指定時間を入力すれば、毎日その時間に検索結果をBigQueryに同期するようになります。

f:id:sugimomoto:20191220184948p:plain

おわりに

今回は個人的にもビジネス的にも気になるトピックでCDataSyncを使ってみました。

Google Search APIが存在するというのを知らない方も多いかと思いますが、是非気になる検索ワードを使って、試してもらえればなと思います。