広告フォーマットが増えるたびに、サービング基盤はどこで破綻するのでしょうか。
Uber Adsは、Sponsored Listingsから始まり、Sponsored Items、ディスプレイ、バナー、動画へと広がりました。面ごとに取得・スコアリング・入札のロジックが枝分かれし、新しいフォーマットを足すほど、コードベースの共有によるデプロイの結合が重くなりました。ある面の不具合な変更が、無関係な面のロールバックを引き起こす状況です。
転機は、広告を面ごとの機能ではなくケイパビリティとして作り直す発想でした。サプライ層が各面のリクエストをAdSpecに正規化し、マーケットプレイス層がオークションか優先ディールかを選び、デマンド層のプロバイダーが入札します。面固有の情報は拡張として切り離し、必要なプロバイダーだけが使います。
さらにトラフィックを、同じコードベースを使う環境別の複数フリートに分けました。デプロイもロールバックも独立し、プロバイダーが失敗してもオークションは残りの候補で完了します。
「機能ではなくケイパビリティを作る」「複雑さを端に押し出す」というUberの設計は、広告以外のマルチサーフェス基盤にも通じます。
論文ではなくブログで、数値による効果は示されていません。
タイトル: Designing a Generalized Ads Marketplace Platform
#
システム設計# #
広告テクノロジー#