Skip to content
Charles Shao
Go back

程序化交易模式精讲:按定价与保量两轴拆开 RTB / PMP / PD / PG

Updated:
views

在上一篇程序化广告生态全景里,顺着一次曝光把 DSP / SSP / ADX / Ad Server 这些角色串了一遍。但那篇默认了一件事:买卖双方一旦接上 OpenRTB,就”价高者得”地竞价成交。

现实远没这么单一。同一个广告位,媒体可以扔进全市场公开拍卖,也可以只留给几个谈好的品牌;可以让买家实时出价,也可以事先锁死一个固定 CPM、保证投够多少量。这些不同的玩法,就是程序化交易模式(programmatic deal types)——业内最常被混着叫的一组缩写:RTB、PMP、PD、PDB / PG

这篇文章不背术语表,而是先立两根轴,把四种模式钉死在一张坐标上;再讲清楚把它们在技术上粘合起来的那个关键对象——Deal ID;最后看媒体 Ad Server 是按什么优先级在这几种交易之间分配每一次曝光的。

TL;DR

Table of contents

Open Table of contents

1. 先立两根轴:价格怎么定、量保不保

新人看交易模式,最容易陷进”RTB 是实时的、PMP 是私有的、PG 是保量的……”这种平行罗列里,越记越乱。其实只要问两个问题,四种模式立刻各就各位:

  1. 价格怎么定? 是每次曝光实时竞价(auction)决出来的,还是买卖双方事先谈好的固定价(fixed price)?
  2. 量保不保? 媒体有没有把这部分库存**预留(reserve)**给某个买家、并承诺投够约定的量?

还有一根隐含的轴——计费方式:这四种模式基本都按 CPM(cost per mille,千次曝光计价) 成交,卖的就是”曝光”本身。这正是它们区别于按点击(CPC)、按转化(CPA / oCPX)计费的效果广告的地方——交易模式谈的是”以什么价、什么方式买到这次曝光机会”,至于买到之后按什么 KPI 优化,是另一层的事。所以下文凡谈价格,单位都是 CPM。

把这两根轴交叉,就是一张干净的 2×2:

实时竞价定价固定价
一对多·不保量RTB(公开竞价)
PMP(私有竞价)
一对一·不保量PD(优先交易)
一对一·保量PDB / PG(程序化保量)

四种模式从左下”全公开竞价”到右上”锁价锁量”,本质是一条从市场化到契约化的光谱。下面这张决策树就是媒体方在面对一次曝光机会时的思考路径:

程序化交易模式决策树:紫色起点「媒体的一次曝光机会」向下到灰色决策「价格怎么定?」;左支蓝色「实时竞价决定」到「向谁开放?」再分出蓝色 RTB 公开竞价(全市场)与琥珀色 PMP 私有竞价(邀请制);右支粉色「事先谈好的固定价」到「要不要锁量?」再分出粉色 PD 优先交易(不锁量)与绿色 PDB / PG 保量(锁量)。底部蓝色注解概括两轴分叉与从左到右的契约化光谱 两个分叉点就够了:先分”竞价 vs 固定价”,竞价侧再分”公开 vs 邀请”,固定价侧再分”锁量 vs 不锁量”。四种模式就是这棵树的四片叶子。

一个贯穿全文的直觉:越往右上角(保量、固定价)走,越像传统的”销售签合同卖广告位”,只是用程序化管道执行;越往左下角(公开竞价)走,越自动化、越便宜,但媒体对买家是谁、流量卖了多少钱越没有掌控。 交易模式的选择,本质是媒体在收益最大化、控制权、流量质量三者之间的取舍。

这条光谱也是一条时间线:程序化最早(约 2009 年起)就是 RTB 公开竞价,先解决”长尾库存怎么自动变现”;媒体很快发现优质库存被贱卖,于是催生了 PMP(约 2012 年起)来护盘提价;品牌广告主要的是确定性,又把传统直采搬进程序化管道,长出了 PD 与 PG(约 2014 年起)。所以这四种模式不是一次设计出来的,而是市场十多年里沿着”清长尾 → 护优质 → 要确定性”一步步加出来的——理解了这条演进逻辑,就明白为什么它们看起来像一组拼凑的黑话。

2. 竞价侧:RTB 与 PMP

2.1 RTB / 公开竞价:全市场价高者得

RTB(Real-Time Bidding,实时竞价) 在交易模式语境下,通常特指 Open Auction(公开竞价 / Open Exchange)——库存对接入交易所的所有买家开放,每一次曝光都跑一场实时拍卖,价高者得。

它的特征可以用三个”最”概括:

RTB 是程序化的”起点”和”兜底”。它解决的是变现长尾的问题:把那些卖不上价、但总比空着强的库存,用自动化的方式以市场价清掉。

2.2 PMP / 私有竞价:邀请制的小拍卖

媒体很快发现:把所有库存都扔进公开市场太亏了——优质库存(首页、核心版位、高价值受众)值更高的价,也需要更强的买家筛选。于是有了 PMP(Private Marketplace,私有市场),其典型形态是 Private Auction(私有竞价)

PMP 还是竞价、还是不保量,但加了三层”门禁”:

一句话:PMP = 带 Deal ID 和底价的、邀请制的小型 RTB。 它让媒体在保留竞价灵活性的同时,把优质库存卖给”对的人”、卖出更高的价,并大幅改善流量质量与透明度。

注意:PMP 是一个伞形概念。严格来说它既包含 Private Auction(私有竞价,仍是拍卖),也常被用来泛指后面的 PD、PG——因为它们都靠 Deal ID 在私有通道里执行。本文按最常见的口径,把 PMP 主要指代 Private Auction。

3. 固定价侧:PD 与 PDB / PG

竞价侧(RTB / PMP)的共同点是价格由市场实时决出、且不保量。而固定价侧反过来:价格事先谈死,按 CPM 计价,一对一交易。 区别只在量保不保。

3.1 PD / 优先交易:固定价 + 优先过目,但不锁量

PD(Preferred Deals,优先交易;也叫 Unreserved Fixed Rate) 是买卖双方一对一谈好一个固定 CPM,媒体把符合条件的库存优先喂给这个买家过目——这就是 first look(优先过目权)

关键在于”不保量、可放弃”:

PD 的价值在于”优先权 + 固定价”:买家不必参与竞价就能以约定价拿到优质库存的第一顺位选择权,又保留了”看人下单”的灵活性;媒体则锁定了一个高于公开市场的价格,代价是没有量的承诺。

3.2 PDB / PG / 程序化保量:锁价又锁量,等于程序化直采

到了光谱最右端,就是把量也锁死的模式——业内叫法很多:PG(Programmatic Guaranteed,程序化保量)PDB(Programmatic Direct Buy,程序化直采)、Automated Guaranteed 等,指的都是同一类东西。

它的本质是:用程序化管道执行一笔传统的”直采大单”。

PG 解决的是品牌广告主的核心诉求:确定性。大品牌做 campaign 要的是”我一定能在这个媒体的这个版位,投到约定的量”,而不是”也许能竞价到”。PG 把直采的确定性,和程序化的自动化(统一在 DSP 里做投放、监测、归因)合二为一。

这里要厘清一个常见误解:PG 的”保量”是双向承诺,而且”投满”这个动作是媒体(卖方)做的,不是买家。 两边各自锁死的东西不同:

角色承诺什么为什么是它
媒体 / 卖方保证**交付(投满)**约定的曝光量 + 预留库存库存和 ad serving 都在媒体手里,只有它能”投”出曝光
买家 / 广告主保证买下并付费约定的量(锁定预算)买家出钱,承诺把这批量吃下来

买家无法”投满”——它没有库存;它能承诺的是”买满、付满”。这与不保量模式(RTB / PMP / PD)正好相反:那里两边都不锁,买家不承诺买多少、媒体也不承诺给多少,逐次曝光看实时情况。

既然两边都做了硬承诺,任何一方没做到就要担责——这套违约 / 补偿机制,正是 PG”像传统直采”的地方:

一句话:保量带来确定性,但确定性不是免费的——它是用”双方都背上违约责任”换来的。媒体赌自己投得满、买家赌自己用得完,谁赌输谁补偿对方的损失。 而 RTB / PMP / PD 因为没有量的承诺,自然也没有这套违约机制:PD 买家逐次放弃完全合规,不算违约。

还有一个工程上的关键细节:PG 的曝光交付有两条路径,决定了它走不走 bidstream。

走哪条取决于媒体 Ad Server / SSP 的实现和双方的接入方式。对工程师的意义是:排查”PG 为什么没投出去”时,先搞清楚它到底走没走 bidstream——走 bidstream 就去查 Deal ID 匹配,不走就去查 Ad Server 的 line item 配置与优先级,两条路的排查点完全不同。

把 PD 和 PG 放在一起看,差别就一个字——:PD 不保量、买家可逐次放弃;PG 保量、媒体承诺投满、买家承诺买满。这也决定了它们在媒体 Ad Server 里的优先级高低,正是下一节的主题。

4. Deal ID:把一笔谈判变成实时可执行的交易

讲到这里,一个工程师该追问的问题是:PMP / PD / PG 这些”线下谈好的交易”,到底是怎么在 100 毫秒的实时竞价里被识别和执行的?答案是一个不起眼但至关重要的对象——Deal ID

Deal ID 是一串唯一标识符,由 SSP(或媒体)生成,把一笔交易的所有约定(价格、量、库存范围、定向、买家身份)编码成一个 DSP 能在竞价时认出来的”凭证”。它的生命周期分两段:一段是一次性的线下协商与配置,一段是每次曝光都要跑的实时识别。

Deal ID 的两段式生命周期:左侧琥珀色面板「① 线下协商 + 配置(一次性)」自上而下为谈定价格量库存定向 → SSP 生成 Deal ID → 买方在 DSP 激活绑定活动;右侧蓝色面板「② 实时竞价(每次曝光都跑)」为 SSP 在 bid request 带上 pmp.deals[] → DSP 识别 Deal ID → 判定是否匹配活动——是则绿色按约定出价,否则红色退回公开竞价或不出价;两面板中间粗箭头标注 Deal ID;底部琥珀色注解说明固化与激活,以及四种模式共用同一条 OpenRTB 管道 左边一次性配置,右边每次曝光实时执行。Deal ID 就是连接两段的纽带:线下谈判的结果被它”固化”,再在每个 bid request 里被反复”激活”。

顺带一提:图里”线下协商 / 配置”这一步,也有标准化的努力——IAB 的 OpenDirect 就是为自动化”询价 / 下单 / 排期”这套(保量)直采流程设计的 API 标准,目标是让 PG 这类交易也能像下单一样被程序化地配置,而不必全靠邮件和人工。只是现实里它的普及度远不如 OpenRTB,很多 PG / PD 的协商至今仍是半人工的——这也是 Deal ID 配置容易出错的根源之一。

4.1 在 OpenRTB 里,Deal ID 长什么样

OpenRTB 的 bid request 里有一个 imp.pmp 对象,里面装着 deals[] 数组——这就是私有交易在协议层的落点。一个简化的例子:

{
  "imp": [
    {
      "id": "1",
      "bidfloor": 1.5,
      "pmp": {
        "private_auction": 1,
        "deals": [
          {
            "id": "DEAL-NYT-HP-7788",
            "bidfloor": 12.0,
            "bidfloorcur": "USD",
            "at": 1,
            "wseat": ["agency-seat-42"]
          }
        ]
      }
    }
  ]
}

几个字段就把交易模式编码进去了:

关键直觉:Deal ID 不是一种新协议,而是 OpenRTB 里的几个字段。 RTB、PMP、PD、PG 跑的是同一条 bid request 管道;区别只在于 pmp.deals[] 有没有、at 是不是固定价、private_auction 屏不屏蔽公开竞价。理解了这一点,“四种交易模式”在工程上就塌缩成了”同一份请求的几种字段组合”。

4.2 DSP 侧的执行

DSP 收到带 Deal ID 的请求后,要做的事很机械但容易出错:

  1. 匹配:用 deals[].id 去查有没有买家激活了对应的活动。
  2. 校验:seat、定向、底价、预算是否都满足。
  3. 出价:匹配上就按约定出价——固定价交易直接报约定 CPM,私有竞价按策略出价;
  4. 回退:匹配不上(或买家选择放弃),就退回公开竞价逻辑,或干脆不出价。

工程上最常见的坑是Deal ID 配置不一致:SSP 生成的 ID 和 DSP 激活的 ID 对不上(大小写、空格、过期),导致”交易明明谈好了,线上却一直不出价”。排查 PMP / PD 不投放的问题,第一步永远是核对两端的 Deal ID 是否逐字符一致。

5. 一次曝光怎么分配:媒体 Ad Server 的优先级瀑布

现在把四种模式放回程序化广告生态全景里的那个角色——媒体 Ad Server。它的核心职责是 ad decisioning(决策分配):一次曝光机会进来,在保量单、私有交易、公开竞价之间排出优先级,挑出既满足合约、收益又最高的那一个。

经典的优先级是一条瀑布(waterfall),从上往下逐层下沉:

媒体 Ad Server 的库存优先级瀑布:紫色起点「一次曝光机会进入媒体 Ad Server」向下依次经过绿色 ① PDB / PG 保量、粉色 ② PD 优先交易、琥珀色 ③ PMP 私有竞价、蓝色 ④ RTB 公开竞价、灰色 ⑤ 保底 house ad;左侧标注各层下沉条件(已交付完 / 定向不符、买家放弃、无人过价、无人过底价);右侧琥珀色旁注说明统一竞价可反超但仍保留结构性优先权;底部蓝色注解概括读法与保量单「未投满反而抢曝光」的反直觉点 读法:曝光从顶层开始”找买家”,每一层满足不了(量已交付完、定向不符、买家放弃、无人过底价)就往下掉一层,最差兜底到媒体自己的广告。越靠上的层,确定性和单价越高、对媒体的约束也越强。

这条瀑布解释了几件事:

静态瀑布的问题与统一竞价:纯瀑布是”按固定顺序问,前面吃饱后面没机会”,这会让一个愿意出 $20 CPM 的公开竞价买家,输给一个只值 $8 的低优先级保量单——媒体把钱漏了。于是现代 SSP / Ad Server 普遍转向统一竞价(unified auction):把各层放进同一场拍卖按 eCPM 比价,下层若临时出价更高可以反超上层;但保量 / 优先单仍保留结构性优先权(比如加价系数、或在同等条件下优先)。这正是上一篇里讲的 Header Bidding / In-App Bidding 想解决的”瀑布不公平”问题在交易模式层的对应。

这条瀑布在媒体 Ad Server(GAM)里是用 line item + 优先级实现的——每种交易对应一类 line item,按 Sponsorship / Standard / Price Priority 等档位分层。它的 decisioning 流水线、dynamic allocation 与统一竞价的完整工程拆解,见专文《媒体 Ad Server 深挖》

6. 旁支一瞥:last look 与拍卖透明度

交易的”优先级”理应规则透明、可解释。程序化历史上最著名的反面教材是 last look(最后一眼):处在竞价链路”最后一棒”的一方(典型是跑在 Header Bidding 出价之后、媒体 Ad Server 内嵌的 ADX),能先偷看到别人报出的竞胜价,再让自家需求”刚好高一点”反超。

行业转向一价拍卖 + 统一竞价很大程度就是为了堵它:统一竞价让所有需求”同时密封、谁也不在最后跑”,拿掉偷看的时间窗口;一价让”成交价 = 自己出价”,拿掉二价套利的动机。Google 2019 年把 GAM 切到 unified first-price auction 即是此意。

但有一种情况机制堵不住——同一家公司既办拍卖(SSP / ADX)、又下场竞价(自家 DSP)。ADX 天生看得到全场出价,“自家 DSP 跟别人一样盲投”就从结构性保证降级成口头承诺。这就是”裁判兼运动员”,也是 Google(AdX + DV360)反垄断诉讼的核心争议之一;买方只能靠 SPO / 日志级透明 / 结构性拆分来对冲。

last look 牵扯一价 / 二价机制、Header Bidding 演进、平台反垄断,水很深,这里只勾一个轮廓——完整展开见专文《Last Look 深挖》

7. 四种模式横向对比

把前面拆开的维度压成一张表:

维度RTB(公开竞价)PMP(私有竞价)PD(优先交易)PDB / PG(程序化保量)
定价方式实时竞价实时竞价(带底价)固定 CPM固定 CPM
保量
买家范围全市场公开邀请制·少数一对一一对一
Deal ID不需要需要需要需要
OpenRTB at1 / 2(竞价)1 / 2(竞价)3(固定价)3(固定价)
Ad Server 优先级最低较高最高
典型库存剩余 / 长尾优质库存优质库存旗舰版位 / 品牌 campaign
价格水平最低较高最高
媒体控制权 / 透明度最弱较强最强
流量质量 / 品牌安全风险最高较好最好
像谁公开市场清货邀请制小拍卖优先供货协议程序化直采

一句话记忆:RTB 卖剩货、PMP 邀请竞价、PD 固定价优先供、PG 锁价锁量做直采。

把它落到一个具象例子上会更有体感。假设某财经媒体首页一个黄金广告位,同一次曝光、同一个用户,在四种模式下大致是这样(数字仅作量级示意):

模式这次曝光的成交价(CPM)买家拿到它的确定性
RTB 公开竞价~$2,随行就市、每次都变低——要和全市场抢,价高者才得
PMP 私有竞价~$6,底价之上竞价中——只和少数受邀买家抢
PD 优先交易$10 固定较高——有 first look,但可放弃、不保量
PG 程序化保量$15 固定最高——量价锁死,必投满

同一个广告位,仅仅因为”用哪种模式买”,成交价就差出好几倍。读法是:越往下,单价越高,但”一定拿得到、一定够量”的确定性也越高——多付的那部分钱,买的正是确定性与库存质量。这也正是后面 §8 买方视角里,品牌广告主愿意为 PG / PMP 付溢价的原因。

8. 买方视角:品牌 vs 效果,什么时候用哪种

前面几节都站在媒体(卖方)角度讲”怎么把库存卖出最高价”。换到买方,选哪种交易模式,本质取决于广告主要的是确定性还是性价比——这大致对应”品牌广告”和”效果广告”两类诉求。

一句话:同一个广告主,做品牌 campaign 用 PG、做效果拉新用 RTB,是完全正常的组合——交易模式不是”二选一”,而是一个工具箱。

8.1 一个高确定性的极端:CTV / 在线长视频

值得单独点出的是 CTV(联网电视)/ 在线长视频:这块库存几乎是 PG / PMP 的天下,公开竞价占比很低。原因很直接——

所以在 CTV 语境里,“程序化”几乎等同于”程序化保量 / 私有交易”,而不是公开竞价——这和展示广告(display)以 RTB 为主的格局正好相反。

8.2 一个买方单位经济算例:PG 的 $15 真的比 RTB 的 $2 贵 7.5 倍吗

§7 那张表给的成交价是名义 CPM——PG $15、RTB $2,差 7.5 倍。新手据此得出”RTB 便宜得多”,老手知道这是个陷阱:名义 CPM 不是买方真实付出的单位成本,因为不是每一次曝光都等值。 把”合格曝光”——可见(viewable)、非作弊(non-IVT)、品牌安全(brand-safe)——的折损算进去,故事就变了:

PG(保量优质库存)RTB(公开竞价剩余库存)
名义 CPM$15.00$2.00
可见率95%55%
非 IVT 率99%88%
品牌安全率100%85%
合格曝光占比≈ 94%≈ 41%
每千次合格曝光成本≈ $15.95≈ $4.86

算法很简单:合格占比 = 可见 × 非IVT × 品牌安全;每千次合格曝光成本 = 名义 CPM ÷ 合格占比。

读这张表的两个反直觉结论:

一句话给买方:别用名义 CPM 比价,用”每千次合格曝光成本”比,再单独给”确定性”标一个价。 一个广告主完全可能:品牌 campaign 用 PG(为确定性付那 3.3 倍),效果拉新用 RTB(为性价比吃那 41% 里的转化)——这不矛盾,正是 §8 那句”交易模式是工具箱”的量化版。

9. 工程实战:几个绕不开的坑

按本系列的惯例,最后落到生产里真正会咬人的地方。

一个真实的踩坑:一笔谈好的 PMP,两端后台都显示”配置成功”,可连着三天零竞价、零曝光。排查时把 DSP 侧的 deal-level 竞价日志拉出来,发现请求里压根没匹配上——最后定位到 SSP 生成的 Deal ID 末尾被复制粘贴时带了一个不可见的尾随空格,DSP 激活的那串没有,逐字符比对才看出来。删掉空格,几分钟后竞价就起来了。交易模式的故障,八成不在”竞价逻辑”,而在”Deal ID 这根字符串对没对上”。

10. 常见误解 ↔ 正解

这一节专治这组黑话里最容易混的地方——也是面试和对接时最常翻车的点:

常见误解正解
RTB = 所有程序化竞价交易模式语境里 RTB 特指公开竞价(Open Auction);PMP 也竞价但邀请制
PMP 和 PD 是一回事PMP(私有竞价)仍是拍卖;PD(优先交易)是固定价 + first look、不竞价
PG 的”保量”是买家承诺投满”投满”是**媒体(卖方)**的事——买家没库存;买家承诺的是”买满 / 付满”
Deal ID 是一种新协议它只是 OpenRTB pmp.deals[] 里的几个字段(id / at / private_auction…)
固定价一定比竞价贵(或便宜)不一定;但越往”保量固定价”走,单价通常越高——多付的是确定性
保量单优先级最高 = 总能拿到曝光还要定向匹配且未投满;已投满 / 不匹配就下沉
统一竞价后保量单就没优先权了仍有结构性优先权,只是允许下层临时高价反超
PMP 不保量、所以没价值它用邀请制 + 底价护住优质库存、提价、改善流量质量

11. 一张速查表

把全篇压成随手可查的几条:

下次再有人把 RTB、PMP、PD、PDB 当成四个并列的黑话甩给你,你只需要先画那张 2×2——竞价 vs 固定价、保量 vs 不保量——四个框立刻各就各位。


延伸阅读

按”全局 → 交易 → 决策落地 → 透明度”的顺序串起来读最顺:

再是规范与一手资料:

附录:术语表


views
Share this post on:

Previous Post
Last Look 深挖:顺序二价下的偷看反超,与一价统一竞价如何堵住它
Next Post
程序化广告生态全景:DSP / SSP / ADX / Ad Server / DMP 在一次曝光里各管什么