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


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

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

![consolesnow.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/f7d0c615-ac19-6aee-f6ea-b78c10e1201a.png)






## ゴール
Google Search Consoleのデータを下のようにSnowflakeに統合し
![searchconsole_testプレビュー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/f308f482-f28d-766b-77a9-eb3d53cfa03e.png)

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


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

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

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



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




転送元に「Google Search Console」を指定し、転送先に「Snowflake」を選択して転送設定作成ボタンを押します。
![consnow転送新規.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/196b47e4-a642-6a3f-195f-0dec00e7c2fa.png)



すると、設定画面になるので、必要な情報を入力していきます。
### 1-2. Google Search Consoleとの連携設定
あとで見たときに自分で分かるように転送設定の名前とメモを入力します。
![consnow作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/f9a83eb1-b583-d94d-3b47-207957e9f405.png)




次に「転送元Google Search Consoleの設定」内の「接続情報を追加」ボタンを押します。
![consnow追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/2218bb30-0ce4-55fd-4d45-81ad52ed90dd.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`
を指定することができます。

![consnow②.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/6c6d4152-d18c-f406-5944-4b7e0759a4e1.png)

### 1-4. 転送先Snowflakeの設定
転送元と同様に設定していきます。Snowflakeの接続情報を作成していきます。
転送先となるSnowflakeの接続先ホスト、ユーザー名、及びパスワードが必要になります。

![snowflake追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/1fa11954-2168-7e2d-879c-042a36d080d9.png)


先ほど作成した接続情報を選択し、転送先とするウェアハウス、データベース名、スキーマ名を設定します。
転送モードに関しては`replace`を選択します。各転送モードの詳細は[こちら](https://docs.trocco.io/s/article/転送先-Snowflake)の「転送モードについて」をご確認ください。

![searchconsole_test.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/21adc2f9-3f75-ec04-09df-73bf350a69e8.png)





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



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

![consnowプレビュー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/02ec63bc-faaf-fc1d-f0f0-429acaf57895.png)




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

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

![consnowスケジュール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/027e0807-9db3-bff2-87ec-7d10b36d39a2.png)



「スケジュールを追加」ボタンを押すと、以下のようなモーダルが出てきます。ここで実行スケジュールを設定することで、転送を定期的に実行し自動化することが出来ます。
![consnowすけ追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/3e58fe19-ed70-cb8e-c53d-259cfc412b61.png)




### 1-7. データ転送ジョブの実行
設定は以上です。最後に、手動で転送ジョブを実行し、Snowflakeにデータを送ります。
手動で実行する場合はジョブ詳細画面の「実行」ボタンを押します。
![consnow実行.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/4963fbbf-5173-9ec8-a9b7-928bfe077a3b.png)

##2. Snowflakeの設定
特に設定することありません。データが転送されているので、今すぐに分析・可視化を行うことが出来ます。
データがきちんと送られているかは「データをプレビュー」押すことで確認してみます。
![searchconsole_testプレビュー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/092c5c16-5771-fdf3-211f-aa143fd31777.png)

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




## 3. Lookerで可視化
まずはSnowflakeと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)
![consnow_connection.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/2d55d5d0-ea05-0da4-2b24-0641b46399ae.png)

Snowflakeのデータベースに接続できたら、次はデータを可視化するために必要な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)

![consnow_newproject.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/d2ca59eb-3a1e-d82b-1f8f-bd8d4de8e907.png)



「Create Project」を押したら、エディタでmodelとviewを定義します。 後々必要になるので、modelの中ではexploreを設定しておきましょう。 (書き方が分からない場合はLookerの[公式ドキュメント](https://docs.looker.com/ja/data-modeling/getting-started/model-development)を参照してください)
![consnow_model.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/e7207ce0-60c6-5f99-e7a0-4d52fcd2488b.png)
![consnow_views.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/c26a72cb-02ca-2573-1d6c-765c7df3521a.png)




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

白紙のダッシュボードが作成されるので「Searchconsole_snowflake_ダッシュボード」と名前をつけます。
そして「Dashborardの編集」→「タイルの追加」を選択し、先ほどのmodel内で定義したExploreを選択します。
![consnow_explore.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/2b114444-96a2-7d24-cb24-014a781b3267.png)



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

![consnow_例.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/8a3235cf-2548-1364-d2f7-1553943af27f.png)

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

![consnow_ダッシュボード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/ebb1392c-0c6e-7ff3-cf65-fa179ce2af7b.png)


完成しました！






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

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

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