Google Search ConsoleのデータをAmazon Redshiftに自動同期し、Lookerで可視化する

## 概要
Google Search Consoleを使うことでGoogle検索での表示回数・掲載順位を把握したり、SEO上の問題点を修正してWebサイトの注目度を高めることができます。しかし、絶えず集められるデータをその都度分析し、最新の状態に保つのにはコストがかかります。そこで今回は、[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=searchconsole_to_redshift)という分析基盤向けデータ統合サービスを使い、Google Search Consoleデータの抽出自動化＋DWH（データウェアハウス）への統合＋可視化までやってみようと思います。

今回、データの転送手段として採用した[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=searchconsole_to_redshift)は、Google Search Consoleの他にも、様々な広告・CRM・DBなどのデータソースにも対応しています。
[troccoの使い方まとめ（CRM・広告・データベース他）](https://qiita.com/hiro_koba_jp/items/2b2caa040804e402bda7)

![serachconsoleredshift.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/65c4acf5-750d-b4ed-4aa2-cb6c8697e2c6.png)





## ゴール
Google Search Consoleのデータを下のようにAmazon Redshiftに統合し
![データ確認.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/9b11205f-a1af-c694-0cec-26dc05922dff.png)


Lookerで可視化します(作成後は自動で最新値に更新することも可能です）
![ダッシュボード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/b9dcd7db-4fb8-552b-81e3-7bdfbe1d7472.png)







## こんな人におすすめ
・Search ConsoleのデータをRedshiftに自動的に蓄積させたい
・Google検索での表示回数・掲載順位について自動的に分析できるようにしたい
・Google Search Consoleをデータ元として利用したい

## 1. troccoでGoogle Search Console→Amazon Redshiftの転送自動化
### 1-0. 事前準備
データの転送のためには[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=searchconsole_to_redshift)のアカウント・Googleアカウントが必要です。

無料トライアルを実施しているので、事前に申し込み・登録しておいてください！
[https://trocco.io/lp/index.html](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=searchconsole_to_redshift)
（申込の際に、この記事を見た旨を記載して頂ければご案内がスムーズに行えます）



### 1-1. 転送元・転送先を決定
[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=searchconsole_to_redshift)にアクセスして、ダッシュボードから「転送設定を作成」のボタンを押します。
![ダッシュボード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/66642d23-a71f-7a0c-1fcd-5682bbda4ef9.png)




転送元に「Google Search Console」を指定し、転送先に「Amazon Redshift」を選択して転送設定作成ボタンを押します。
![接続情報.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/04806e9b-3059-c293-c636-655a0948973b.png)



すると、設定画面になるので、必要な情報を入力していきます。
### 1-2. Google Search Consoleとの連携設定
あとで見たときに自分で分かるように転送設定の名前とメモを入力します。
![転送設定の新規作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/6ad53bd3-2771-44ce-4759-328c310c283f.png)



次に「転送元Google Search Consoleの設定」内の「接続情報を追加」ボタンを押します。
![接続情報追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/25c0961c-4643-a7be-9abf-e0966dd0109c.png)



別のタブでGoogle Search Consoleの接続情報の新規作成画面が開きます。
接続情報を作成するためにJSON Keyが必要になります。

![searchconsole接続情報.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/fa8b6470-ab81-608d-0a26-5cb7915e9e59.png)



問題がなければ保存します。再度転送設定画面に戻り、接続情報の「接続情報を読み込む」ボタンを押すと、先ほど作成した接続情報が選択できるようになります。

![sample追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/eb40ad9f-2440-c0ce-e055-2778d0fcbcf2.png)




### 1-3. Google Search Consoleからのデータ抽出設定
次に、どのようなデータを取得するかを設定していきます。
今回は分析したいサイトについての日付、検索クエリ、リンクに関する情報を取得していきます。


必要なデータを入力していきます。

○サイトURL
転送したいデータのサイトURLを指定してください。

○サーチタイプ
`web, image, video`
の中から選択します。
今回はwebページ(https://trocco.io/) の分析を行うので「web」を選びます。

○データ取得期間
Google Search Consoleの仕様上、取得できるデータは3日以上前のデータに限られるので要注意です。

○ディメンション
データの取得結果をグループ化するための項目です。
`date, country, device, page, query, searchAppearance`
を指定することができます。

![転送元②.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/42966d28-60a8-e00d-ca88-6493496b16e4.png)




### 1-4. 転送先Amazon Redshiftの設定
転送元と同様に設定していきます。まず、Redshiftの接続情報を作成していきます。

転送先となるRedshiftの接続先ホスト、接続先ポート、ユーザー名、パスワードを設定し、AWSのアクセスキーIDとシークレットアクセスキーを設定する必要があります。
AWSのアクセスキーとシークレットアクセスキーの取得方法は以下の通りです。
>1.[IAM コンソール](https://console.aws.amazon.com/iam/) を開きます。
2.ナビゲーションメニューで [ユーザー] を選択します。
3.IAM ユーザー名 (チェックボックスではありません) を選択します。
4.[認証情報] タブを開き、次に [アクセスキーの作成] を選択します。
5.新しいアクセスキーを表示するには、[表示] を選択します。認証情報は次のようになります。
6.アクセスキー ID: AKIAIOSFODNN7EXAMPLE
シークレットアクセスキー: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
キーペアをダウンロードするには、[.csv ファイルのダウンロード] を選択します。キーを含む .csv ファイルを安全な場所に保存します。

![redshift設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/a2a6252a-387e-29b6-3fc0-4ed5cc0d49f8.png)

先ほど作成した接続情報を選択し、データベース名、スキーマ、テーブルなど必要な情報を設定していきます。（データベース、スキーマ、テーブルは事前にRedshiftで作成しておく必要があります。）

![転送設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/215c317c-a8dd-f2be-a73b-3b2a3c1f4b98.png)



これで入力は完了です。「保存して自動データ設定・プレビューへ」をクリックし、確認作業に進みましょう。

### 1-5. データのプレビュー
少し待つと、転送元のデータがプレビューされます。ここではGoolge Search Consoleから取り込んだデータが表示されています。

![データを確認.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/bb1aaa51-d15f-3767-0b71-32a48bcfd19b.png)



転送したいデータが取れているので、設定を完了します。
転送設定の一覧から作成した設定を選び「スケジュール・通知設定」に進みます。

### 1-6. スケジュール・通知設定
「スケジュール・トリガー設定」タブを開きます。

![スケジュール追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/89bf019e-3b19-6087-ae39-f428cc4ef0c1.png)


「スケジュールを追加」ボタンを押すと、以下のようなモーダルが出てきます。ここで実行スケジュールを設定することで、転送を定期的に実行し自動化することが出来ます。
![スケジュール保存.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/c0ed184d-e4f6-ba69-6c42-44449fa85b02.png)




### 1-7. データ転送ジョブの実行
設定は以上です。最後に、手動で転送ジョブを実行し、Redshiftにデータを送ります。
手動で実行する場合はジョブ詳細画面の「実行」ボタンを押します。
![実行.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/296db1a5-0612-ef66-2e0c-e22fcf792ee8.png)




これで転送は完了です！

## 2. Amazon Redshiftの設定
特に設定することはありません。設定で選択したテーブルにデータが転送されているので、今すぐに分析・可視化を行うことが出来ます。
データがきちんと送られているかをプレビューで確認してみます。
クエリエディタにSQL文を入力し、データをSELECTします。

```
SELECT * FROM qiita_test_fromsearchconsole.qiita
```

![データプレビュー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/ca5d8879-7437-bc4b-65eb-6cd72d8435b0.png)

そうすると、以下のようなデータが表示されます。
![データ確認.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/9b11205f-a1af-c694-0cec-26dc05922dff.png)

転送されていることが確認できました！

## 3. Lookerで可視化
まずはRedshiftとLookerを接続します。 管理タブを開いて「データベース」の「接続」を開きます。 
![looker接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/b0c30932-2897-2e2d-573b-930f57e7d1c5.png)

接続しているデータベース一覧が表示されています。ここで「Add Connection」を選択し、接続設定を行う画面が表示れるので、情報を入力していきます。
![addconnection.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/0fb758d6-073d-48db-47a7-28ba6b6fe234.png)
![connections.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/43106b01-5dae-12a0-4fd2-6b7e79d496b0.png)

Redshiftのデータベースに接続できたら、次はデータを可視化するために必要なLookMLプロジェクトを作成します。 開発タブを開いて「LookMLプロジェクトの管理」に移動します。 

![プロジェクトの管理.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/4a6bf16b-e4e2-5b4a-401f-4b7ba6c7f9ab.png)

「New LookML Project」からLookMLプロジェクトを作成します。 
![newlookerml.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/04bb62b5-3bbc-b6b3-4508-96a35ee93f53.png)

![newproject.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/acf4c6b0-6c55-b35b-36ba-7e1cd4d65159.png)


「Create Project」を押したら、エディタでmodelとviewを定義します。 後々必要になるので、modelの中ではexploreを設定しておきましょう。 (書き方が分からない場合はLookerの[公式ドキュメント](https://docs.looker.com/ja/data-modeling/getting-started/model-development)を参照してください)
![model.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/18c277b7-38d1-5685-f903-581bbbc77816.png)
![view.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/dfaa667d-e51e-070c-fc07-d038c75db061.png)


これで下準備が整いました。 トップページに戻って「New」からDashboardを作成します。 
![newdash.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/9bf025e6-72f2-b47d-0614-fd1256d87c20.png)

白紙のダッシュボードが作成されるので「Qiita_Searchconsole_Redshift」と名前をつけます。
そして「Dashborardの編集」→「タイルの追加」を選択し、先ほどのmodel内で定義したExploreを選択します。

![explorer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/d1a64967-e04c-6822-3b6d-f2f0b8d22048.png)

ディメンションとメジャーを設定し、Tileに表示したいデータをプロットします。例えば、リンクにおける広告の表示回数について分析したいとき、ディメンションに「リンク」とメジャーに「インプレッション数」を選択します。

![リンクインプレッション.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/f1a90351-9f47-5f2d-5193-cd692975ec33.png)

今回はクリック数、インプレッション数を分析したいのでダッシュボードにまとめていきます。

![ダッシュボード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/809876a5-48d9-346b-b9e9-1f1a69e3b338.png)

完成しました！






## まとめ
いかがでしたでしょうか。[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=searchconsole_to_redshift)を使うと、Google Search Consoleのデータでも自動でAmazon Redshiftにまとめていくことができるほか、100万規模の大きなデータからそうではない小さなデータまで複雑なコーディングをせず[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=searchconsole_to_redshift)の画面上の設定のみでデータの転送が可能になります。
実際に弊社サービスの[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=searchconsole_to_redshift)においても、マーケティングKPI等をこのような流れで収集・分析しています。
ぜひ広告データ分析の際にはご活用ください。
[https://trocco.io/lp/index.html](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=searchconsole_to_redshift)

実際に試してみたい場合は、[無料トライアル](https://trocco.io/inquiry_trial/new?utm_medium=social&utm_source=qiita&utm_campaign=searchconsole_to_redshift)を実施しているので、この機会にぜひ一度お試しください。（申込時に、この記事を見た旨を記載して頂ければスムーズにご案内することができます）

その他にも広告やデータベースなど、様々な分析データをETL・転送した事例をまとめました。
[troccoの使い方まとめ（CRM・広告・データベース他）](https://qiita.com/hiro_koba_jp/items/2b2caa040804e402bda7)