【问题标题】:What is the algorithm to choose which ad will be first?选择哪个广告首先出现的算法是什么?
【发布时间】:2013-03-03 22:00:27
【问题描述】:

我需要一个公式来计算哪个广告会先投放。

好的,问题来了:我正在开发一种新的广告方式的系统。广告商将为一个类别定义他们的总预算和最高每次点击费用。

如果同一类别中有多个广告客户,谁的广告会先投放,顺序是什么?

这是一个例子:

Advertiser # | Total Budget | Max CPC
-------------|--------------|---------
1            | $1000        | $1
2            | $1,000       | $5
3            | $500         | $10
4            | $10,000      | $4 

并且类别的平均点击率为 %2

是的,所有数字都是假的。

那么,谁的广告会先投放,为什么以及如何投放?我该如何制定这个?

【问题讨论】:

  • 这不是真正的“编程相关”问题
  • 我认为,如果您更好地描述问题域,您将获得更好的答案。知道什么是 CPC、CTR 等的人比知道如何提出算法和公式的人少得多。此外,这几乎不是一个编程问题(目前)。
  • 什么是每次点击费用,您如何定义哪个更重要?我想您需要超过已展示广告之类的因素?
  • 因此,我假设每个类别的平均 CPC 和 CTR。当广告商想要开始一个活动时,他们应该定义他们的总预算,并且他们应该为点击出价作为 CPC。所以这样想;它将根据此算法显示广告,但应根据总广告系列预算和最高 CPC 的比率显示所有广告。像这样:如果我有 4 个广告客户、4 个广告和 100 个广告位,它们应该以不同的比例显示在不同的广告位中。第一个将占用插槽的 %45(示例),第二个将占用 %30,第三个将占用 %20,最后一个将占用 %5
  • 我认为将您的“公平”理念融入算法非常困难。公平是一个抽象的概念,它会从一个人的感知变为另一个人的感知。例如,我对公平头发的看法是直接竞争——那些支付最多 CPC 的人将得到服务。他们的预算规模不应该参与其中,因为他们的 $ 价值与下一个 $ 一样多。

标签: performance algorithm formula advertisement-server serving


【解决方案1】:

通常每次点击费用在出价系统上工作 - 那些愿意为点击支付最高费用的人将首先显示,因为这将为广告服务器带来最高利润(假设所有广告都具有同等吸引力)。

假设广告商 1 愿意为每次点击支付 0.60c 广告商 2 愿意为每次点击支付 0.75 美分

您将在每次达到他们的预算之前首先为广告客户 2 提供服务,然后再继续为广告客户 1 提供服务。

服务是每个广告客户的目标,因此您可能应该向人们展示他们的排名,以鼓励他们为每次点击支付更多费用。

然而,这并不是一种“新的广告方式”。

执行此操作的算法如下:

    function get_best_ad(var category){

            //get all ads in that category                      
            array ads = get_ads_by_category('category'); 

            //sort them so the highest big is first in the array
            ads = ads.sort_by_bid('desc');

            /*the owner is the advertiser, their wallet is how much remains of their budget, the bid is how much is costs for that ad to be clicked. The first ad that can be served is returned; breaking out of the loop and method*/
            foreach(ads as ad){
                if( ad.owner().wallet > ad.bid() ){
                   return ad;
                }
            }
    }

【讨论】:

  • 谢谢约书亚。我并不是说这是新的广告方式,所有系统都会如此。不会像你说的那样公平。这是不公平的,因为如果我按照你说的做,在最高出价者活动结束之前,我不能发布其他广告。所以;它将根据此算法显示广告,但应根据总广告系列预算和最高 CPC 的比率显示所有广告。像这样:如果我有 4 个广告和 100 个广告位,它们应该以不同的比例在不同的广告位中可见。第一个将占用 %45(示例)插槽,第二个将占用 %30,第三个将占用 %20,最后一个将占用 %5
  • 那么可以说您使用的是介于每次点击费用和展示次数之间的模型吗?
  • 您可以按百分比分配随机数吗? -rand(0,45) - 45% -rand(0,30) - 30% -rand(0,5) - 5% 然后取最大的数并为他们服务
  • 不使用不公平的模型,我只是尝试订购出价并为他们生成最大点击次数。这都是基于 CPC 的系统,但主要问题是找到一种方法来调整总投资和竞价 CPC。这就是为什么,我尝试展示所有广告,但根据他们所做的投资和出价对它们进行排序。
  • 哦,他们的预算越大,您就越希望他们的广告投放?
【解决方案2】:

根据我开发广告平台的经验,最好的选择是首先展示点击次数最多的广告,就像在发布商眼中,他们想从广告中赚钱,如果您的广告服务器在 10 次展示相同的广告而收入为 0为什么出版商继续使用你的系统?

分析广告的点击率和按每次点击费用排序,并根据用户兴趣/性别/位置等搜索最佳广告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多