CData Software Blog

クラウド連携のCData Software の技術ブログです。

Yahoo! 広告のデータを BigQuery にスナップショットとして定期的にレプリケート:CData Sync

f:id:sennanvolar44:20220125091642p:plain こんにちは、テクニカルサポートエンジニアの宮本です。

今回は Yahoo! 広告のデータを定期的に BigQuery にレプリケートして、ジョブ実行時のデータをスナップショットとして保持する方法をご紹介します。

Yahoo! 広告とは?

Yahoo! Japanが提供するWeb広告サービスです。
ads-promo.yahoo.co.jp f:id:sugimomoto:20220119172258p:plain

広告は Yahoo! JAPANの検索結果に表示される「検索広告」とコンテンツページに表示される「ディスプレイ広告」の2種類があります。

f:id:sugimomoto:20220119172306p:plain

さらに Yahoo! 広告では広告業務の自動化やレポートの取込を行うAPIが提供されており、様々なツール・プログラムと連携させることが可能になっています。

ads-developers.yahoo.co.jp f:id:sugimomoto:20220119172312p:plain

本記事のシナリオ

今回はYahoo! 広告で作成したキャンペーン状況を県別に集計したレポート情報をレプリケーションツールの CData Sync を用いて定期的に BigQuery にレプリケートしていきます。また、実行時のレポートデータを BigQuery で保持できるように連携ジョブ実行ごとにテーブルを作成します。
f:id:sennanvolar44:20220124003443p:plain

ではさっそくやっていきましょう。

CData Sync とは?

クラウドサービスからデータベースへのノーコードレプリケートアプリケーションになります。レプリケートとは同期するという意味になりますので、CDataSync から接続できるクラウドサービスのデータをデータベースにまるっとコピーすることができます。
https://www.cdata.com/jp/ f:id:sennanvolar44:20200501163232p:plain

CData Sync のダウンロード&インストール

AMI 版もありますが、今回は.NET版をダウンロードしてローカルマシンにインストールしていきます。
それでは下記リンクより CData Sync .NET エディションをダウンロードしていきます。

https://www.cdata.com/jp/sync/download/ f:id:sennanvolar44:20220124165036p:plain

ダウンロードしましたら、インストーラーを実行して基本的にはそのまま進んでいただければすぐにインストールが完了します。 f:id:sennanvolar44:20220124165243p:plain

インストール完了後にCDataSync が起動したら、「http://localhost:8019」にアクセスし、情報タブよりトライアルアクティベートを行います。(トライアルは30日間可能です)

Yahoo! 広告のコネクタを追加

次に接続画面を開きます。デフォルトでは Yahoo! 広告のコネクタは CData Sync にセットされていませんが、以下の「Add More+」ボタンをクリック後、「yahoo」などで検索することでコネクタが表示されますのでそのまま選択してインストールすることが可能です。
f:id:sennanvolar44:20220124165805p:plain

もしコネクタ追加方法が不明な場合はテクニカルサポートまでご連絡ください。
CData Software Japan - Technical Support

接続設定(Yahoo! 広告)

コネクタが追加されましたら、Yahoo! 広告のアイコンをクリックして接続設定を行います。
接続情報名を設定しましたら、Advanced タブを開きます。
f:id:sennanvolar44:20220124171013p:plain

Advanced より下記項目にそれぞれアカウント情報などを設定します。

項目 項目内容
Display Ads Account Id ディスプレイ広告のアカウントID
Search Ads Account Id 検索広告のアカウントID
Language レポートの表示項目に利用される言語設定。ENとJPが選択できます。今回BigQueryは日本語カラム名が利用できないのでENを選択しましょう

設定しましたら、もう一度設定タブを表示して右下の「次に接続」ボタンをクリックします。

f:id:sennanvolar44:20220124172014p:plain

パスワードを入力して Yahoo! にログインします。
f:id:sennanvolar44:20220124172651p:plain

CData Sync からのアクセスを許可します。
f:id:sennanvolar44:20220124173741p:plain

この画面が表示されれば接続成功となります。
f:id:sennanvolar44:20220124175058p:plain

最後に接続情報の保存を行って完了です。

接続設定(BigQuery)

BigQuery へは OAuth 認証とサービスアカウントでの認証方法がありますが、今回は OAuth 認証を行います。
OAuth 認証の場合は プロジェクトID とデータセットID を指定するだけでOKです。入力が終わりましたら右側の接続ボタンをクリックします。
f:id:sennanvolar44:20220124180145p:plain

あとは Google アカウントでログインするだけでOKです。
f:id:sennanvolar44:20220124180647p:plain

これで接続設定が完了となります。

ジョブ作成

実際にどのデータをどうやってレプリケートするかの定義をここから行っていきます。
まずはジョブ画面を開き、「ジョブを追加」をクリック後、任意のジョブ名と先ほど作成した接続情報をそれぞれデータソース・同期先に指定したら作成ボタンをクリックします。
f:id:sennanvolar44:20220124182202p:plain

同期先テーブル名に動的に実行日を付与する設定
本シナリオでは定期実行した際にその都度テーブルを作成することを目的としているので、同期先テーブル名には動的に実行日が付与されるようにする必要があります。
CData Sync ではイベントタブのPre-Job の中でジョブに引き継ぐための処理を手動で設定することができます。今回は実行日を取得してその日時を使ってテーブル名に付与していきます。

それでは設定していきましょう。
イベントタグを開き、Pre-Job 内に下記コードを追加します。

<api:set attr="out.env:currentdate"  value="[null | now() | todate('yyyyMMdd')]" />
<api:push item="out"/>

f:id:sennanvolar44:20220124234145p:plain

変更を保存ボタンでコードを保存後、テーブルタブをクリックしてクエリ設定画面をひらきます。

テーブルを追加ボタンをクリックすると Yahoo! 広告 に対応したエンドポイントがテーブル名として一覧表示されます。 f:id:sennanvolar44:20220124235507p:plain

ただ今回はキャンペーン状況を県別に集計したレポートデータを BigQuery にレプリケートするために条件などを付与するため、カスタムクエリより下記クエリを設定します。

REPLICATE [ReportSearchAdsGeo_{env:currentdate}] SELECT [CampaignName], [Prefecture], [Clicks], [Impressions] FROM [ReportSearchAdsGeo] WHERE [ReportDateRangeType] = 'ALL_TIME'

f:id:sennanvolar44:20220124235718p:plain

なお、{env:currentdate} を同期先テーブル名に付与していますが、これが先ほど Pre-Job で設定した現在日時取得の実行結果が入る変数になります。

ちなみにクエリの書き方やYahoo!広告の詳しいテーブル情報は下記ヘルプを参照してみてください。もしクエリの書き方が不明な場合はテクニカルサポートまでお問い合わせください。

ジョブスケジューリング

スケジュールタブより設定します。今回は日処理として実行する想定ですので、インターバルを Daily&実行時間帯を設定します。
f:id:sennanvolar44:20220125000335p:plain

これでスケジューリングも設定したジョブの設定が完了しました。

ジョブの実行

毎日22時にジョブが実行されるようにセットしましたが、初回実行日は 2022/01/24 となっておりますので、実行日時まで待ちます。
f:id:sennanvolar44:20220125002554p:plain

では 2022/01/24 22:00 になったのでジョブ画面を開いて確認してみると、22時に48件レプリケートしたと結果が表示されていました。
f:id:sennanvolar44:20220125002441p:plain

BigQuery 側も参照してみますと、このように実行日付きのテーブルが作成されていることが確認できました。
f:id:sennanvolar44:20220125003406p:plain

ちなみにこのタイミングで再度ジョブ一覧画面を参照すると、次回実行日時が2022-01-25 22:00 と確認することができ、 f:id:sennanvolar44:20220125003539p:plain

ジョブが自動的に実行されるようなっています。
f:id:sennanvolar44:20220125010647p:plain

BigQuery にもテーブルが新規追加されました。
f:id:sennanvolar44:20220125010855p:plain

おわりに

いかがでしたでしょうか。今回の内容で Yahoo! 広告のデータを BigQuery に蓄積することができました。これで Yahoo! 広告以外のデータも BigQuery にため込むことで更なる分析や活用シーンが増えてくると思います。

最後に、今回ご紹介したCData Sync は 30 日間無償でのトライアル利用が可能となっておりますので、是非お試しください!

www.cdata.com