algorithm - 广告轮播: What's the best to determine when and what ad should be displayed on the page?

标签 algorithm random

我正在为其创建网站的客户想要一个自定义广告“引擎”。计划是在网站上转换一些广告,然后用 Google Adsense 填充其余广告,直到所有广告位都填满。

我的问题是如何确定要展示哪个广告。 (现在假设我只有 1 个广告展示位置。)我的想法是我会有一张 table :

  • 年份
  • 当月展示次数(0 表示无限制)
  • 使用印象
  • 客户
  • 用于显示广告的 HTML 代码

我可以做一些事情来获取广告:

SELECT * 
FROM ad 
WHERE impressions > used_impressions 
    OR impressesions = 0 
ORDER BY RAND() 
LIMIT 1

但是,假设我有 3 个广告:

  • 1 个广告 -- 5000 次展示
  • 1 个广告 -- 5000 次展示
  • Google Adsense 填充网站点击率的 reaminder

从统计上讲,所有 3 个广告的展示次数相同。到第一周结束时,网站的点击次数达到 15000 次,前 2 个广告将用完所有展示次数和该月剩余的 3 周以上,不会再次展示;只会显示 Google Adsense。

我如何隔开广告,以便它们分布在一个月内?

我正在使用 LAMP。

最佳答案

达里尔,

我建议按天分割广告印象,这样

1 个广告 -- 5000/(monthsToDisplay/30)

这将为您提供每天需要提供的展示次数,并且应该有助于在几周内很好地分发内容。因此,假设您有这些变量或数据库字段:

总展示次数 = 5000;

dailyImpressions = totalImpressions/(monthsToDisplay/30)

然后你可以这样做:

SELECT * FROM ad WHERE (totalImpressions > used_impressions AND dailyImpressions > used_dailyImpressions) OR impressesions = 0 ORDER BY RAND() LIMIT 1

希望这是有道理的 - 现在是清晨,但我会稍后再回来查看!

贝尔蒂

关于algorithm - 广告轮播: What's the best to determine when and what ad should be displayed on the page?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/632760/

相关文章:

java - 随机数未初始化

c# - 结构化顺序处理的最佳设计模式

php - 我如何整合 Reddit 页面/帖子排名算法?

algorithm - 使用另一个随机函数的随机数

c++ - mt19937 生成的重复值

ios - 两个数字之间的随机 float ?

php - 排除选择的算法

algorithm - 将纪元以来的秒数转换为日期

生成 k 个字符的大小 n 组合的算法

cryptography - 可以使用什么机制在智能手机上轻松生成高熵密码,而无需求助于字母数字输入?