読者です 読者をやめる 読者になる 読者になる

sekaie engineers' blog

セカイエ株式会社が主催するエンジニア勉強会について

爽快!分析基盤の紹介 #4 : 広告分析編

おはようございます。こんにちは。こんばんわ。

セカイエアドベントカレンダー13日目です。佐々木です。

カレンダーも折り返し地点を過ぎましたね。後半も頑張りましょー!

qiita.com

今日は分析基盤の広告分析について紹介します。

以前はリスティング広告について紹介させていただきました。

sekaie.hatenablog.com

が、出稿する広告は他にもリターゲティング広告などあります。

なので、今回はセカイエで出稿している広告全てに対応 & 今後増えるであろう広告にも対応すべき機能を回収しました。

その辺の紹介をします。

Web UI

今回の修正では基本的に WebUI に大きな修正はありません。

リターゲティング、サーチターゲティングやRLSAなどといった広告の分析用UIが追加されています

f:id:sekaie:20151210191615p:plain

全体の流れ

f:id:sekaie:20151210192600p:plain

前回に比べてだいぶスマートになりました

CSVアップロード

各広告媒体のプロバイダーのレポートページから CSV をダウンロードしてきてそれをアップロードします。

以前は Google Adwords だけは API で Yahoo は CSV でみたいな対応にしていましたが、

今後APIが実装されているか分からないプロバイダなどを使用するときのことを考えるとできるだけ処理を共通化させたかったので

CSV アップロードに統一することにしました

広告集計用サーバ起動

アップロードされたタイミングで AWS EC2 のインスタンスを起動し、 AWS SQS で広告バッチ起動の message を queue に積みます

なぜいちいち起動するのかというと、この広告集計は結構スペックを要するのでスペックの高いインスタンスを用いています。

他の分析基盤の処理は BigQuery に寄せているので低スペックのインスタンスで問題なく、高いインスタンスを無停止で動かしているとコストパフォーマンスが悪いので逐一起動して終わり次第停止しています

ちなみに動きっぱなしになってると怒られます

f:id:sekaie:20151210193413p:plain

起動した後の集計開始のトリガーは AWS の SQS を使用してメッセージの送受信を行っています。

あんな簡単にサーバ間のメッセージングが出来るなんて便利なサービスですね。 SQS

BigQuery に格納

ここの処理については前回のブログと同様に行っています。

Google Cloud Storage にアップロードして BigQuery でロードしています

最後に

今回はセカイエの分析基盤の広告分析機能をリスティング広告だけでなく他の広告分析にも対応させた話の紹介でした!

明日は moyomoto の見やすいレイアウトについて。です。

ほな!