程序化交易广告
由于金融这边计算搭建一套自己的广告系统,恰好我之前参与过商城精准通从0到1的搭建,和后期到数十亿的流量发展,对各个环节都比较熟悉。顺便趁此机会也记录下来。要讲的东西太多,这次就先列个提纲,说明下如何划分系统和各个系统的主要功能,后期有时间再逐个完善。
1、广告推荐系统整体业务架构,都有哪些业务模块,相互的职责是什么 我觉得这个问题涵盖了挺多问题的,问的比较泛,需要详细了解刚才说的3个模块。
1.主要包含以下几个模块: 1、DSP:全称“Demand-Side Platform”,需求方平台,是为广告主、代理商提供一个综合性的管理平台,通过统一界面管理多个数字广告和数据交换账户。
2、SSP:SSP是Sell-Side Platform的缩写,即供应方平台。常见平台有百度SSP、360SSP
3、RTB:(全称:RealTime Bidding)实时竞价,是一种利用第三方技术在数以百万计的网站上针对每一个用户展示行为进行评估以及出价的竞价技术。
4、DMP(Data-Management Platform)数据管理平台,是把分散的多方数据进行整合纳入统一的技术平台,并对这些数据进行标准化和细分,让用户可以把这些细分结果推向现有的互动营销环境里的平台。
5、ADX(ad exchange):互联网广告交易平台,它联系着DSP(买方平台)和SSP(卖方平台),通过接入SSP汇集大量媒体流量,从而收集处理属于广告目标客户的数据,AdExchange是实现精准营销的交易场所。 下图简要的说明了DSP、ADX、SSP之间的关系:
2、针对上面问题,特别需要说一下,如何计算广告投放效果、需要记录那些数据,以及技术实现方式
广告的计费方式有cpd,cpc,cpm,cpa等。对商家而言,广告投放效果主要看ROI(=GMV/广告费用),需要记录的主要是广告的曝光量,点击量,和相对应广告带来的GMV和广告消费数据的统计。 这里面的效果,也涉及到埋点,订单计算规则。直接订单,间接订单。 直接订单是用户直接贡献的订单,间接订单可以是认为用户浏览了该商品,但最终购买的是同类商品。
3、广告推荐系统整体技术架构,或者也有可能上述3个模块是分开的技术架构
广告推荐系统主要包括:
投放系统:记录商家素材和素材投放人群标签,存放到数据库中。
索引系统:将商家素材同步到缓存中。
播放系统(RTB):获取用户标签,从索引系统中拉去合适素材,根据价格和ctr预估等一系列算法排序,进行投放。
日志系统:记录广告的播放/点击量,扣费。
旁路系统:
ctr预估系统:预估素材的点击率
搜索广告:需要NLP之类的语义分析
推荐系统:根据用户或item,利用各种推荐算法,推item。
DMP系统:对这些数据进行标准化和细分,让用户可以把这些细分结果推向现有的互动营销环境里的平台。
4、广告推荐系统的基础技术组件有哪些,以及如何解决高并、海量数据规模下,推荐系统,存储计算,可用性以及实时性等技术挑战。
4.1基础技术组件:
1.投放系统:注重功能,对并发等要求不高,主要用Java开发。
2.存储:mysql
3.日志传输:kafka,flink,Hadoop
4.缓存:redis
4.2高并发,海量数据规模下存储计算,可用性以及实时性等技术挑战。
采用Nginx和redis等高性能组件。
架构上提供同质化服务,方便水平扩展服务器;
降级:架构上,各种旁路系统皆通过单个接口调用,超时设置,功能开关等设置,在旁路系统故障时候,不影响主要基本流程。
接口间采用pb协议,节省流量带宽和解析速度。