Vol.202

Webエンジニアのためのアドテク解体新書~広告業界のプロに聞く「意外と身近」な技術解説

Webエンジニアのためのアドテク解体新書~広告業界のプロに聞く「意外と身近」な技術解説

加速するスマートフォンの普及に伴って、圧倒的なスピードで市場規模を拡大している分野がある。「アドテク」と呼ばれるインターネット広告関連システムだ。

今年に入ってリクルートのような大手企業もこの分野への新規参入を発表するなど、業界の動きはさらに活性化している。その背景には、マーケット自体の盛り上がりと技術の進歩があるのは間違いない。

SSP(Supply Side Platform)、DSP(Demand Side Platform)、DMP(Data Management Platform)など複数のプラットフォームに、RTB(Real Time Bidding)といったシステムも導入され、業界全体の規模は急拡大中。かつ、PC Webからスマホへのシフトが進む近年は、ネイティブアプリ向けのアドテクも進化してきた。

こうした流れを受け、日本のネット広告業界をけん引してきたサイバーエージェントも、昨年10月にグループ横断の開発組織として「AdtechSTUDIO(アドテクスタジオ)」を設立。今年2月末にはスマホ向けゲーム提供企業に特化したDSP『GameLogic』の提供を開始し、その直前にはネイティブゲーム特化型のプライベートDMP『GameAudience』サービスの開始も発表している。

ただ、こうしたマーケットの盛り上がりを体感している人はそれほど多くないはず。一般的なWebサービスやアプリ開発に比べ、かかわるエンジニアの総数が少ないのが一因だ。ここまで列挙した各種キーワードも、業界未経験者にとっては「よく分からない」というのが第一印象だろう。

そこで今回、サイバーエージェントのアドテクスタジオで『GameLogic』の開発を主導してきた山田直行氏に、アドテク開発の技術要素を解説してもらったところ、一般的なWebシステム開発でも使われている汎用的なテクノロジーが数多く使われていることが分かった。

以下、『GameLogic』の要素技術および関連技術を解説するとともに、アドテク分野のエンジニアに必要とされるスキルセットを紹介しよう。

【事前勉強用】アドテクの基本を理解するための2つの良記事

株式会社サイバーエージェント・アドテク本部チーフエンジニアの山田直行氏
株式会社サイバーエージェント・アドテク本部チーフエンジニアの山田直行氏

本題に入る前に、そもそもアドテクノロジーとはどんな仕組みで動いているものなのかを分かりやすく解説している参考資料を2つ紹介しよう。

1つ目は、サイバーエージェント系列企業のシロクに在籍する現役エンジニア、片岡直之氏のプログだ。

■広告業界と無関係な僕がさっぱり理解できないアドテク用語を調べた。

このブログに載っているいくつかの図解を見れば、ネット広告における「広告主」と「ユーザー」が、双方を結ぶ媒体(メディアやゲームなど)を介してどのように結び付いていくかが理解できるだろう。

そしてもう1つ、アドテク関連サービスの要素技術についてまとめた山田氏のSlideshareはこちら。

■アドテクスタジオの技術と開発

今回はこれらの資料を参考にしながら、『GameLogic』を支える3領域

【1】管理画面(フロントサイド)
【2】広告配信エンジン(サーバサイド)
【3】データ分析まわり

それぞれの開発で用いられている技術や各種ツールを山田氏に聞いてきた。

なお、開発環境はRedmine+GitHub+ChatWorkで構築している(※アドテクスタジオ内ではConfluenceを用いるプロジェクトもある)とのことだ。

【1】管理画面(フロントサイド):Ruby on Railsを用いて設計

DSPの『GameLogic』とプライベートDMP『GameAudience』の関係図(出典はこちら)
DSPの『GameLogic』とプライベートDMP『GameAudience』の関係図(出典はこちら


■要素技術について

―― バッチはScalaで開発
―― ソースコードはGitHubをベースに管理

■ポイント解説

まず理解しておきたいのは、DSP/DMPともに活用するのは広告主(クライアント)。フロントサイドでは広告を配信した際の効果を、リアルタイムかつ正確に測定できる設計・開発が求められる。

さらにDMPには、広告主自身が有するデータを元に、より効率的な広告配信を実現するためのデータを適宜フィードバックしてDSPに反映させる機能が必須だ。

こうした前提条件の下、DSPである『Gamelogic』の開発でRailsを採用しているのは、「マイグレーション機能を使ったDBのテーブル制作などが比較的容易にできるため」(山田氏)。広告主が望むUXの実現に向けて柔軟に機能の追加・改善を繰り返すためには、Railsによる開発がベターだと判断したという。

【2】配信エンジン(サーバサイド):「攻めと守り」を両立すべくJavaを採用

■要素技術について
―― Apache – Tomcatによる広告配信
―― サーバ環境はAWS / データベースはMySQLとRedisを併用
―― 自動テストとビルドにJenkins、サーバ設定にChef、デプロイにCapistranoやFabric、監視にZabbixといったツールを活用

■ポイント解説
DSP/DMPやRTBを支えるインフラ面は、リアルタイムかつ瞬時のデータ解析/処理が求められる。特にRTBは一瞬の入札タイミングがより良い広告配信の実現を左右するため、極限までのチューニングを施すという。

山田氏によると、「50ms(ミリ秒=0.05秒)がこの業界の最低基準で、実際には20~30msでのレスポンスが理想」という。つまり、1秒間に数万回、月間では実に約300億回に上るリクエストを処理する必要があるのだ。

こうした条件下で、アドテクスタジオが『GameLogic』を含む各種サービスのサーバサイド開発にJavaを用いているのは、「ライブラリや運用ツールが充実している“枯れた技術”を採用した方が、ほかのOSSなどに比べてメリットが大きいから」(山田氏)。

テストもJavaの標準ツールを用いており、広告効果を最大化させる「攻めの開発」と、1円単位のズレも許されない「守りの運用」を両立させるために先人たちの資産を有効活用している。

ちなみに、自動テストとビルドにはJenkinsのほか多種多様なツールを活用しているが、「DSPは新機能の追加も多く、膨大な数の機能を有しているので、テストの完全自動化は難しく、2割程度は手動でテストしないと品質を担保できない」と山田氏は言う。

最終的には人の目によるテストも取り入れているという点や、上記した「守りの運用」に関しては、SIerが行っている金融系の大規模システム開発にも相通じる部分があるそうだ。

【3】データ分析まわり:ElasticSearchを採用した2つの理由

『GameLogic』のリアルタイム分析画面の一部
『GameLogic』のリアルタイム分析画面の一部


■要素技術について

―― 集計・レポート作成はAmazon Redshiftで
―― Fluentd – ElasticSearch – Kibanaでデータを可視化し、分析

■ポイント解説
ここまで解説してきた【1】【2】を読んでもらっても分かるように、DSPひいてはアドテクサービス全般で最も重要視されるのはスピードである。

物理的な処理スピードもさることながら、広告主・開発側の双方がリアルタイムにデータを見ながらクリック率を高めるための仮説検証の速さも肝要だ。

そこで『GameLogic』では日々クライアントから寄せられる「データ出し」の要望を高速に行うべく、Redshiftを採用。膨大に発生する生ログを誰でも抽出でき、レポートとして加工しやすいようにしている。

さらに、今年4月にリアルタイム集計機能を追加した際にElasticSearchを導入したそうだが、そこには2つの狙いがあったという。

「1つは純粋に集計のリアルタイム性を高めるためですが、もう1つ、開発陣のモチベーションアップという側面もありました。いわゆる『流行りの最先端ツール』を学び、駆使することは、“中の人”がスキルアップしていく上でも大切になります。実際、『GameLogic』の開発チームでは、日々データを見る習慣が以前より強まった気がしています(笑)」(山田氏)

コンテンツには流行り廃りがあるが、ネット広告はなくならない

アドテク関連のエンジニアは「異業種からの転身組がほとんど」と話す山田氏
アドテク関連のエンジニアは「異業種からの転身組がほとんど」と話す山田氏

このように、アドテクの世界は「一般的に使われている技術」を「より高度な使い方」をするため日進月歩で進化し続けている。

一般的なWebサービス/Webシステムで設計・開発に取り組んだ経験を持つエンジニアであれば、それほどハードルの高い現場ではないことがご理解いただけたと思う。

実際、山田氏は「僕らのアドテクスタジオには、元Webエンジニア、元ゲーム開発エンジニア、元業務系エンジニアといろんなバックボーンを持つエンジニアが集まっている」と話す。共通項は、技術が大好きで探求心が旺盛だという点だ。

開発メンバーは業務中コードを書く時間も長いとのことで、職人志向のプログラマーや最新技術を深掘りしたいというエンジニアには理想的な環境といえるかもしれない。

「一般的なBtoCサービスに比べると、アドテク開発はやっていることが分かりづらい分野だと思います。が、世の中のトレンドがどう変わっても、広告だけは絶対になくならない分野。いわばインターネットのエコシステムを支えるシステムとも言えます。わたし自身ももともとゲーム開発エンジニアでしたが、この流行り廃りのなさはこの分野で仕事をする一つの魅力に感じています。そんなアドテクの世界でキャリアの幅を広げたいエンジニアには、ぜひジョインしてほしいと思っています」(山田氏)

取材・文/浦野孝嗣 撮影/小林 正

この記事が気に入ったらいいね!しよう

エンジニアtypeの最新情報をお届けします

RELATED POSTS関連記事

JOB BOARD編集部おすすめ求人

この記事に関連する求人・キャリア特集

  
 株式会社キャリアデザインセンター メディアARP推進局の求人 【編集】エンジニア経験が活かせる編集のシゴトです 東証一部上場/残業少/服装自由 エンジニア転職フェア開催 IT&モノづくりエンジニアを求める優良企業が大集結!
記事検索


アマゾン ウェブ サービス ジャパン株式会社 クラウドサポートエンジニア…

アイコムシステック株式会社【東証一部上場・協和エクシオグループ】 【社…

楽天株式会社 通信&メディアカンパニー ネットワーク運用保守*MNO事業…

パナソニック フィナンシャル・アカウンティング&HRプロパートナーズ株…

株式会社ドワンゴ【ポジションマッチ登録】 オープンポジション

株式会社スタッフサービス エンジニアリング事業本部(リクルートグループ…

サッポロビール株式会社 【生産技術担当】サッポロブランドを生産技術から…

ソニーエンジニアリング株式会社 [機械設計] ~ソニー製品の機械設計/機構…

株式会社日立ハイテクフィールディング サービスエンジニア【半導体評価…

ソニーエンジニアリング株式会社 [電気設計] ~回路設計/デジタル回路、ア…

英文メールでよく見る「略語」の意味は? 海外エンジニアに聞い...

データアナリストになる方法~コンサル型かエンジニア型か?ビッ...

Googleの最先端技術に携わりたい。29歳パパエンジニアが...

東京藝術大院卒→オリエント工業の造形師が、究極の機能美を追究...

文系出身でも、経験が浅くても、プログラミングの世界に没頭した...