MicroAd Developers Blog

マイクロアドのエンジニアブログです。インフラ、開発、分析について発信していきます。

広告キャンペーンの日予算分配の自動化

はじめに

こんにちは. マイクロアドで機械学習エンジニアをしている福島です. 主にReal-Time-Bidding (RTB)における入札最適化の研究・開発などを担当しています.

マイクロアドが提供する広告配信プラットフォーム(DSP)であるUNIVERSE Adsには予算管理の仕組みがいくつかあります. 今回はその中で配信制御のための自動予算分配について紹介します.

UNIVERSE Adsにおける広告の構成

UNIVERSE Adにおける広告は以下のような構成になっています.

UNIVERSE Adsにおける広告構成

広告
広告の素材であるクリエイティブ1とランディングページ2の組み合わせで構成されます.

ストラクト
広告に対し, 配信単価やターゲティング設定などの配信設定を追加したものをマイクロアドではストラクトと呼んでいます.
ターゲティングには特定のトピックに関するページに配信するプレースメントターゲティング, 特定の地域のユーザーに配信するロケーションターゲティングなど様々なものがあります.

キャンペーン
達成したい目的ごとの広告グループの単位をキャンペーンと呼びます. キャンペーンには, 広告や配信設定の異なるストラクトが複数紐づいており, 目的達成のためにストラクトを運用していく形になります.

キャンペーン予算の最適分配

UNIVERSE Adsでは, キャンペーンとストラクトのどちらにも予算上限の設定が可能になっており, 上限に到達すると配信がストップします. 予算上限の種類としては, 以下のようなものがあります.

  • 日予算上限
  • 月予算上限

ストラクトによって広告や配信の設定が異なるので, 広告効果や配信量には違いがあります. 簡単な例としては以下のようなものが挙げられます.

  • 配信単価は低いが, 配信頻度が低くなりやすい
  • 配信頻度は高いが, 配信単価も高くなりやすい

よって, キャンペーンの目標とする配信量や広告効果を達成するために, キャンペーンの予算を効果的にストラクトに分配することが重要になります. 手作業での運用も可能ですが, 膨大な量の広告の配信制御を行うために, UNIVERSE Adsでは数理最適化を用いた予算の分配機能を導入しました.

分配率最適化問題として定式化

予算を消化できる範囲内で, キャンペーン全体での広告効果を最大化(配信単価を最小化)する予算の分配率を求める分配率最適化問題を考えます.

※ 以降では細かい設定を簡略化して紹介するため, 実際の設定とは一部異なっています.

キャンペーンの残りの日予算を B, 紐づくストラクトの集合を \mathcal{S}とします.
残りの日予算におけるストラクト i \in \mathcal{S}への分配率 x_iを求める形で線形計画問題として定式化します.


\begin{align}
\arg\min_{\boldsymbol{x}} 
&\sum_{i \in \mathcal{S}} u_i \cdot x_i 
\\
{\rm s.t.} \quad &\sum_{i \in \mathcal{S}} x_i = 1.0
\\
&x_i \cdot B \le c_i
\\
&x_i \ge 0
\end{align}

ここで, 各変数は以下を表します.

  •  u_i : ストラクト iの実績配信単価
  •  c_i : ストラクト iの当日の残りの配信可能限界

ストラクト iの当日の残り時間で配信可能な見込み金額を配信可能限界 c_iとしています. 各ストラクトごとに分配額  x_i\cdot B c_iを超えない範囲で, キャンペーン全体での配信単価を最小化する時の分配率を求める形になります.

このとき,  c_iは過去の配信結果を用いた推定値を利用します.

UNIVERSE Adsの自動予算分配機能では, 上記のような予算分配を毎時間行うことで配信実績に応じた調整を自動で行っています.

※ 実行可能解が存在するとは限らないので, その場合は別途考慮する必要があります.

予算分配後の配信制御

上記の予算分配機能で各ストラクトに当日の目標消化金額が設定されることになり, ストラクトごとに設定された目標金額に応じて適切な配信制御が行われます.
配信制御の例としては以下のようなものが挙げられます.

  • 予算消化制御のためのペーシング率制御
  • 入札関数の選択

詳細は以下をご覧ください. developers.microad.co.jp developers.microad.co.jp

おわりに

今回は, キャンペーンの日予算を適切にストラクトに分配するための最適化問題の利用例を紹介しました. 広告配信制御では機械学習や数理最適化など様々な技術が応用されているので, 気になったら他の記事もぜひ読んでみてください.

機械学習エンジニア絶賛採用中

マイクロアドでは, 問題設定からサーベイ, 開発・運用まで裁量を持ってチャレンジしたいという仲間を募集しています!また, 機械学習エンジニアだけでなく, サーバサイド, フロント, インフラエンジニアなど幅広く募集しています!
気になった方は以下からご応募ください! recruit.microad.co.jp

参考文献


  1. 広告掲載するために制作された素材全般
  2. 最終的にユーザーが閲覧する広告主のサイトURL