「ウェブ広告の技術」と聞いて真っ先に思い浮かぶのはどんな技術でしょうか? 日ごろ目にするウェブ広告の印象から、「ユーザの興味に合わせたターゲティング」や「レコメンドのアルゴリズム」といったトピックを思い浮かべるエンジニアの方も多いでしょう。
しかし、意外かもしれませんが、現代のアドテクを地味に支えているのは大量のトラフィックを低レイテンシで捌くための技術です。 それどころか、「トラフィックが多いこと」は、アドテクの面白さそのものだとさえ言えます1。
とはいえ、「アドテクの面白さはトラフィックが多いことにある」と聞いても、あまりピンとこないエンジニアも少なくないと思います。 トラフィックを低レイテンシで捌く部分はAWSやGCPといったクラウドサービス側の基盤に任せてしまい、その上に載せる広告のためのロジックだけを作り込めばいいように思えるかもしれません。 そもそも、どうしてアドテクではトラフィックがそんなに多くなるのでしょうか?
本稿では、「アドテクのトラフィック」の中身を概説し、そもそもなぜアドテクではトラフィックが多いのか、トラフィックを増やして獲得したいことが何なのかを深堀してみます。
なぜなら1回の広告表示ごとに複数事業者が入札するオークションをしているから
いきなり結論から言うと、アドテクで通信が多くなるのはオークションがあるからです。 ウェブページに広告が1回表示されるたび、ネットのどこかでは、世界中の広告主が「そのウェブページに広告を表示する権利」をかけたオークションへの入札を実施しているのです。
具体的なフローはこれから簡単に説明しますが、当社が運用しているfluctだと、概ね1回の広告表示ごとに数十の入札リクエストを出しています。 それに対して実際の入札があり、最終的に落札に至った広告がはじめてウェブブラウザに表示されます。 この処理をウェブページが表示されるまでの短時間に済ませなければならないので、アドテクでは大量のトラフィックを低レイテンシで処理する仕組みが必要になるというわけです。
ここで次に生じる疑問は、そもそもなぜリアルタイムに広告表示の権利をオークションをする必要があるのかというものでしょう。 それを説明する前に、まず現代の広告配信で実施されているオークションの中身について少しだけ詳しく説明しておきます。
広告オークションにおけるトラフィックの流れ
いま、あるユーザが広告が設置されたウェブページを訪れたとしましょう。 通常、そのページ内には広告タグと呼ばれるものが貼られています。
広告タグからは、広告配信用のサーバー(アドサーバー)を介して、SSP(Supply Side Platform)と呼ばれるシステムが呼ばれます。 SSPは、広告を表示することで収益を得るウェブサイトと契約し、そのサイトにとってもっとも利益につながる広告を選定するという役割を担うシステムです(当社が運用しているfluctも、このSSPに相当します)。
SSPでは、広告タグからのHTTPリクエストを起点に、出力すべき広告の選定プロセスを開始します。 具体的には、広告タグからのHTTPリクエストの内容に応じて、DSP(Demand Side Platform)と呼ばれる別のシステムにオークションへの参加を要求します。 DSPは、さまざまなメディアに広告を出したい広告主と契約し、もっとも宣伝効果が高いウェブページの広告枠をオークションで買い付けるという役割を担うシステムです(VOYAGE GROUPではZucksというシステムがこのDSPに相当します)。
SSPからDSPに送られる「オークションへの参加要求」はBid Requestと呼ばれます。 Bid Requestには、「どの広告枠であるかを認識するための識別子」、「ページのURL」、「広告枠の最低落札価格」(フロアプライスと呼ばれます)、「3rd party cookieなどに含まれるユーザのID」などの情報が含まれます。
DSPでは、SSPからのBid Requestを受けて、そのオークションに参加するかどうかを判断します。 どんな広告枠か、その広告枠が表示されるページを訪問しているユーザの傾向、広告主の都合(広告の内容や予算の消化状況など)といった情報を考慮し、Bid Requestで示された広告枠の買い付けに参加したほうが良いという判断に至れば、そのオークションへの入札の意思をSSPに返します。 これはBid Responseと呼ばれ、表示される広告の中身(広告クリエイティブと呼ばれます)と、オークションへの入札額が含まれます。
通常、SSPは複数のDSPと接続してそれぞれにBid Requestを発行しているので、それらに対応する複数のBid Responseが返ってきます。 フロアプライスを考慮しつつ、それらBid Responseの入札価格をオークションのロジックに従って比較することで、落札者が決まります。 最終的にユーザが表示しているウェブページには、この落札者の広告が表示されることになります。
この、SSPとDSPによる広告のオーディションの仕組みは、RTB(Real-Time Bidding)と呼ばれています。 RTBでは、世界中のウェブページで広告が表示されるたびに、大量のトラフィックがリアルタイムで発生します。 そのためSSPとDSPには、それだけ大量のトラフィックを低レイテンシで捌く能力が要求されるのです。
なぜリアルタイムにオークションをするのか
オークションの流れがわかったところで、先ほどの疑問に戻りましょう。 SSPやDSPは、なぜ毎回のトラフィックにかかる通信コストをかけてまで、リアルタイムに広告表示の権利をオークションするという仕組みに参加しているのでしょうか?
SSP側の理由は、「広告が掲載されるメディアの収益を最大化できるから」です。 メディアは、自分たちのウェブサイトに広告を表示する権利をなるべく高く買ってくれる広告主を探したいと考えるでしょう。 そのためには、ウェブページに広告が表示されるたび(アドテクの用語では「インプレッションごと」)に、その期待価格を最大化させるのがもっとも理にかなっています。 インプレッションごとの期待価格を最大化するための仕組みが、複数の広告主が同時に入札できるリアルタイムでのオークションというわけです。 なお、オークションを開催するSSPにはメディアの広告収益に対する一定の割合がマージンとして入るので、メディアの広告収益を最大化することはSSPの収益最大化にもつながります。
一方のDSP側は、広告主にとってもっとも効果が高い形で広告をユーザに表示できることを目指します。 広告を出すか出さないか決める際、もっともきめ細かい粒度は「インプレッションごと」です。 SSPで開催されるオークションは、まさにそれをリアルタイムで決める手段となります。
なぜ最強のDSPが1つに淘汰されないのか
もしすべての広告を効果的に、あまねくすべてのメディアの収益を最大化できるように配信できるDSPがあるなら、オークションをする必要はなく、SSPも必要ありません。 しかし現実は、そのような最強のDSPが1つだけ存在する世界にはなっていません。 さまざまなDSPがあり、それぞれ入札を決めるロジックの違いや入札可能な広告の種類に違いがあるので、たとえ同じ広告だったとしても別々のDSPから流せば同一の効果にならないというのが現実のウェブ広告の世界です。
これは広告主にとって悪い状況ではありません。 実際のところ広告主は、目的に応じて効果に見合うDSP(あるいは他の広告手法)を選定しています。 DSPに限らず、メディアとの間で広告配信を直接契約する場合もありますし(純広告と呼ばれます)、インターネット以外のテレビ、新聞、雑誌といったメディアへの広告もあります。 広告に応じて訴求したいターゲットも表現に使いたいフォーマットも多様であること、ブランドや商品の数だけさまざまな訴求の方法があることを考えると、広告主がDSPを選択可能な状況には少なからず利点があると言えるでしょう。
SSPの基本戦略は複数のDSPをつなぐこと
最強にして唯一のDSPが存在せず、複数のDSPに入札機会を作ることは、SSPにとってもインプレッションごとの期待価格が高くなるという利点があります。 SSP間での競争という観点では、たくさんのメディアと契約して広告枠を多く持っているSSPほど有利ですが、より多くのDSPと接続することでインプレッションごとの期待価格を高くし、それを強みとしてさらに広告枠を確保するというのが、SSPの基本的な事業拡大のサイクルです。
もちろん、実世界の競争における優位性はもっと複雑な要因で決まり、単純にDSPとの接続数が多いSSPが有利というわけではありません。 さまざまな競争環境で性能を発揮するDSPに入札機会を提供できることが重要になります。
たとえば、YouTubeやTwitchといった、動画プレイヤーを主としたウェブサイトを想像してください。そのようなサイトでインストリームの動画広告に参加できるのは、動画配信に対応しているDSPのみなので、そのようなDSPとの接続が必要です。 また、もしiOSまたはAndroidのゲームアプリに広告を出す場合には、ゲームアプリに親和性のある広告をたくさん持っているDSPのほうが高い入札金額を出しやすいでしょう。 さまざまなDSPと接続しつつ、それらのDSPからの入札において期待価格が高くなるであろう広告枠を仕入れることが、SSPの基本的な競争戦略だと言えます。 そのなかで、より多くのトラフィックを複数のDSPに流すことが重要になるので、それだけ大量のトラフィックを低レイテンシで捌ける技術が必要不可欠になるというわけです。
余談:Bid Caching論争
毎回リアルタイムにオークションをするのは通信コストがかかり、100ミリ秒程度とはいえページの表示までの時間もかかります。 ある程度の期間であればオークションの結果をキャッシュして再利用できるのではないだろうか、と考えたくなるかもしれません。
実際、過去にそのような試みが導入されたこともありました。これをBid Cachingと呼びます(参考)。
ところが、過去の入札結果が再利用されて広告が配信されるということは、DSPひいては広告主にとっては意図しない形で広告が表示されることを意味します。 DSPは、あくまでもリアルタイムに広告が表示され、かつ1回の広告表示の決定にのみ利用されるという前提でBid Responseを送っています。
実際、この試みは、とあるSSPがDSPには無断で始めたものでした。 結果としてBid Cachingは普及せず、SSPではリアルタイムのオークションが実施されています。
まとめ
本稿では、主にSSP側からの視点で、アドテクで発生する大量のトラフィックの正体とその面白さについて考察しました。
- ウェブ広告では、広告表示の価値をインプレッション単位で競争可能にできるように、リアルタイムにオークションをして表示する広告を決めている
- オークションによって複数の入札者に機会を提示でき、期待収益が高まる
- なので、アドテクではたくさんの事業者と低レイテンシでサーバ間通信を捌く技術が求められる
広告主側から見た予算消化や、DSPの競争戦略などについては、本稿ではあまり深堀りしませんでした。これらの話題についても、あらためてVOYAGE GROUP techlogで紹介する予定です。お楽しみに!
執筆者
鈴木 健太 (@suzu_v)
株式会社VOYAGE GROUP/fluct CTO。社内では「すずけん」と呼ばれる、ウェブ技術全般に明るい。日々PHPやGoでAPIを、Reactで画面を書いている。広告技術をひたすらやっている。fluctのプロダクト全般を見ている立場から語る。
編者協力:鹿野 桂一郎 (@golden_luckey) ラムダノート株式会社
- 実際、書籍『Engineers in VOYAGE』においても、fluct及びZucksというアドサーバーを擁するシステムにおいて増え続ける大量のトラフィックをどのように低レイテンシで捌いてきたかという話をしてきました。↩