平滑化算法在一个月内均匀投放广告

时间:2011-08-10 18:53:32

标签: c# algorithm math statistics

假设我有10个广告在网站上显示。

如果广告#1在某个月内显示为100K,您将如何在一整天内均匀/平稳地展示这些广告?

我必须考虑流量高峰,所以我不能简单地将30天除以每天100K或3K的展示次数。

此类问题域是否有公式?

3 个答案:

答案 0 :(得分:9)

嗯,首先,您无法知道您的网站将获得多少次访问,因此您无法确保每个广告都会显示完全 X次。例如,如果广告#1要显示100K次,而广告#2要显示200K次,但您只获得150K次访问,那么您可能会满足任何需求。而另一方面,如果你获得600K访问量,那么每次访问都应该没有广告。但你无法事先预测这一点。

因此,我建议像tskuzzy一样 - 随机挑选广告,但调整他们的概率,以便他们接近适量的观点。当然,跟踪每个广告的展示次数,并在达到限制后将其从轮播中删除。

让我们看一个例子。假设您有两个广告。广告#1仍需要再展示7天,并且需要获得70多个观看次数。广告#2需要再显示10天,并且需要20多个观看次数。因此,广告#1应该每天平均显示10K次,广告#2 - 每天2K次。因此,广告#1出现的概率应为10 /(10 + 2)= 5/6,广告#2的概率应为2 /(10 + 2)= 1/6。因此,对于每12K次观看,您将平均获得广告#1的10K视图和广告#2的2K视图。这就是你需要的。

在每天开始时重新计算这些概率,并且只会同时添加新广告。如果您在当天中间添加新广告,则会使事情变得复杂。但是,如果您以秒为单位计算时间,而不是以天为单位,它也可以正常工作,因此您也可以这样做以获得更高的准确性。如果你经常重新计算所有内容,请密切注意性能。

答案 1 :(得分:2)

计算广告的相对比例,并在当天的任何给定时间以该概率显示广告。

假设您有3个广告:

Ad 1 - 1000 impressions
Ad 2 - 5000 impressions
Ad 3 - 4000 impressions

您将在10%的时间显示广告1,在50%的时间显示广告2,在40%的时间显示广告3。每次展示广告时,都会相应地更新剩余的展示次数和概率。<​​/ p>

答案 2 :(得分:0)

尝试搜索"ad swapping" +algorithm"ad round-robin"等字符串。谷歌没有为第一次搜索返回任何好处;试试duckduckgo.com。 Vilx-给出了很好的回应。我只想添加遗漏的东西:

提问者暗示说,他担心在很短的时间内,一个非常高的峰值(“slashdot效应”)供应商用尽所有轮换广告的可能性非常大。这可能从未考虑过,直到实际发生之后,听起来他的公司还不够大,无法达到这个问题。今天的网络2.0病毒“15分钟的成名”使这成为一个非常现实的问题。

因为没有人愿意为那些带来“非多元化受众”的高峰而浪费广告,所以只会出现代码无法解决的非技术性问题。

这导致唯一可能的回应:在广告合同中准备极端服务例外条款,以概述补偿/重新支付%政策(对海报的广告经销商公司不公平)或停止投放广告完全符合预期(就像某些股票,有时整个股票交易所完全停止所有交易,当一些事情严重错误时 - 美国在线昨天就这样做了)。毕竟,百万广告全部送达!您现在可以开放给新客户! (并失去旧的)。必须达成中间地面政策,但不平衡很常见......毕竟,我们知道当您完全使用您网站的带宽时会发生什么 - 收件人和/或粗鲁的结算信息表明租赁者没有获得不公平的服务超出他们签约的流量...上限电话数据计划是另一个例子......你要么额外收费而失去客户,要么停止提供果汁而且也失去了它们。失败,所以有人必须放弃一些契约力量,这取决于销售部门,而不是像我们这样的编码员。

还必须模拟这一点,以了解当您在一天内仅为100万个计划广告自动投放一百万个广告时,网页如何显示“空”广告 - 毕竟,没有人愿意看到零广告其他29个工作日!

这是一个棘手的问题,因为内容提供商(博客使用广告制作商补贴的网页)也可能会因为您的托管服务达到带宽限制而疯狂......所有这些都与您的广告收入同时存在提供商会给您的中型企业带来某种商业问题。这可能在大学电子商务课程中讨论过,并不是任何人都可以解决的问题。