首页
学习
活动
专区
圈层
工具
发布

Ads系统
EN

Stack Overflow用户
提问于 2009-03-25 04:54:56
回答 3查看 329关注 0票数 1

我正在为一个ASP.NET网站创建一个广告系统。这个网站有一个为广告商准备的栏目。他们在那里注册和发布广告,他们会先为广告支付最高预算,有一个每天的预算,这样广告商就可以控制他的预算,会有很多来自不同广告商的广告在网站上显示。广告有最大预算和每日预算两个属性,我如何选择广告,一个广告可以显示多少次,谁能给我一个方法或算法。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-25 05:02:04

我建议看一下调度算法。

例如,您可以使用预算来确定次数/周期(天/周/等),并将其用作weighted round robin schedule.中的权重因子这将是一种简单的方法,可以在一段时间内均匀地平衡来自不同广告商的请求。(注意:上面的链接更适合于网络数据包调度,但基本算法可以工作...)

票数 1
EN

Stack Overflow用户

发布于 2010-10-27 21:02:47

嘿,Priyan,这是我们在AdServerBeans中如何处理它的(http://www.adserverbeans.com -它是开源的,你可以查看源代码):

代码语言:javascript
复制
DROP FUNCTION if exists get_speed;
CREATE FUNCTION get_speed(from_date DATETIME, to_date DATETIME, views_limit INT, views_served INT, now_date_time TIMESTAMP)
  RETURNS double
  DETERMINISTIC
  NO SQL
BEGIN
  DECLARE banner_total_serving_time INTEGER;
  DECLARE banner_served_time       INTEGER;
  DECLARE percent_time_served        DOUBLE;
  DECLARE percent_ad_events_served    DOUBLE;
  IF (views_limit IS NULL OR views_limit=0) THEN RETURN -1;END IF;

  IF (views_served IS NULL) THEN SET views_served = 0;END IF;
  IF (banner_total_serving_time = 0) THEN SET banner_total_serving_time = 1;END IF;
  IF (views_limit = 0) THEN SET views_limit = 1;END IF;

  SET banner_total_serving_time = TIMESTAMPDIFF(SECOND, from_date, to_date);
  SET banner_served_time = TIMESTAMPDIFF(SECOND, from_date, now_date_time);
  SET percent_time_served = (100 * banner_served_time) / banner_total_serving_time;
  SET percent_ad_events_served = (100 * views_served) / views_limit;
  RETURN percent_ad_events_served - percent_time_served;
END
;;

此MySQL函数返回负数或正数。如果我们表现不佳,则为负值;如果表现优异,则为正值。表现不佳-发球,表现超群-跳到下一个标语或不发球。

我希望输入参数是自解释的。

票数 2
EN

Stack Overflow用户

发布于 2016-01-12 08:25:09

我认为你应该使用不同的算法来解决你的问题。通常,在这样的系统中,你有:

  1. ASAP (活动将在没有limitation)
  2. Even分发/重新分发的情况下尽快显示,如果过度提供(活动的流量将在指定的时间段内均匀分发。如果由于任何修改导致活动超额交付,将计算新的流量分配,以便在time)
  3. Even分配的剩余时间段内以两半均匀分配剩余的业务量(均匀分配两半功能类似于均匀分配/重新分配选项。但是,它允许用户将一定数量的流量分配给活动的前半部分,并将另一流量分配给后半部分。如果适用,则通过考虑活动的总持续时间、每周时间表及其多个开始和结束日期来计算减半。然后,系统获取总流量,将其乘以为每一半设置的相应百分比,并在每个half.)
  4. Adaptable even distribution内统一分配流量(流量将根据活动将运行的站点的流量分布进行分配。更多的流量将分配到高峰时段,而较少的流量分配到非高峰时段。当活动接近其计划结束日期时,将加快流量分配,以确保实现目标。)

如果太多的算法是你不想处理的事情,那么只需尽快实现,我的意思是,如果广告商能够获胜,他仍然会赢得他的日常预算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/680264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档