Google広告のレポートデータをRedshiftに統合してLookerで可視化する

## 概要
Google広告で広告を掲載する際に、統計データを活用してクリック数やインプレッション数を分析することがあると思います。しかし、分析を行うためには広告データを分析基盤に集約させるという、少々面倒な作業を行う必要があります。
そこで、今回はGoogle広告のレポートをRedshiftに[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=google_ads_to_redshift)を使ってデータを統合する方法をご紹介します。
![貼り付けた画像_2020_11_02_9_36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/adb9f6ed-55d2-1f01-ab5b-dfea0366aba9.png)

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

## ゴール
Google広告のレポートデータから
![貼り付けた画像_2020_11_02_16_36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/597c85dc-ba48-441b-beef-1e1fe0a72769.png)
このようにRedshiftにデータ統合するまでを30分程度でやっていきます（作成後には最新値が自動で同期されるようにします）
![貼り付けた画像_2020_11_02_16_31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/2f7f38db-bcbf-7265-4711-5b0c8d7212c5.png)

## こんな人におすすめ
- Google広告のデータを分析基盤・DWH(データウェアハウス)に取り込む予定の方
- 広告レポートをcsvファイルにエクスポートして分析基盤に取り込むのに時間がかかり、より効率化したいと考えている方
- データ分析の前準備に疲れてしまった方

## 1. DWHと同期する手段の選定

### 1-1. DWHの選定
まずはデータをどこに集約するか、DWH（データウェアハウス）を選定します。

- `Amazon Redshift`
- `Google BigQuery`
- `MySQL`
- `PostgreSQL` など

今回は`Amazon Redshift`を利用することにします。

### 1-2.転送手段の選定
Redshiftにデータを集約することが決まったところで、次は転送するための手段を選びます。
**1.** パフォーマンスレポートをcsvデータ形式でエクスポートし、手動でRedshiftにアップロードする。
**2.** Google広告とRedshiftの各APIを、自前でプログラムを書いて連携させる。
**3.** Embulkを利用し、自前で環境を構築する
**4.** [trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=google_ads_to_redshift)を利用し、画面上で設定する。
**1.** は単発の実行であれば良いものの、定期的に取り込む必要がある場合はタイムロスが多く、非効率な作業になりがちです。
**2.** はAPIのキャッチアップ工数+プログラムを書く工数+環境構築工数が発生する他、エラー対応などの運用工数も継続的に発生します。
**3.** も2と同じくEmbulkはある程度の専門知識が必要になり、自前で環境構築・運用を行う手間が発生します。エラーの内容が専門的で、詰まると大幅に時間を浪費してしまいます。  
そこで、Embulkの課題も解決してくれて、プログラムを書かずに画面上の設定で作業が完結する、**4.**の**[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=google_ads_to_redshift)**というSaaSを利用します。

## 2. troccoでGoogle広告→Redshiftの転送自動化
### 2-0. 事前準備
[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=google_ads_to_redshift)のアカウントおよびGoogle広告のアカウントが必要です。
[無料トライアル](https://trocco.io/inquiry_trial/new?utm_medium=social&utm_source=qiita&utm_campaign=google_ads_to_redshift)も実施しているので、前もって申し込み・登録をしておいてください！
（申込時に、この記事を見た旨を記載して頂ければスムーズにご案内できます）

### 2-1. 転送元・転送先を決定
[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=google_ads_to_redshift)にアクセスし、ダッシュボードから「転送設定を作成」のボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459450/45ead314-25c9-dda0-3363-665cc0be7e3e.png)
転送元にGoogle広告、転送先にRedshiftを選択し、転送設定作成ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/ba95f296-6ace-148d-80f6-e25d93203ee3.png)
すると、設定画面になるので、転送に必要な情報を入力していきます。

### 2-2. Google広告との連携設定
転送設定の名前とメモを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/a017c227-8080-1e87-638f-cd9224b7d957.png)
転送設定の名前を決めたら、「転送元の設定」内の「接続情報を追加」ボタンを押し、Google広告の接続情報の設定を行います。
![貼り付けた画像_2020_11_02_9_51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/898782eb-276d-0a67-fe02-0297b5dfb7f3.png)
「Googleアカウント認証」のボタンを押して、データを取得したいGoogle広告のアカウントで認証を行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/aec2c4c8-cc56-acd2-2c99-6ae39b924439.png)
認証が完了しました。「Googleアカウント」の欄が埋まったので、名前を適当に入力して設定を完了します。
![貼り付けた画像_2020_11_06_9_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/7bda6952-897f-38b2-91ed-fe0e57415c7e.png)
再度転送設定画面に戻り、「接続情報を読み込む」ボタンを押すと、作成した接続情報が選択できるかと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/ee4ecbda-9f57-d4c7-c618-73b8991cb04f.png)

### 2-3.Google広告からのデータ抽出設定
これでGoogle広告との連携は完了です。次に、Google広告の取得データを設定します。  
まずは必須項目の「お客様ID」「リソースタイプ」をセレクトボックスの中から選択します。
![貼り付けた画像_2020_11_06_13_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/9787837e-dfa6-eefe-a2b0-d801bf90b60f.png)
次に「フィールド」の設定です。レポートに含める項目(カラム)を設定していきます。
クリック数・インプレッション数など、分析に必要な項目をピックアップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/a3f4ec2a-fa0c-bff7-31f6-e860e894251c.png)
次に「データ取得期間」の設定です。
取得期間を転送のたびに設定し直すのは手間がかかるので、ここではカスタム変数を使います。  
このように変数を設定することで、「１ヶ月前〜現在のデータを取得する」というような設定が可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/158c2e57-b8d5-5add-13b1-d0779af3c784.png)
以上でGoogle広告側の設定は完了です。
次は転送先のRedshiftの設定を行っていきましょう。

### 2-4. 転送先Redshiftの設定
基本的には転送元と同じ要領です。
「接続情報を追加」ボタンからRedshiftの接続設定を行い、データベース・スキーマ・テーブルを入力します
![貼り付けた画像_2020_10_23_15_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/af4acf3d-f2e8-9169-75cc-aeb022277b9f.png)
S3パケット・S3キープレフィックス・転送モードも必須項目です。これらも入力します。
![貼り付けた画像_2020_10_23_15_19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/555ee8e4-96d2-acff-c1c7-e1f39d161f5c.png)
最後に、接続確認が問題なく通るか確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/c4cc76b8-d13a-2825-c065-74dad24f9fb7.png)
これで入力は完了です。「保存して自動データ設定・プレビューへ」をクリックし、確認作業に進みましょう。

### 2-5. データのプレビュー
少し待つと、転送元のデータがプレビューされます。Yahoo!広告から取り込んだデータが表示されているのが確認できると思います。
問題なければ、「設定を完了する」を押して、スケジュールや通知設定に進みます。
![貼り付けた画像_2020_11_02_11_23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/6c63005e-da3c-dbc5-13b4-9ae190846bdf.png)

### 2-6. スケジュール設定
「スケジュール・トリガー設定」タブを開きます。
![貼り付けた画像_2020_11_06_9_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/4f9f696c-f28e-918a-2c48-66ae4035d2c7.png)
以下のように実行スケジュールを設定することで、転送を自動化することが出来ます。
![貼り付けた画像_2020_11_02_11_26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/3c894a47-456e-8cc5-7631-0c9302dc0c61.png)

### 2-7. 通知設定
必須の設定ではないですが、通知タイプ・通知条件・通知先を選択し設定を保存することで、EmailやSlackに通知を行うことが出来ます。
![貼り付けた画像_2020_11_02_11_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/d3c8ea97-3a01-742a-ec11-dd4a81922584.png)
また、必要な時のみ実行したい場合は、手動で転送を実行することも出来ます。
その場合は、転送設定詳細の「実行」ボタンを押して進めていきます。
![貼り付けた画像_2020_11_02_16_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/64533f8c-8ff9-32ef-f604-e8c4edd664dc.png)
転送が完了しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/89dbacf0-113e-d534-9266-8950447fd012.png)

## 3. Redshiftの設定
特に設定することはありません。データが溜まっているので、今すぐに分析・可視化を行うことが出来ます。
データをプレビューして確認してみます。
![貼り付けた画像_2020_11_02_16_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/a3cebbac-c04c-e834-057b-d3d1662f650f.png)
広告データがRedshiftに同期されていることが確認できました。

## 4. Lookerで可視化
それでは、これらのデータをLookerで分析してみます。  
まずはRedshiftとLookerを接続します。
管理タブを開いて「Database」の「Connections」を開きます。
![貼り付けた画像_2020_11_02_16_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/1c49b7cb-6134-5b40-b443-6c6eb80301a4.png)
接続しているデータベース一覧が表示されています。ここで「Add Connection」→「Database Connection」から接続するデータベース情報を入力します。
![貼り付けた画像_2020_11_02_16_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/758e541a-32d6-3c71-1f25-39a8083f46bb.png)
![貼り付けた画像_2020_11_02_16_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/820f9990-216b-52d5-b436-51de296832f4.png)
Redshiftのデータベースに接続できたら、次はデータを可視化するために必要なLookMLプロジェクトを作成します。
開発タブを開いて「LookMLプロジェクトの管理」に移動します。
![貼り付けた画像_2020_11_02_16_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/53220d80-d1c7-34a2-64d3-6a503c9e0726.png)
「New LookML Project」からLookMLプロジェクトを作成します。
![貼り付けた画像_2020_11_02_15_51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/0c186535-04b5-4578-aa37-148ae49f3a7d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/04ca54b5-cfc8-2cb9-bfda-1b8b7ebb1e4f.png)
「Create Project」を押したら、エディタでmodelとviewを定義します。
後々必要になるので、modelの中ではexploreを設定しておきましょう。
(書き方が分からない場合はLookerの[公式ドキュメント](https://docs.looker.com/ja/data-modeling/getting-started/model-development#adding_a_new_view_from_an_existing_database_table)を参照してください)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/1c94a248-ae4d-31fd-ec5e-6cbfc9ceadab.png)
![貼り付けた画像_2020_11_02_16_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/26e9fe6f-fb2d-6fb6-799f-6e274f03eff7.png)
これで下準備が整いました。
トップページに戻って「New」からDashboardを作成します。
![貼り付けた画像_2020_11_02_16_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/cf8f2f71-b374-ba31-0d65-7cad45ce2068.png)
白紙のダッシュボードができました。ここに各種グラフを追加していきます。「新しいTILE」を押します。
![貼り付けた画像_2020_11_02_16_24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/77a68e9e-afca-d906-cad6-90424d172bdf.png)
先ほどのmodel内で定義したExploreを選択します。
![貼り付けた画像_2020_11_02_16_25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/feb80f75-db32-8799-5d98-4d0efe9ab4b5.png)
DIMENSIONSとMEASURESを設定し、Tileに表示したいデータをプロットします。ここではキャンペーンごとのクリック数を分析しています。
![貼り付けた画像_2020_11_02_16_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/7e79f4b8-b89a-87ce-e26c-e8e448d1909a.png)
これで一つTileが完成しました。この調子で他のTileも作成すると、今回のゴールであるGoogle広告の広告データダッシュボードが出来上がります。
![貼り付けた画像_2020_11_02_16_29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/34f93088-6e26-3b6f-3f1e-0a89d1f60ec8.png)
![貼り付けた画像_2020_11_02_16_31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673168/31eb0fdd-b0f6-260d-ab5d-0af9241198c2.png)

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

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

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