![822df352121a6f3476d1f07bd639b184.png](https://i-blog.csdnimg.cn/blog_migrate/567a24fb367f102d28b57fe5bd5638e0.jpeg)
互联网广告系统本身是一个对稳定性和可靠性要求极高的系统,每天面对数十亿级别的请求,广告投放主多样的投放方式变化与用户关注点及兴趣频繁的更新,同时对时效性要求严格,而作为电商广告的计费系统,则要求更加严格, 从打点到计费任何一环节出现问题,都会带来巨大的经济损失和平台信任度危机,涉及到商家账户资金,系统实时反作弊和防刷,亿级别点击(曝光)等高效稳定账务扣费,数据的强一致性和最终一致性的保证及全链路高效可靠的监控..
本次主要介绍下蘑菇街广告计费系统的持续优化改进中,系统容灾方面做的一些事情
一.计费系统介绍:
广告对很多互联网公司营收占有非常重要的比重,对互联网广告大家应该不陌生,日常pc和app应该见过很多(弹窗广告,视频广告等),电商来说也是非常重要的营收方式,那么这些广告是怎样计费的,先来了解下几种常见的计费模式
CPC(Cost Per Click ) : 按点击计费的商业产品,对于电商,常用于站内广告资源位,用于推广商品
CPS (CostPer Sale ) :按成交计费的商业产品,站外引流,站外长尾流量,用于推广商品/店铺
CPM(Cost Per Mille, 或者Cost Per Thousand;Cost Per Impressions) : 按曝光计费的商业产品,站内banner位等资源,用于推广品牌店铺
其他还有比较常用的,如:CPD(按天计费),CPT(按时间计费),CPA(按激活或者行为等).
广告计费系统的数据流,如下图所示:
![5b5f2bb39a9dace236c4331ee28841f7.png](https://i-blog.csdnimg.cn/blog_migrate/9927565208ab983e3a86421cf406d5b6.jpeg)
数据来源:web端用户对广告触发行为产生数据,主要是广告资源位上广告的曝光,点击等
数据收集:用于接收web产生的广告数据,为了保证下游系统的稳定性,盗刷及恶意流量一般这层要给拦截住,核心必须保证性能高效及数据防刷功能
数据处理:广告系统计费最核心的功能部分,主要是计费数据的处理,涉及到计费策略,计费金额核算,反作弊及对余额或者预算不足广告进行上下架等操作
数据存储:主要是对处理过的流水,账务及广告数据的持久化
和数据流结构对应,我们来了解下蘑菇街现在广告计费系统,整体架构如下,其中billingWorker是处理计费数据最核心的程序,unionLogAgent是自研支持规则定制和流量切分的数据收集程序,后面会对每个部分的技术及设计做重点的介绍.
![a01bec2b3cad124838b6870352ac7b78.png](https://i-blog.csdnimg.cn/blog_migrate/9a8dc76053157c19b8b720ed3ccfdaf1.jpeg)
二.系统容灾设计