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


## 概要
Criteo広告を出稿した際に、クリック、インプレッション、コンバージョンといった数字の分析は、広告効果を測る上で非常に重要になってきます。しかし、そのような分析を行うには、多くのデータを分析基盤に統合するという手間のかかる作業が待っています。
そこで今回は[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=criteo_to_redshift)という分析基盤向けデータ統合サービスを使い、Criteo広告のレポートデータの抽出自動化＋DWH（データウェアハウス）への統合＋可視化までやってみようと思います。

データの転送手段として採用した[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=criteo_to_redshift)は、Criteo広告以外に、Yahoo!検索広告、Google広告、Twitter広告、LINE広告などにも対応しております。
[troccoの使い方まとめ（CRM・広告・データベース他）](https://qiita.com/hiro_koba_jp/items/2b2caa040804e402bda7)
![criteoredshift.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/aeba2e18-c5c4-e32b-1bb6-3aef7df13037.png)

## ゴール
Criteo広告のデータをこのように可視化します。作成後は自動で最新値に更新することも可能です。
![データ可視化.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/d1943322-0eb0-6d82-a48a-f14160868017.png)



## こんな人におすすめ
* Criteo広告のレポートデータを分析基盤・DWH（データウェアハウス）に取り込みたい方
* 広告レポートをCSVファイルにエクスポートして分析基盤に取り込むのに時間がかかり、より効率化したいと考えている方
* 広告管理画面からデータ取得を行う作業に疲れている方



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

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


### 1-1. 転送元・転送先を決定
[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=criteo_to_redshift)にアクセスして、ダッシュボードから「転送設定を作成」のボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1196497/9af9f10d-6876-12cb-0ba7-a2da0c2ecd9b.png)

転送元に「Criteo」を指定し、転送先に「Amazon Redshift」を選択して転送設定作成ボタンを押します。
![転送設定の新規作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/9263ef26-9f98-9b6c-aef8-b09db1e0b3f7.png)


すると、設定画面になるので、必要な情報を入力していきます。


### 1-2. Criteoとの連携設定
あとで見たときに自分で分かるように転送設定の名前とメモを入力します。
![概要設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/b71d202d-ad36-e7e2-5946-1b35fa4c869a.png)

次に「転送元の設定」内の「接続情報を追加」ボタンを押します。
![転送元設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/41fddc21-7594-0b03-678f-5579de7e4b46.png)

別のタブで接続情報の新規作成画面が開きます。
データを取得したいCriteoアカウントの情報を入力し、接続情報を作成します。
![Criteo接続設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/2632da87-9942-0323-698e-dfb68b43255a.png)



再度転送設定画面に戻り、接続情報の「再読込」ボタンを押すと、先ほど作成した接続情報が選択できるようになります。
![接続情報追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/53b8c849-8289-fb6c-1fad-dcfec44e4572.png)
これでCriteoとの連携は完了です。


### 1-3. Criteoからのデータ抽出設定
次に、どのようなデータを取得するかを設定していきます。
今回は日別のクリック数に関するデータを取得してみます。
![転送元設定②.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/d9cc9a0d-c0a7-6bc7-c2f3-655b5bdaf0de.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/502f4396-0c7d-ffd6-84f0-75553d509eba.png)


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


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

![スキーマプレビュー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/5306fb12-d98c-6d6a-8f04-23223ded7ac0.png)


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

### 1-6. スケジュール設定
「スケジュール・トリガー設定」タブを開きます。
![スケジュール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/4412dd71-852a-6aba-8d9a-335c40c5f0b7.png)


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


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

これで転送は完了です！


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

クエリエディタにSQL文を入力し、データをSELECTします。

```
SELECT * FROM qiita_test_from_criteo.sample
```
![redshift.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/8f784a0a-52cc-a5aa-bc4e-5cba59565781.png)

そうすると、以下のようなデータが表示されます。
![redshiftデータ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/6711f1c8-9d85-009e-525c-a62228c4a0eb.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)

![connectionsetting.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/acd388b8-b557-e510-39aa-46da605d9382.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/99aea7f4-2980-1d94-860e-7e9be1893367.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/f141734f-56a1-2fa5-9f2f-55b9a47e57c8.png)
![views定義.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/85bb0905-9d09-2554-ef6e-b80f540aeb07.png)

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

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

![explorer選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/9940466b-ca35-9ac9-2a97-88d72b31ef5a.png)


ディメンションとメジャーを設定し、Tileに表示したいデータをプロットします。ここでは日別のクリック数を分析していきたいので、ディメンションに「日付」とメジャーに「クリック数」を選択します。

![データ表示.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/e926fce6-dad3-0bf9-bc48-cf54e7f4b658.png)

クリック数の推移を分析したいので折れ線グラフに変更し、日付順に並び替えます。
![データ可視化.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121252/76f8da25-60e4-106b-b240-771e998fe09c.png)


## まとめ
いかがでしたでしょうか。[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=criteo_to_redshift)を使うと、管理画面を触ることなく、簡単にCriteo広告のレポートデータを取得し、DWH(Amazon Redshift)に貯めることが出来ました。
また、BigQueryにデータを貯めると、データポータルというGoogleの無料ダッシュボードですぐに可視化することが出来ます。
実際に弊社サービスの[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=criteo_to_redshift)においても、マーケティングKPI等をこのような流れで収集・分析しています。
ぜひ広告データ分析の際にはご活用ください。
[https://trocco.io/lp/index.html](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=criteo_to_redshift)

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

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