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


## 概要
Google Analyticsを使うことでWebサイトなどのパフォーマンスを調べたり、アクセス解析をして改善点を見つけることができます。しかし、絶えず集められるデータをその都度分析し、最新の状態に保つのにはコストがかかります。そこで今回は、[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=analytics_to_redshift)という分析基盤向けデータ統合サービスを使い、Google Analyticsデータの抽出自動化＋DWH(データウェアハウス)への統合＋可視化までやってみようと思います。

今回、データの転送手段として採用した[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=analytics_to_redshift)は、Google Analyticsの他にも、様々な広告・CRM・DBなどのデータソースにも対応しています。
[troccoの使い方まとめ（CRM・広告・データベース他）](https://qiita.com/hiro_koba_jp/items/2b2caa040804e402bda7)
![anared.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/1e22e060-0962-090e-712e-bb9038988279.png)



## ゴール
以下のようなGoogle AnalyticsのデータをAmazon Redshiftに統合し、
![スキーマana.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/14c62339-e427-48aa-1c10-f4ffd34a6969.png)



↓画像のようなグラフをを30分くらいで作り上げます（作成後は自動で最新値に更新することも可能です）
![完成①.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/4d151298-1c21-14bb-6efd-d3e4c6f33a22.png)




## こんな人におすすめ
・Google Analyticsに備わっている機能以外の分析をしたい
・Google Analyticsでは難しいページごとのミクロな分析を行いたい
・Google AnalyticsのデータをAmazon Redshiftで分析したい



## 1. troccoでGoogle Analytics→Amazon Redshiftの転送自動化
### 1-0. 事前準備
データの転送のためには[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=analytics_to_redshift)のアカウント・Googleアカウントが必要です。
![anared新規.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/061ce7d0-8f79-b15a-c13c-5da1de1447f9.png)

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


### 1-1. 転送元・転送先を決定
[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=analytics_to_redshift)にアクセスして、ダッシュボードから「転送設定を作成」のボタンを押します。
<img width="1792" alt="qiita_20200827_2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697569/098f74e5-a834-6b9f-0ea2-2b9c592a6169.png">



転送元に「Google Analytics」を指定し、転送先に「Amazon Redshfit」を選択して転送設定作成ボタンを押します。
![anared新規.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/27845e49-ce66-4cee-c5f1-762a292d9b76.png)





すると、設定画面になるので、必要な情報を入力していきます。
### 1-2. Google Analyticsとの連携設定
あとで見たときに自分で分かるように転送設定の名前とメモを入力します。
![anared①.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/a6abfc11-d5c7-18e9-cd02-93dbb2bd8bc7.png)


次に「転送元Google Analyticsの設定」内の「接続情報を追加」ボタンを押します。
![転送元ana.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/4a498462-d037-72fe-0036-daf31004df4e.png)





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

![新規接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/e734b474-b274-3369-3f40-49250fcac420.png)



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


![ana接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/9cf777a3-d248-74af-d6e6-74dc0f0b26d0.png)


### 1-3. Google Analyticsからのデータ抽出設定
次に、どのようなデータを取得するかを設定していきます。

- ビューID
データを取得するアナリティクスのビューIDを入力します。
ビューIDはGoogle Analyticsの管理ページ→ビュー設定で確認できます。

- タイムスタンプの形式
レポートのタイムスタンプの形式を選択します。
なお、ここで設定した値はディメンションでは設定できません。

- ディメンンション
取得したいディメンションの名前を入力します。
ディメンションは最大8個まで設定できます。
設定できる値については[Google Analytics公式](https://ga-dev-tools.web.app/dimensions-metrics-explorer/)をご参照ください。

- 指標
取得したい指標の名前を入力します。
ディメンションは最大10個まで設定できます。
設定できる値については[Google Analytics公式](https://ga-dev-tools.web.app/dimensions-metrics-explorer/)をご参照ください。

![スクリーンショット 2021-07-29 10.16.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/54ef8eb7-eaed-77a2-4c91-6fcc87be6d5e.png)


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

転送先となるAmazon 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 ファイルを安全な場所に保存します。

※ [AWS公式ドキュメント](https://docs.aws.amazon.com/ja_jp/powershell/latest/userguide/pstools-appendix-sign-up.html)より引用

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

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

![red接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/4a3eb6e4-eabe-8cd9-7978-556f94977e8d.png)




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

### 1-5. データのプレビュー
少し待つと、転送元のデータがプレビューされます。ここではGoogle Analyticsから取り込んだデータが表示されています。
![anaredスキーマ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/df67ebea-e2b7-2300-ad8c-3443c587e000.png)





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

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

![anaredスケ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/2023caaa-27f5-33e3-c6a5-8d3381911daa.png)



「スケジュールを追加」ボタンを押すと、以下の画像のような入力欄が出てきます。ここで実行スケジュールを設定することで、転送を定期的に実行し自動化することが出来ます。
![anared保存.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/fdd2344f-fa41-c02d-4ba5-e0f58c4ec847.png)




### 1-7. データ転送ジョブの実行
設定は以上です。最後に、手動で転送ジョブを実行し、Amazon Redshiftにデータを送ります。
手動で実行する場合はジョブ詳細画面の「実行」ボタンを押します。
![anared実行.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/fa366302-c364-032d-34f6-10046b1df34e.png)



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

```
SELECT * FROM qiita_test_from_analytics.qiita
```

![redプレビュー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/b3b91801-7e00-b673-5880-37af4fec5e10.png)


そうすると、以下のようなデータが表示されます。
![redデータ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/08e78466-397e-8c71-ac57-eccb41b83965.png)


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

## 3. Lookerで可視化
まずはAmazon 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)
![anadata.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/c9e93e87-de53-483b-304f-f67f4efb7f0e.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)

![anaproject.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/d76db7b3-16e0-e99c-c1bf-17a427f889ea.png)


「Create Project」を押したら、エディタでmodelとviewを定義します。 後々必要になるので、modelの中ではexploreを設定しておきましょう。 (書き方が分からない場合はLookerの[公式ドキュメント](https://docs.looker.com/ja/data-modeling/getting-started/model-development)を参照してください)
![models.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/10722edb-0992-7007-fa4d-a537e07852c6.png)
![views.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/fa224bf9-3ef0-f102-f7ef-9e6cfdfe6c0d.png)

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

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

![anaexplore.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/e9e75ef1-771d-5d74-7d30-91d6a4cd69c4.png)


ディメンションとメジャーを設定し、Tileに表示したいデータをプロットします。例えば、時間ごとの閲覧回数について分析したいとき、ディメンションに「日付」とメジャーに「閲覧数」を選択します。

![lookerデータ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/34aad507-bf37-5c2f-ef12-1404eb125d10.png)


フォントや題名をつけたりしてダッシュボードにまとめていきます。
![完成①.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/3fba0664-fe7e-f869-55df-80cea18de8bf.png)



完成しました！


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

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

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