互联网智能广告系统简易流程与架构。
业务简述
广告主在业务端投递广告
广告主登录业务端后台,进行设置:
•今日投放地域是“北京-上地” •投放类别是“租房” •定向人群为“女”,“30岁以下” •需要推广的广告内容是他发布的一条“房屋出租”的帖子 •竞价设置的是0.2元 •单日预算是20元
这些数据,当然通过业务端存储到了数据层,即数据库和缓存里。
用户来到了网站,进入了“北京-上地-租房”类别,广告初筛实施
合适的广告,必须符合“语义相关性”,即基础检索属性(广告属性)必须符合(广告能否满足用户的需求,满足了点击率才高),这个工作是通过BS-basic search检索服务完成的。BS从数据层检索到“北京-上地-租房”的广告帖子。
用户属性与广告主属性匹配,广告精筛实施
步骤二中,基础属性初筛了以后,要进行更深层次的策略筛选(用户能否满足广告的需求),此例中,广告主的精准需求为:
•用户性别为“女” •用户年龄为“30岁以下” •用户访问IP是“北京”
系统将初筛出来的M条广告和用户属性进行匹配筛选,又过滤掉了一部分,最后剩余N条待定广告,这些广告既满足用户的需求(初筛),这些用户也满足广告主的需求(精筛),后者是在AS-advanced search策略服务完成的。
综合排序,并返回Top X的广告
经过步骤2和步骤3的初筛和精筛之后,待选的N条广告既能满足用户当前的需求,用户亦能满足广告主的筛选需求,但实际情况是,广告位只有3个,怎么办呢?就需要我们对N条广告进行综合打分排序(满足平台的需求,广告平台要多赚钱嘛)。
出价高,但没人点击,广告平台没有收益;点击率高,但出价低,广告平台还是没有收益。最终应该按照广告的出价与CTR的乘积作为综合打分排序的依据,bid*CTR。
展现端展示了广告,用户点击了广告
展示了广告后,展现端js会上报广告展示日志,有部分用户点击了广告,服务端会记录点击日志,这些日志可以作为广告算法实施的数据源,同时,他们经过统计分析之后,会被展示给广告主,让他们能够看到自己广告的展示信息,点击信息。
对广告主进行扣费
用户既然点击了广告,平台就要对投放广告的广告主进行扣费了,扣费前当然要经过反作弊系统的过滤(主要是恶意点击),扣费后信息会实时反映到数据层,费用扣光后,广告就要从数据层下线。