我正在创建网站的客户想要一个自定义广告“引擎”。计划是在网站上放置一些广告,然后用Google Adsense填充其余广告,直到所有广告都已满。
我的问题是如何确定要播放的广告。 (现在假设我只有1个广告位置。)我的想法是我有一张桌子:
我可以做点什么来获取广告:
SELECT *
FROM ad
WHERE impressions > used_impressions
OR impressesions = 0
ORDER BY RAND()
LIMIT 1
但是,我说我有3个广告:
从统计上讲,所有3个广告都会显示相同的次数。到第一周结束时,网站上有15000次点击,前两个广告将使用所有展示次数和剩余的3个星期,并且不再显示;只会显示Google Adsense。
如何将广告分隔出来,以便在一个月内展开广告?
我正在使用LAMP。
答案 0 :(得分:3)
达里尔,
我建议按天打破广告展示次数,以便
1 ad - 5000 /(monthsToDisplay / 30)
这会为您提供每天需要投放的大量展示次数,并且应该可以帮助您在几周内完成各种展示。因此,假设您有这些变量或数据库字段:
totalImpressions = 5000;
dailyImpressions = totalImpressions /(monthsToDisplay / 30)
然后你可以这样做:
SELECT * FROM ad WHERE (totalImpressions > used_impressions AND dailyImpressions > used_dailyImpressions) OR impressesions = 0 ORDER BY RAND() LIMIT 1
希望这是有道理的 - 这是在这里的清晨,但我会稍后再回来查看!
贝尔蒂
答案 1 :(得分:0)
您正在谈论AdServing类型的技术。有多种方法可以确定应该展示哪个广告。
上述事件传递方案通常称为“偶数飞行”。这意味着,广告将在广告系列期间均匀投放。这并不总是最好的。有时广告客户只想要投放。
“Even Flighting”不应单独实施。您应该首先实现“频率上限”。这意味着相同的广告不会超过设定的次数而向同一个人投放。例如,如果用户在看到广告5次后没有点击广告,则他们就不会点击。在这种情况下,您应该投放另一个广告。
结合使用此方法,您可以确定当天需要投放的展示次数..然后根据每个用户确定...确定用户看到广告的次数。如果他们可以再次看到它,那就显示出来..否则..显示adsense。
但是,建议您使用Google广告管理系统或OpenX等免费广告服务器会更好。他们已经解决了所有这些问题,没有必要重新发明轮子。