文章目录
- 暨 广告、推荐、搜索 三大顶级复杂业务之 “广告业务系统详叙”
- 广告系统的核心功能
- ADX 架构流程概述
- 典型 ADX 架构图概述
- 消息中心
抱歉,有段日子没码字了,后面会尽量补出来分享给大家。这段时间整理了关于 “广告业务” 相关的思考,作为 典型的、复杂的、 业务 , 高并发、高可用、高流量的架构系统, 及其具备学习性、借鉴性,对个人成长和团队提升有重大意义。
广告业务系统 将以一个系列的形式给大家见面,大家记得留意后续或关注微信公众号。
暨 广告、推荐、搜索 三大顶级复杂业务之 “广告业务系统详叙”
在互联网中,广告系统、推荐系统、搜索系统 是公认的典型复杂业务系统。当然,并不是说其他业务不复杂,无深度。只是从系统设计面临的痛点、业务应用场景、生产数据规模、业务演进模式 等多个角度出发对比,使这三个系统从数不胜数的基数里面脱颖而出。
这里简单提一嘴,广告较另两个更特殊的一点是:广告是商业变现的最佳手段之一,在90%的公司里都是核心收益来源,渗透在各个业务之中。
换句话说,它很重要,且不可少!
广告系统的核心功能
广告系统,简称 ADX。主要承接入口流量,并透出与之契合的广告物料。
这里的契合代表了多个含义,涉及 广告业务 三方关系。首先,用户对当前物料不会有抵触情节,且满足其需求为最佳;另外,当前物料需要使平台收益最大化,或可以理解为相同类型物料中,出价最高的那个;最后,当前物料符合广告主的最大预期,可以是点击、观看、或者下载、注册等等。
这个契合也带出了 广告业务模式的核心点:在三方关系中找到平衡点的同时,各自利益最大化。 而这个点,在博弈论中叫做 “纳什平衡“。
注:这里的 ADX ,主体方为 平台,以平台为主视角叙述。
ADX 架构流程概述
上面说了一堆系统很复杂的话,具体的体现点就在,它的核心功能描述上。
下面简单列述几处,大家可以有直观的思考:
- 入口流量规模:一般于公司主业务流量对齐,甚至超过【接入第三方流量,赋于广告能力】
- 流量的真伪:反作弊内容相关
- SLA:通常 P90 在 200ms 左右,上下 50ms 浮动【具体业务具体分析】
- 流量拆分策略:流量类型辨别区分,及如何分发不同的投放引擎
- 投放引擎:如何从庞大的物料池中选出候选集合,及如何在有限的内存中处理大数据
- 人物画像:如何对用户做完整且实时的画像描述
- 竞价策略:如何在多个候选中筛选出最佳候选
- 广告结算:广告投放出去后如何结算,及如何进行数据归因
- 曝光/互动/…等数据上报:c2s、s2s 上报链路
- 链路监测:如何对整个广告系统做健壮性监测
- 服务依赖中的层级现象:如何避免微服务故障引发层级响应
- 降级方案:如何应对特殊情况做的灾备策略
- 性能压缩:如何在业务迭代中保持性能优势
- …
等等,当然这些问题或许在其他业务中也存在,下面讲带着这些问题,逐一讲解各个环节。
典型 ADX 架构图概述
这是比较经典的 ADX 架构图,涉及 前/后 链路,大家可以点击收藏。
-
前链路:站内/外流量从前置服务进入之后,将通过漏斗模型,筛选合法流量进入到流量引擎;流量引擎把当前流量的画像带给下游投放引擎的同时,会遵循对应投放引擎的分发规则;投放引擎会依据画像从物料库中召回符合圈定范围的候选集合,同时进行排序,择出最优候选;流量引擎拿到全部投放引擎给的候选集合后,将再次进行二次竞价,择出每个广告位的最佳候选;前置服务依据最终候选去收集对应的渲染样式,最终数据回到站内/外进行终端的展示。
-
后链路:包括两部分,一部分是物料的由来;一部分是数据的监测。
-
物料:广告主首先接入平台时,会经过 CRM 系统,敲定相关合同主体、主体资质、结算方式、及返点系数 等等信息;接着会在 BP 平台创建规则/上传广告素材及当前规则圈定的人群包/地域【广告投放的条件,比如,剃须刀客户将圈定男性特征】等;BP 平台审核/校验之后,将规则/素材下放至消息中心,由消息中心进行业务过滤/筛选,并分派至具体投放引擎及投放场景等等;供投放引擎在前链路部分获取使用。
-
当然,在此过程中涉及到的召回和倒排等数据处理分别由不同的链路和模块独立进行。
-
当指定规则投放到期后,结算侧将通过消息中心进行物料及规则的下线。至于结算侧是如何知晓订单/合同/投放到期,涉及数据监测部分。
-
-
监测:监测数据由端上/Server 两部分构成,分别对应 c2s\s2s 形式。
- 在 c2s 中,会把曝光/点击的记录日志直接回传给 DSP 和结算侧,供其计数/归因计算;
- 在 s2s 中,曝光/点击的记录日志 将会回传至结算侧,由结算侧进行数据分析/完善后至 监测服务,进而将数据反馈给 DSP 侧。
两者区别,在于数据真实性及数据分析处理能力。c2s 数据相对真实,且用户侧数据丰富,但接收端的 DSP 侧需要一定的数据分析处理能力;s2s 数据更倾斜与投放链路侧【竞价/胜出价钱…等】,数据相对成熟、直观,无需 DSP 具有上述分析能力。
注:前后链路以是否存在入口流量参与流调链路为判定依据。
后续我们将从其中的 消息中心 环节开始介绍。
消息中心
消息中心,是为 投放引擎 做客户信息及素材同步的环节,与 bp 平台、结算侧、投放引擎 进行数据实时交互,是 投放引擎生效的重要环节…
见后续文章!
推荐阅读:
三行代码搞定 —— 反转链表…
Kafka 高吞吐、高性能核心技术及最佳应用场景…
HTTPS 如何保证数据传输安全 —— TLS 协议…
五分钟搭建基于 Prometheus + Grafana 实时监控系统…