11

まもなくバナーローテーション スクリプトを開始する予定ですが、それを正確にどのように開発するかについて少し当惑しています。クライアントが要求したとします。

「今後 10 日間で 10,000 インプレッションで 10,000 ドル」

別のクライアントが要求する

「100 ドルで 1,000 インプレッション。」

そして 3 分の 1 は

「5,000 ドルで 1,000 クリックまたは 10,000 インプレッション」

ページ要求時に表示するバナーを正確に決定するにはどうすればよいですか? どうすれば互いに比較検討できますか? 時間枠内で一定数のインプレッションを配信することが期待されるため、明らかに最初のリクエストがかなり重要です。

2 番目のクライアントはそれほど重要ではありません。彼らは時間枠を気にせず、ただ顔を合わせたいだけだからです。

最後のクライアントは、インプレッション/クリック数を n または m に制限したいと考えているため、問題は少し難しくなります。

誰が最も注目を集めるかを判断するには、これらのシナリオから重みを抽出する必要があることはすでに確信しています。私の質問は、これを処理できるアルゴリズムの種類と、リクエストごとに最も重要なバナーを常に提供するのではなく、重みでバナーを提供するにはどうすればよいかということです。

4

4 に答える 4

8

難しさは何よりも時間の制約から来ます。時間の制約を指定しなかった人の優先度を 365 (1 年) で割ってから、重み係数の一部として時間を使用します。そう:

Client 1 priority: 10000/10 = 1000 
Client 2 priority: 1000/365 ~ 3 
Client 3 priority: 10000/365 ~30

これにより、かなりまともな優先度の指標が得られるはずです。インプレッションとクリックを組み合わせることはできませんよね?インプレッション ルートまたはクリック ルートのいずれかになります。クリックを制御することはできませんが、インプレッション (少なくともクリック以上) を制御できるため、インプレッションに応じて重み付けします。

于 2009-08-03T18:45:10.557 に答える
6

乱数ジェネレーターを使用して、表示する広告を選択し、各広告の優先順位で重み付けします。より多くのインプレッションを希望するクライアントや締め切りがあるクライアントに対しては、加重係数を高く設定します。時間がほとんどない場合は、重み係数を増やすことができます。

クライアントがリクエストしたインプレッションに達したら、ウェイトを 0 に下げて広告が表示されないようにします。

デフォルトの重み付けは 1 程度で、クライアントは優先度を上げるために追加料金を支払うことができます (メカニズムを伝えずに、「プレミアム」プレースメントとして請求するなど)。


編集:重み付けの詳細

これは好きなだけ単純または複雑にすることができますが、基本的なバージョンには次の用語が含まれます。

  • 広告が購入インプレッション数/クリック数に達した場合、重みは 0 です
  • 基本重み付け (おそらく 1.0)
  • ウェイトにimpressions_remaining / 全クライアントの残りインプレッション数を掛ける
  • 残りのインプレッション/クリック数が少ない場合は、小さな定数を追加します -- アカウントを完了するために必要な最後のいくつかのインプレッションを取得できるようにします
  • 締め切りのクライアントの場合: (残りのインプレッション数/購入したインプレッション数)/(残り時間/合計時間) の期間を追加します。

締め切りのクライアントは、すべてのページ表示の 90% に制限するか、他のクライアントと競合しないようにする必要があります。最後の項は、締め切りのクライアントに「緊急性」を与えます。締め切りが近づくと無限大になるため、残りの時間に条件を付けて、これに関する問題を防ぐ必要があります。

于 2009-08-03T18:41:08.850 に答える
4

Microsoft Commerce Server には NOD アルゴリズムが含まれています ( http://msdn.microsoft.com/en-us/library/ms960081%28v=cs.70%29.aspx およびhttp://msdn.microsoft.com/en-usを参照)。 /library/ee825423%28v=cs.10%29.aspx )

この数式の派生バージョンを 3 つの異なる広告サーバーで使用しましたが、これは私の条件に適していることがわかりました。

あなたの状況に関する基本的な式は、「配達の必要性」の略である NOD と呼ばれる変数を使用します。いつでも、バナーの「基本的な」NOD 式は次のとおりです。

NOD=(残りのイベント / 要求されたイベントの合計) * (合計実行時間 / 残りの実行時間)

「イベント」は一般的な用語であり、システムによってはインプレッション、クリック、コンバージョンなどを表す場合があることに注意してください。

この方程式は、(e / e) * (t / t) = 1.0 であるため、すべてのバナーが初期値の 1.0 から始まることを示しています。

NOD 値が 1 より大きい場合はスケジュールより遅れていることを意味し、NOD が 0 から 1 の間の場合は通常、バナーの表示が「速すぎる」ことを意味します。0.9 から 1.2 の間の値は、一般に許容範囲内です (これは技術的な範囲ではなく、ビジネスの経験です)。

配信比率が継続時間比率と一致している限り、値は約 1.0 のままです。

特定の広告スロットについて、アルゴリズムはスロットで利用可能なすべてのバナー ターゲット テーブルの NOD をチェックします。NOD 値が 0.6、1.35、および 1.05 で、合計 3.0 の 3 つのバナーがスロットで使用可能であるとします。すると、各バナーが表示される相対確率は、[0.6 / (0.6 + 1.35 + 1.05)] = 20% の順に 20%、45%、35% となります。

アルゴリズムは加重確率分布を使用します。つまり、NOD 値が最小のバナーでも表示される可能性があります。基本的な式はこのアプローチを使用していますが、ビジネス上の決定により、通常、元の式よりも緊急の NOD 値を優先するアルゴリズムを実装する必要がありました。だから、私はベースNODを取り、それらを掛け合わせました。同じ例では、確率は順に 11%、55.5%、33.5% になります。

あなたの状態では、必要に応じて数式を少し変更することを検討してください。まず、バナーを表示することで得られる収入を比較するには、すべての表示タイプ (インプレッション、クリック、アクションなど) を共通の eCPM 値に変換する必要があります。次に、この eCPM を元の計算式の乗数として使用できます。

まだ公開されていないキャンペーンの場合、eCPM (実効 CPM) の計算は難しい場合があります。この場合、過去のデータを使用する必要があります。

この部分についてもう少し説明させてください。単一のバナーを「表示」することで得られる見込み収入を比較しようとする場合、インプレッション ベースの予算を比較する必要はありません。クリックベースの予算の場合、過去の CTR 値を使用して、「X クリックを獲得するためにシステムが配信する必要のあるインプレッション数」を推測する必要があります。より高度なアルゴリズムでは、「Y インベントリーの X カテゴリのキャンペーンを取得するためにシステムが配信する必要があるインプレッション数」を利用する場合があります。

次に、最終的な方程式は次のようになります。

NOD = eCPM * (残りのイベント / 要求されたイベントの合計) * (合計ランタイム / 残りのランタイム)

eCPM のべき乗を使用して結果を比較することをいつでも検討できます。より緊急のキャンペーンを優先するように元の式を変更する私の方法のように、「より多くの支払い」キャンペーンを優先する場合があります。

于 2013-10-11T09:19:20.200 に答える
3

AlbertoPL の時間ベースのアプローチはとても気に入っていますが、彼はクリック数を考慮に入れていません。クリックが関連する病的なケースを簡単に示すことができます。

  • クライアント A は、1 クリックまたは 10,000 インプレッションに対して $1000 を提示します
  • クライアント B は、5000 クリックまたは 10,000 インプレッションに対して $1000 を提示します。

合理的な人であれば、ワンクリック担当者に高い優先順位を与えるでしょう。計算は実際には非常に簡単です。クリックスルーがクリックあたり 100 インプレッションであると仮定します。

  • クライアント A は 10,000 インプレッションまたは 1 クリックを希望しているため、支払いを受けるには最低でも 100 インプレッションが必要です。100 インプレッションあたり 1000 ドルのコストで、クライアントは 1 インプレッションあたり 10 ドル支払う意思があると推測できます。

  • クライアント B は、10,000 インプレッションまたは 5000 クリックを望んでいます。5,000 クリックには 500,000 インプレッションが必要です。それまでに 10,000 インプレッション マークを達成することは明らかです。そのため、クライアントは 10,000 インプレッションに対して 1,000 ドル、つまりインプレッションあたり 0.10 ドルを支払うことを実際に申し出ていると想定します。

$$$$$/インプレッションを最大化することで収益を最大化するため、クライアント A が優先されます。OPで提供されている数字を使用しましょう:

クライアント 1:

  • 次の 10 日間で 10,000 インプレッションで 10,000 ドル
  • = 最低 10,000 インプレッション * $1/インプレッション / 10 日
  • = $1000/日

クライアント 2:

  • 100 ドルで 1,000 インプレッション
  • = 最低 1,000 インプレッション * $.01/インプレッション / 365 日
  • = $0.27/日。

クライアント 3:

  • $5000 で 1,000 クリックまたは 10,000 インプレッション
  • = min(1,000 クリックを得るには 100,000 インプレッション、10,000 インプレッション) = $5000 で 10,000 インプレッション
  • = 最低 10,000 インプレッション * $0.5/インプレッション / 365
  • = 13.7 ドル/日。

クライアントは、1 日あたりの支払額に基づいて優先されます。

于 2009-08-03T19:30:59.793 に答える