文中所有实现方案全部基于storm、hadoop以及nosql等开源技术
计算广告学概念:点击此处
计算广告的运作系统主要包括广告算法、广告、语境、受众(用户)四个方面,针对这四个方面当下的广告形式可归纳为三类:基于文本分析、基于用户分析和基于用户参与。
一、基于文本分析
这种形式最常见的就是浏览的网页内容的与广告主题的匹配,比如看关于诺基亚1020自拍神器的测评文章,同时网页的广告投放商根据文章投放的是1020的销售商的广告。
1.实现的方式是如下的流程:
(1).发送文章网址给广告投放系统
(2).投放系统进行抓取和主题分析
(3).根据分析出的主题进行广告主题匹配筛选
(4).依据其他因素进一步筛选
(5).将广告投放出去
2.方案与方案实现分析:
A方案:
(1)广告前端js分为两部分,第一部分负责网址探测,为文章主题抓取服务,负责将当前网页地址发送回广告投放服务端。第二部分负责广告投放,将服务端解析出来的广告在前端展示出来
(2)在服务端接收到需要解析的网址后调用文本解析引擎获得网址的主题关键词
(3)从缓存系统中以广告关键词作为key获取广告的id
(4)将广告id作为条件,以其他因素作为key在mongodb中进行过滤
(5)确定最终的广告id,从mongodb中获取广告内容
(6)投放在用户端
此方案有一个严重的问题就是对网址解析需要较长的时间,而且其中网络传输所占时间比较大,无法通过提高系统性能进行改善,必定影响广告投放的时间甚至出现空白广告的情况,可以采用默认广告的方式,但是整个系统广告投放的平均响应时间和被解析网址的平均响应时间成正比,不可控性太大,不是很好的选择。
B方案:
(1)广告前端js分为两部分,第一部分负责网址探测,为文章主题抓取服务,负责将当前网页地址发送回广告投放服务端。第二部分负责广告投放,将服务端解析出来的广告在前端展示出来
(2)分析发送的网址是否曾经解析过,如已经解析过直接跳转到(4),没有解析过则到(3)同时发送默认广告
(3)在服务端接收到需要解析的网址后调用文本解析引擎获得网址的主题关键词
(4)从缓存系统中以广告关键词作为key获取广告的id
(5)将广告id作为条件,以其他因素作为key在mongodb中进行过滤
(6)确定最终的广告id,从mongodb中获取广告内容
(7)投放在用户端
此方案避免了服务平均响应时间与网址解析时间的正相关,但是在无记录网址上首次展示的广告可能与内容不太匹配,影响部分广告投放的准确性。