Twitter広告のレポートをBigQueryに自動同期し、Googleデータポータルで可視化する

## 概要
Twitter広告のレポートデータを分析する際に、クリック、インプレッション、エンゲージメントデータなどの分析は非常に重要になってきます。しかし、そのような分析を行うには、多くのデータを分析基盤に統合するという手間のかかる作業が待っています。
そこで、今回はTwitter広告のレポートデータをBigQueryに[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=twitter_ad_to_bigquery)を使ってデータを統合し、Googleデータポータル(旧Data Studio)で可視化するまでを行ってみます。

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

![trocco概念図(広告可視化) (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61228/f3b47bb7-e2a3-d0c1-91df-aee7d0bcb10b.png)


## ゴール
このようなTwitter広告のレポートデータから
![広告マネージャー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61228/c4c41bda-9d2e-4ab6-f694-06b60fac3eea.png)


こんなのを30分くらいで作り上げます（当然、作ったあとは自動で最新値が更新されるようにします）
![data_portal_dashboard.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/38554562-89ae-f6b4-d94d-7e3f4d57289f.jpeg)
## こんな人におすすめ
- Twitter広告のレポートデータを分析基盤・DWHに取り込みたい方
- 分析基盤・DWHにTwitter広告のレポートデータを毎回CSVエクスポートし取り込んでおり、時間の浪費に悩んでいる方 
- 様々なデータ取得の作業に疲れている方

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

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

今回は`Google BigQuery`を利用することにします。
### 1-2. Twitter広告のレポートデータをBigQueryに転送する4つの方法
BigQueryにデータを集約することが決まったので、次は転送するための手段を検討していきます。

**1.** Twitter広告のレポートデータをCSV形式でエクスポートし、手動でBigQueryにアップロードする。
**2.** Twitter広告とBigQueryの各APIを、プログラムを書いて連携する。
**3.** Embulkを利用し、自分で環境を構築する
**4.** [trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=twitter_ad_to_bigquery)を利用し、画面上で設定する。

**1.** は単発の実行であればよいのですが、定期的な取り込み用途だと毎回同じ作業を繰り返すことになり、非効率な作業になりがちです。
**2.** はAPIのキャッチアップ工数+プログラムを書く工数+環境構築工数が発生する他、エラー対応などの運用工数も継続的に発生します。
**3.** も2と同じくEmbulkはある程度の専門知識が必要になり、自前で環境構築・運用を行う手間が発生します。加えてエラーの内容が少し専門的です。

そこで今回はEmbulkの課題も解決してくれて、プログラムを書かずに画面上の設定で作業が完結する、4の[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=twitter_ad_to_bigquery)というSaaSを利用します。
## 2. troccoでTwitter広告→BigQueryの転送自動化
### 2-0. 事前準備
[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=twitter_ad_to_bigquery)のアカウントおよびTwitter広告のアカウントが必要です。
[無料トライアル](https://trocco.io/inquiry_trial/new?utm_medium=social&utm_source=qiita&utm_campaign=twitter_ad_to_bigquery)も実施しているので、事前に申し込み・登録しておいてください！
（申込時に、この記事を見た旨を記載して頂ければご案内がスムーズです）
### 2-1. 転送元・転送先を決定
[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=twitter_ad_to_bigquery)にアクセスし、ダッシュボードから「転送設定を作成」ボタンを押します。
![trocco_dashboard_button.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/d9f369ed-fa30-8a0e-49c0-c12f82d26ae7.png)

転送元にTwitter Ads Analytics、転送先にGoogle BigQueryを選択し、「この内容で作成」ボタンを押します。
![trocco_job_definition_select.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/878d5572-10f6-ece6-67b5-92d6e6c95834.png)

すると、設定画面になるので、設定画面から必要な情報を入力していきます。
### 2-2. Twitter広告との連携設定
転送設定の名前とメモを入力します。
![trocco_overview_setting.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/eed729bf-6fb3-a387-7d62-7d99638a6c83.png)

転送設定の名前とメモを入力したら、「転送元の設定」内の「接続情報を追加」ボタンを押し、Twitter広告の接続情報の設定を行います。
![trocco_add_connection.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/b848450a-b3d8-8ca0-5c1a-7b01b04eb841.png)

データを取得したいTwitter広告の情報を入力し、接続情報を作成します。
![trocco_add_twitter_ads.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/00cf0b34-2e4e-f626-782d-d5415039f7c4.png)
### 2-3. Twitter広告からのデータ抽出設定
これでTwitter広告との連携は完了です。
次に、取得したいTwitter広告のアカウントIDやレポート種別、データ取得期間を設定します。
![trocco_twitter_setting.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61228/f4115347-6bee-3ad7-defd-1a882d432510.jpeg)


データ取得期間はカスタム変数を使うことにより、ジョブ実行時に指定の値に置き換えることができます。

以上でTwitter広告側の設定は完了です。
次は転送先のBigQueryの設定を行っていきましょう。
### 2-4. 転送先BigQueryの設定
転送元Twitter広告と同じ要領で設定していきます。
データセットとテーブルは好きな名前を入力していきます。自動生成オプションを有効にすれば、データセット・テーブルが自動作成されます。

また、カスタム変数を使うことにより、ジョブ実行時に指定の値に置き換えることができます。

BigQueryデータセットのロケーションを指定することができます。デフォルトはUSリージョンです。
東京リージョンを指定する場合はasia-northeast1を入力して下さい。
![trocco_screencapture_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/04215c17-ba1b-e9fc-79dd-8e1f6f169341.png)

これで入力は完了です。「保存して自動データ設定・プレビューへ」をクリックし、確認作業に進みましょう。
### 2-5. データのプレビュー
転送元のデータがプレビューされます。ここではTwitter広告から取り込んだデータが表示されています。
問題なければ、「設定を完了する」を押下し、スケジュールや通知設定に進みます。
![trocco_preview.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/9ae2e8a3-400c-ac0c-0388-402900cf1bda.jpeg)
### 2-6. スケジュール設定
「スケジュール・トリガー設定」タブを開きます。
![trocco_schedule_and_trigger_button.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/c8f53075-6cf8-046d-a1f8-3d462c898418.png)

以下のように実行スケジュールを設定することで、転送を自動化することが出来ます。
![trocco_schedule_and_trigger_new.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/dbf47b6e-51a0-d415-be54-453838c303dc.jpeg)
### 2-7. 通知設定
今回の自動同期には、必須の設定ではないですが、通知タイプ・通知条件・通知先を選択し設定を保存することで、EmailまたはSlackに通知を行うことが出来ます。
![trocco_notofication_new.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/5e0a50cc-b835-98c8-b212-2311150e9028.jpeg)

また、必要な時のみ実行したい場合は、手動で行うことも出来ます。
その場合は、転送設定詳細画面から「実行」ボタンを押下し進めていきます。
![trocco_execution_button.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/016f1f4c-765d-c8e2-4a36-d60338cef34e.png)
## 3. BigQueryの設定
特に設定することありません。データが溜まっているので、今すぐに分析・可視化を行うことが出来ます。
データをプレビューして確認してみます。
![bq_screen.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/40cadce6-0b47-d99d-139f-0660d931c6d1.jpeg)
## 4. Googleデータポータル（旧データスタジオ）で可視化
BigQueryの画面から、「エクスポート > データポータル」を選択します。
![bq_to_data_portal.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/3c047c52-200b-d512-1c90-5b6ad306b550.png)

すると、以下のようなData Portalの画面に遷移します。
試しに、キャンペーン毎のクリック数の日次推移を可視化してみましょう。
![data_portal_instruction_4_detail.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/8c9f3095-4f2e-252c-a23a-1144b12a6345.jpeg)

すると、以下のようなグラフが出来上がります。
この画面はデータポータルの「エクスプローラ」という機能になります。
「エクスプローラ」は定期的に閲覧するデータの変化の原因をアドホックに分析する際に使うイメージです。
![data_portal_instruction_4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/a29a4f88-3905-267e-3dc9-65835f8dc9a0.jpeg)

データポータルのトップ画面から、「レポート」を作成し、
上述の通りにクリック数以外のインプレッション数、エンゲージメント数などのグラフ作成を行うと、今回のゴールのTwitter広告のKPIダッシュボードが出来上がります。
![data_portal_top_to_report.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/014f3833-ba5b-8704-b32b-1eead6447ad7.png)
![data_portal_dashboard.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/38554562-89ae-f6b4-d94d-7e3f4d57289f.jpeg)
## まとめ
いかがでしたでしょうか。[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=twitter_ad_to_bigquery)を使うと管理画面を触ることなく、簡単にTwitter広告のレポートデータを取得し、DWH(BigQuery)に貯めることが出来ました。
また、BigQueryにデータを貯めると、データポータルというGoogleの無料ダッシュボードですぐに可視化することが出来ます。
実際に弊社サービスの[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=twitter_ad_to_bigquery)においても、セールスのデータやマーケティングKPI等をこのような流れで収集・分析しています。

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

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