第一章:广告系统概述

大家好,我是你们这门课的老朋友。今天咱们聊聊广告系统的全貌。

说实话,我刚入行那会儿,对广告系统的理解就是「在网页上放个banner,有人点就收钱」。后来真正参与了一个DSP的搭建,才发现这玩意儿远比想象中复杂。嗯,咱们今天就把这层窗户纸捅破。

1.1 互联网广告的商业模式

互联网广告的本质是什么?说白了,就是一场「注意力买卖」。

广告主想买用户的注意力,媒体方(比如新闻网站、视频App)想卖自己的流量。中间商赚差价,这就是最朴素的商业模式。

我习惯把整个链条分成三个角色:

  • 广告主:出钱的人,想获得转化(注册、购买、下载)
  • 媒体:有流量的人,想变现(展示广告位)
  • 平台:连接前两者,赚取技术服务费

你想想看,如果没有中间平台,广告主得挨个找媒体谈合作,媒体得自己养销售团队去拉广告主。这效率得多低?

核心公式:广告收入 = 展示量 × 千次展示收入(eCPM)

所有商业模式的优化,最终都落在这个公式上。

我在项目中遇到过一个小公司,他们自己开发了一套广告系统,结果发现连基本的流量反作弊都没做。一个月下来,广告主投诉说「钱花了,一个真用户都没转化」。这就是不懂商业模式的代价——你不仅要卖流量,还要保证流量的质量。

1.2 AD系统核心角色:DSP、SSP、Ad Exchange

这三个缩写,是广告系统里绕不开的。我当年面试架构师时,面试官第一个问题就是「说说你对DSP、SSP、Ad Exchange的理解」。咱们一个一个拆。

DSP(需求方平台)

DSP是替广告主买流量的。它像一个「智能采购员」,帮广告主在成千上万个媒体中,找到最合适的用户。

  • 核心能力:人群定向、出价策略、预算控制
  • 我建议:DSP的架构重点在实时计算,因为每次广告请求都要在100毫秒内完成决策

SSP(供应方平台)

SSP是替媒体卖流量的。它把媒体的广告位包装好,对接给多个DSP,让它们竞价。

  • 核心能力:流量管理、底价设置、广告位优化
  • 避坑指南:我曾经见过一个SSP,因为没做好流量分级,把优质视频流量和低质banner流量混在一起卖,结果优质流量卖不出好价钱

Ad Exchange(广告交易平台)

Ad Exchange是「交易市场」。它不直接参与买卖,而是提供撮合服务。

  • 核心能力:实时竞价(RTB)、流量匹配、结算清算
  • 说白了,Ad Exchange就是广告界的「证券交易所」
角色 代表谁 核心目标 技术难点
DSP 广告主 花最少的钱,买最好的用户 实时出价、人群画像
SSP 媒体 卖最高的价,不浪费流量 流量预估、底价策略
Ad Exchange 双方 公平、高效地撮合交易 高并发、低延迟

个人经验:如果你刚接触广告系统,我建议先从DSP入手。因为DSP的逻辑最贴近业务——广告主怎么想的,DSP就怎么设计。理解了需求,再看供给端(SSP)会容易很多。

1.3 RTB实时竞价流程

RTB(Real-Time Bidding)是广告系统的「心脏」。没有RTB,整个广告生态就转不起来。

为什么会这样?因为互联网广告的流量是「易逝品」——一个用户打开网页,这个广告位只存在一瞬间。如果不在这一瞬间完成竞价和展示,流量就浪费了。

RTB的流程,我习惯用「七步走」来记忆:

  1. 用户访问媒体:比如你打开一个新闻网站
  2. 媒体发起请求:SSP把广告位信息(用户ID、设备、位置等)发给Ad Exchange
  3. Ad Exchange广播:把请求同时发给多个DSP
  4. DSP出价:每个DSP在100毫秒内决定「这个用户值多少钱」,并返回出价
  5. Ad Exchange比价:选出价最高的DSP,通知它「你赢了」
  6. DSP返回广告:获胜的DSP把广告素材(图片、视频)返回给媒体
  7. 媒体展示广告:用户看到广告,整个过程不超过200毫秒

注意:RTB对延迟极其敏感。我曾经在项目中遇到一个坑——DSP的竞价服务用了Python的同步IO,结果每次请求都要等数据库查询完才返回。高峰期时,响应时间直接飙到500毫秒以上,Ad Exchange直接把我们拉黑了。

解决方案:改用异步框架,并且把用户画像数据预加载到内存中。

嗯,这里要注意一个细节:RTB不是每次都能成功。如果所有DSP的出价都低于媒体的底价,这次竞价就「流拍」了。媒体可以选择展示自己的广告(比如自家App的推广),或者展示一些公益广告。

我习惯把RTB比作「拍卖会」:

  • 用户是「拍卖品」
  • DSP是「竞拍者」
  • Ad Exchange是「拍卖师」
  • 出价最高的DSP获得展示机会

你想想看,这个流程每秒钟可能要发生几万次甚至几十万次。所以广告系统的架构,核心就是解决「高并发下的实时决策」问题。

关键指标

  • QPS(每秒查询数):决定了系统能处理多少流量
  • P99延迟:99%的请求在多少毫秒内完成
  • 填充率:成功竞价的请求占总请求的比例

我建议:刚搭建系统时,先保证P99延迟在150毫秒以内,再考虑优化填充率。

好了,第一章的内容就到这里。咱们把广告系统的商业模式、核心角色和RTB流程都捋了一遍。下一章,我会带大家深入DSP的架构设计——那个让我熬夜最多的模块。