假设我的系统可以提供3个广告。如果我希望所有三个在一周内交付大致相同的次数,我可以选择每次1-3之间的随机数,然后提供广告1,2或3。
var ads = [
{id: 1, img: '/img/ad01.jpg'},
{id: 2, img: '/img/ad02.jpg'},
{id: 3, img: '/img/ad03.jpg'},
];
var rand = Math.random() * ads.length | 0;
// v------ This ad will be delivered ~33% of the time
return ads[rand];
var share = [
{adId: 1, share: 20}, // <----- adId 1 is shown ~20% of the time
{adId: 2, share: 30},
{adId: 3, share: 50}
];
澄清,
我将所有这些信息存储在服务器中。存储所有广告的地方,以及所有设置,例如何时投放,时间的百分比等等。我要问的是如何计算他们当前的投放安排,并在每个广告投放时进行调整。
答案 0 :(得分:1)
((如果您有其他想法,请告诉我))
在预算耗尽之前均匀投放广告的算法。
其中:
ratio = when to display ads
target = targeted impressions to be made by all ads
capacity = total requests
accrued = impressions being made
应仅计算期间的所有值。例如:容量=仅在定义的时间段内传入的总请求数(即1小时内传入的总请求数),而不是整个时间。
这个等式的作用是定义一个可以包含在随机化逻辑中的支出比率。因此,只有部分请求才会显示广告。
您必须对给定时间段内的所有请求求和。按期间我的意思是,时间范围例如:可能是1小时。之后,每个句点结束重置请求计数到0。
并且,通过使用上面的等式,您可以计算何时展示广告。当然,您将需要在广告中使用称重算法,但这是另一个问题。