こんにちは、アルファアーキテクトでVPoEをやっております胡 恩召(Ethan Hu)です。
今回は、アルファアーキテクトの動画広告配信システム『VeleT』を紹介いたします。『VeleT』では、動画広告の最適化に必要な「定量×定性」効果をワンストップで分析することで、動画の活用目的や指標に適した運用を行います。
システム構成
『VeleT』動画広告配信システムは、主に「管理画面」、「配信サーバー」、「バッチ処理」で構成されています。
管理画面
管理画面は、社内用の管理システムです。管理画面の役割は、配信管理・データ管理・請求・支払管理です。
配信管理は、クライアント様より配信広告を入稿し、その後配信プランを作成してから運用開始します。配信プランは、配信期間、予算、単価、ターゲティング情報の設定を行います。ターゲティングの設定は、在庫面(インバナー、インフィード、ネイティブなど)、メディア面(SSP、サイト/アプリカテゴリ、ドメイン/アプリリスト、枠リストなど)、ユーザ面(デモグラフィック、興味関心、位置、リタゲなど)、環境面(OS、デバイス、ブラウザなど)があります。運用中に、配信プランの効果に応じて、単価やターゲティング条件の調整が必要です。配信の実績は、レポーティングが必要です。
データ管理のデータとは、上記の配信管理で使うデータを指し、具体的には配信先関連データとユーザ関連データです。配信先関連データは、SSP情報、サイト/アプリカテゴリ情報、ドメイン/アプリリスト、枠リストなどがあります。ユーザ関連データは、ユーザのデモグラフィック、興味関心、位置情報、リタゲなどです。ユーザ関連データは、定期的な更新が必要です。
請求管理は、配信費用をクライアント様に請求のため、集計やレポートなど機能です。支払い管理は、配信で掛かったメディア原価のレポートや支払い情報です。
配信サーバー
配信サーバーの役割は、広告配信処理や配信ログ収集です。
広告配信処理は、SSPからのビッドリクエストを解析して、配信中な広告の配信条件(期間、予算、ターゲットなど)を確認する上で、一番適切かつ、収益が高い広告を選択して、SSPへ入札価格や広告のクリエイティブなど情報をレスポンスします。オークションに勝利すれば、SSPから勝利通知と落札価格を送られます。
配信ログは、SSPからの情報と計測ログの二種類があります。SSPからの情報は、ビッドリクエストログや入札ログやインプレッションログなどです、計測系ログは、クリックログ、視聴情報ログ、コンバージョンログなどがあります。これらのログはリアルタイムに収集され、バッチ処理や分析作業の元になります。
バッチ処理
バッチ処理の内容は、主に配信サーバーで使う広告データの処理、配信ログ処理、レポート作成です。
広告データの処理は、広告配信情報(期間、予算、ターゲットなど)を配信サーバーへ取り込み、ユーザ関連データ作成(セグメント、リタゲ、フリークエンシなど)、メディア情報(カテゴリ、ドメイン、枠、キーワードなど)抽出です。
配信ログの処理は、生ログから必要な情報を前処理して、データウェアハウスに投入することです。ログ量が非常に多い中、広告の配信状況は可能な限り早く把握する必要があるため、処理パフォーマンスが大事です。
レポート作成は、データウェアハウスから広告配信データを集計し、様々な形のレポートを提供します。クライアント様、経営者、広告運用者、エンジニアなど、レポートを使う方によって必要な情報が異なるため、集計基盤の設計が重要になります。
システムアーキテクチャ
『VeleT』のシステムは、全てクラウドで構築しています。管理画面や配信処理やバッチ処理は主にAWSを利用し、レポート集計、分析などにはGoogle CloudのBigQueryも利用しています。その上で、動画広告配信システムのアーキテクチャは、下記です。
『VeleT』システムアーキテクチャ図
技術スタック
開発環境
- 仕様管理:JIRA
- ソース管理:Git
- インフラ:AWS、GCP
- 開発エディタ:自由(Vim、VSCode)
- 開発スタイル:スクラム
管理画面
- OS: Linux
- frontend:React + TypeScript
- backend:Scala
- database:MySQL
- web server:Nginx
広告配信
- OS: Linux
- load balancer:AWS ALB
- backend:golang
- cache:Redis
- database:DynamoDB
- web server: Nginx
バッチ・集計
- OS: Linux
- 言語:Python、Scala、golang、Perl、SQL
- 集計:Athena、BigQuery、Re:dash
- 処理:AWS Kinesis、Lambda、Fluentd
まとめ
広告配信システムは、高トラフィックや大規模データや低レイテンシーと厳しい要件が求められますが、エンジニアとしてのスキルアップ・レベルアップとして大きな成長ができることも魅力だと思います。
アルファアーキテクトは現在IPOを目指しています。『VeleT』の発展を加速させるため、 現在インフラエンジニア、バックエンドエンジニア、テックリードなどポジションを積極的に募集しています。動画広告サービス『VeleT』の開発を一緒に推進してくれる方、是非応募をお待ちしています!