我被要求为网站开发一个弹出式广告显示系统。它的作用是网站将记录用户访问的网址,并为他们显示最相关的弹出广告。
网站管理员首先需要定义一些群组(例如"高尔夫球手","视频游戏玩家")然后定义一些规则,例如:
如果用户访问网址格式http://www.domain.com/golf-clubs/ *并在该网页上停留超过10秒,则会将其分配给高尔夫球手组。
此外,网站管理员可以制作广告并将其分配给不同的群组。例如,他可以为高尔夫球手组的用户创建高尔夫俱乐部促销广告。当用户再次访问该网站时,系统将检查他是否属于任何组,并为他显示最相关的广告。
对于用户识别部分,我将简单地使用cookie,即为每个新网站访问者分配一个唯一的cookie。
对我来说,困难的部分是设计当用户属于多个组时要显示哪个弹出式广告的逻辑。例如,如果他同时属于高尔夫球手和视频游戏玩家组。而不是随机选择一个来显示,是否有更好的方法来处理这种情况?
我想出了一个我不知道它是否好的解决方案。也就是说,当为用户分配一个组时,它还会为该组提供一个分数。例如,如果用户同时属于高尔夫球手和视频游戏玩家组,但他对高尔夫球手组的分数较高,则系统将为他显示高尔夫球手组广告作为第一优先。
但这会产生另一个难题,如何为每个用户计算小组得分?我还需要考虑最近的页面访问更重要,例如,用户可能是高尔夫球手,属于高尔夫球手组,得分很高,但他最近访问了很多视频游戏网页并被分配到视频游戏玩家组,他应该在这个组中获得多少分数?
任何想法都会受到赞赏。
答案 0 :(得分:1)
您的问题非常接近某些操作系统问题。例如,当它决定要在缓存中保留什么以及删除什么时。两个"数字"和"时间"访问会影响决策,当然有很多政策可供选择。
在这里,我尝试制作一个,以展示它们的工作原理。我希望简化和管理,因此我使用权重LineChart
和访问次数mySerial = new Serial( this, Serial.list()[0], 9600 );
。对于每个类别,请保持访问次数w
及其相对时间v
。然后计算时间权重除以相对时间(除了过期时间)加上访问次数乘以相应权重:n
。
较大的t
会导致较低的分数,而较大的w/t+n*v
(访问次数)会提高分数。