我正在为其创建网站的客户想要一个自定义广告“引擎”。计划是在网站上转换一些广告,然后用 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/