Skip to content
Charles Shao
Go back

拍卖机制与 Bid Shading:竞价漏斗、底价与缩水策略

Updated:
–views

正如 Last Look 那篇所探讨的,处于竞价链路最后一棒的交易所往往能利用机制漏洞,在先偷看其他渠道出价后,让自家需求以「恰好高一点」的价格反超。那篇文章交代了行业为何从二价集体转向一价,但默认读者已经清楚「一次拍卖究竟是怎么运转的」。正因如此,本文将补上这一核心前提,带你重走一次程序化拍卖的完整流转过程:从收齐出价到最终定出成交价,中间究竟经历了什么。

不仅如此,在此基础上,我们还将深入探讨一价时代最为关键的工程实践:Bid Shading(出价缩水)。需要强调的是,一价拍卖存在一个反直觉的陷阱:如果你按照心中的真实价值去出价,一旦胜出,几乎必然会面临超付的窘境。因此,买方(Demand Side)必须在出价时适当压低,同时又要确保不至于输掉这场竞价。

本文是 交易模式与拍卖机制 系列的第 3 篇(机制与 Bid Shading)。 全系列 3 篇:

  1. 程序化交易模式:RTB / PMP / PD / PG
  2. Last Look 深挖
  3. 拍卖机制与 Bid Shading

一句话定位:本文旨在拆解程序化拍卖的多级漏斗与底价机制,并深入剖析买方如何利用 Bid Shading 在一价时代最大化期望剩余。

在深入之前,我们需要先划定本文的讨论范围:我们将聚焦于拍卖机制本身,涵盖漏斗过滤、底价设定、结算规则以及 Bid Shading。至于谁在主持拍卖以及需求方与供给方(DSP & SSP)的具体角色,请参考生态全景;二价向一价演进的历史渊源与 last look 问题,详见专文;而结算价如何通过协议字段(如 at 或 ${AUCTION_PRICE})进行回传,则在 OpenRTB 协议精讲 中有专门解析。本文在行文中仅在必要时进行跨篇引用。

TL;DR

Table of contents

Open Table of contents

1. 一次拍卖是一条漏斗

很多刚接触广告生态的开发者,容易将程序化拍卖简单等同于「收齐所有出价,然后价高者得」。然而,真实的交易所拍卖实际上是一条严密的多级漏斗,价格比拼仅仅是最后一道关卡,在此之前,出价请求必须先穿透一连串验证「准入资格」的筛子。

程序化拍卖漏斗:顶部紫色输入「一次曝光机会 + 收到的所有 bid response」向下依次经过四层筛子——① 资格过滤(尺寸/格式匹配、创意审核、bcat/badv/bapp 品牌安全、席位白黑名单),旁注「不合规直接出局」;② 底价筛选(出价 ≥ hard floor?deal 出价 ≥ deal floor?),旁注「低于底价不入围」;③ 排序(按净价/eCPM 排序,deal 与保量享结构性优先);④ 结算(按 at 定成交价:一价=自己出价,二价=第二名+增量),产出绿色「胜者 + 成交价」;右侧竖排旁注:价高者未必得,先要活着走到最后一层;每一层都会刷掉一批候选。底部注解:这条漏斗解释了为什么『我出价最高却没赢』——可能在第①/②层就被刷掉了 把「拍卖」拆成漏斗后,很多线上疑惑就有了答案:「我明明出价最高却没拿到量」,往往不是排序输了,而是在资格过滤(创意没过审、尺寸不符、撞了 badv)或底价那一层就被刷掉了。价格竞争只是最后一关。

我们将这条漏斗由上至下逐层拆解:

了解整个漏斗流转后就会发现,后续所有关于「出价策略」的讨论都有一个大前提:你在第 ④ 层费尽心思优化的价格,只有在前三层存活下来才有意义。

2. 底价:hard floor、soft floor 与动态底价

底价(floor price)作为卖方为广告库存划定的成交底线,是需求方出价时必然撞上的首个硬约束。在实际工程落地中,底价衍生出了三种不同的形态,理清它们是避开竞价陷阱的第一步:

类型含义出价低于它会怎样
hard floor硬底价直接出局,彻底无缘排序环节
soft floor软底价(二价时代遗留产物)仍有赢的可能,但结算规则会在软硬底价间发生切换
dynamic floor动态底价:基于流量特征实时算出的最优底价命运取决于单次计算值,本质上等价于动态的硬底价

需要强调的是,软底价(soft floor)实际上是一个历史包袱。在传统的二价拍卖体系中,如果最高出价未能越过软底价,系统的成交价就会依从软底价的一套复杂规则来强行核定。这种机制人为制造了一段模糊地带,不仅逻辑晦涩,更成为了引发 last look 等流量套利的温床。随着行业全面倒向一价拍卖,由于成交价直接锚定出价,不再依赖所谓的「第二名」,软底价便基本失去了生存土壤,行业的优化重心也顺势转移到了动态底价(dynamic floor)上。

如今,动态底价才是交易链路中真正的博弈焦点。交易所不再粗放地对所有流量「一刀切」设定固定底价,而是精细化地根据域名、广告格式、请求时段,甚至该买家的历史出价习惯,实时计算出一个动态底线。其根本目标非常明确:最大化卖方侧的收益期望。对比前一种静态方案,这种做法直接将买方推入了两难困境,因为买方永远无法在出价前确切获知当次的真实底价,只能依赖历史数据去盲猜。

在这个「一价叠加动态底价」的新常态下,需求方与供给方都在疯狂地利用历史数据互相预测:卖方试图预测「这个买家最高愿意出多少」来伺机抬高底价;而买方则竭力预判「这次要赢究竟需要多少钱」来尽可能压低出价。贯穿这一博弈主线的,正是买方侧用于预测出价下限的核心武器——Bid Shading。

3. 一价 vs 二价:成交价由谁决定,决定了一切

一价与二价拍卖最本质的分歧,在于究竟由谁来决定最终的成交价,而这一规则差异直接重塑了整个交易生态的竞价策略。

为了直观体会这种鸿沟,我们可以看一组数据:假设针对某次曝光,你预估的真实价值 (v = $5.0),而全场出价第二高的人仅仅出到了 $3.0。

这第三种做法,正是 Bid Shading 在一价时代的生存之道——强行将出价从真实价值 (v) 往下压,精准卡在「刚好赢」的位置。然而,在真实竞价环境中,棘手的问题随之而来:你根本无从知晓第二名究竟出了多少钱。这就顺理成章地将静态的定价问题,转化成了一个动态的工程预测问题。

4. Bid Shading:把「恰好赢下的价」估出来

4.1 Winner’s curse:赢,本身就是坏消息

要理解为何 Bid Shading 在一价时代变得不可回避,我们得先正视一个极具迷惑性的陷阱:赢家诅咒(winner’s curse)。

在众多买家对同一次流量机会进行密封报价的角逐中,你之所以能够最终胜出,恰恰是因为你的出价力压群雄。然而,「出价全场最高」往往暗示着系统对该流量的估值过于乐观,或者出价策略过于激进。这意味着,在你收到竞胜回执的那一刻,大概率已经陷入了超付的境地。

进一步来说,你在场面上赢得越是轻松(即出价甩开第二名的幅度越大),被白白浪费的差价就越令人痛心。一个固执己见、从不使用 shading 且始终照实出价的买家,或许在报表上能赢下极为可观的曝光量,但在底层的每一笔交易中,其实都在持续不断地「慢性失血」。

4.2 shading 的目标不是赢率,而是 surplus × 赢率

面对高昂的采买成本,许多人的第一直觉是「只要出低点就能省钱」。然而,一旦出价压得过低,整个系统就会因赢不到足够的流量而陷入停滞。因此,Bid Shading 真正需要优化的核心,既不是单一维度的赢率,也不是单纯的单均节省金额,而是这两者的乘积——即期望净收益。

假设某次曝光的真实价值为 (v),实际出价为 (b),赢得该次竞价的概率记为 (W(b))(显然,出价越高赢的概率越大,这是一条随 (b) 单调递增的曲线)。在一价机制下,一旦竞价胜出,最终的成交价即为 (b)。此时,这一单的期望剩余可以通过下式清晰表达:

[ \text{ExpectedSurplus}(b) = (v - b)\cdot W(b) ]

在这场杠杆游戏中:

正因如此,这条期望剩余曲线在演进过程中必然会出现一个波峰,而这个顶点对应的值,就是我们苦苦寻觅的最优出价(最优 shaded bid)(b^*)。对于任何成熟的 Bid Shading 引擎而言,其底层逻辑只有两步:先精准拟合出 (W(b)) 这条赢率曲线,紧接着通过数学推导,找出 ((v-b)\cdot W(b)) 的极大值点。

Bid Shading 的两张图并排:左图「一价照实出价的代价」——横轴出价 b、纵轴,画一条随 b 上升并趋于 1 的赢率曲线 W(b),标出真实价值 v 处(照实出价,赢率高但 v-b=0 无剩余)、以及远低处(省得多但赢率低);右图「surplus × 赢率 有个峰」——横轴出价 b,画一条先升后降的钟形曲线 ExpectedSurplus(b)=(v-b)·W(b),峰值处竖虚线标注 b*(最优 shaded bid),并在 b* 与 v 之间用琥珀色区间标注「shading margin:省下的差价」,右端 v 处标注「照实出价:surplus=0」;底部注解:shading 不是一味压低,而是在赢率和每单剩余之间找乘积最大的甜点;市场会随大家一起 shade 而移动,b* 不是常数 左图:赢率 (W(b)) 随出价上升,但出到真实价值 (v) 时省下的差价归零。右图:期望剩余 ((v-b)\cdot W(b)) 是一条钟形曲线,峰值 (b^*) 才是该出的价,它通常远低于 (v)。注意 (b^*) 不是常数:当所有人都在 shade,清算价分布会整体下移,昨天的最优今天就偏了。

4.3 它本质是个预测问题:估清算价分布

想要精准描绘出 (W(b)) 这条赢率曲线,前提是必须摸清「在这类特定特征的流量上,历史清算价(或是假想中的第二高价)大致呈现出何种概率分布」。落实到具体的工程流水线中,通常分为以下几步:

  1. 收集竞价全景(bid landscape):系统必须持之以恒地沉淀每一次竞价的反馈数据。这不仅包括成交时的价位回执(在一价机制下即为 ${AUCTION_PRICE} 宏替换的值),还涵盖了大量竞败时的输赢信号(依赖 lurl 与 ${AUCTION_LOSS} 字段,特别是标识「因低于最高价而落败」的 102 错误码)。
  2. 精细化分桶与特征化:由于清算价极度依赖广告请求的上下文环境,我们需要引入丰富的维度进行切分。无论是落地域名(或 App 包名)、广告格式与尺寸,还是用户的地理位置、请求时段、设备指纹,甚至是该流量是否通过优先交易(Deal)通道流转,都必须被提炼为关键特征进行分桶或输入模型。
  3. 在线建模与预测:针对实时涌入的每一个 bid request,模型需要瞬间输出「此次赢下所需价位」的概率分布(或者直接暴力回归出最优的 (b^*) 及 shading 缩放因子)。在轻量级方案中,团队往往依靠简单的分位数统计算法或直方图来兜底;而在更硬核的工程架构里,则会全量部署梯度提升树(GBDT)甚至深度分位数回归网络来进行高精度打击。
  4. 预留安全边际:为了兜底模型的预测不确定性,工程上必须在最终预估出的清算价之上,人为增加一个微小的安全边际(margin)。这不仅能有效对冲局部预估误差,更能从容应对大盘水位的瞬时波动。

4.4 三个绕不开的工程坑

当这些理论框架被推向线上环境时,技术团队不可避免地会撞上以下三大工程暗礁:

5. 谁来做 shading:又一次「裁判兼运动员」

从技术链路来看,Bid Shading 的计算逻辑既可以部署在买方,也可以托管在卖方。然而,部署位置的差异绝不仅是架构选择,背后更牵扯着截然相反的利益立场:

位置谁做为谁省钱隐忧
买方侧 shading需求方平台(DSP)自建或中立第三方提供致力于替广告主省钱高度依赖 DSP 自身所积攒的深厚 bid landscape 数据底座
卖方侧 shading媒体侧平台(SSP)作为「增值服务」免费提供给买方表面上是在帮买方压价让靠高溢价抽成的抬价方来替买方压价,存在极其致命的利益冲突

必须认清的是,卖方侧 shading 完全是行业向一价转型初期应运而生的过渡性怪胎。当时,许多强势的 SSP 抛出诱饵:「我直接在服务端帮你做 shade 缩水,省得你们买方团队自己耗费研发资源去从零搭建预测模型。」对比前一种方案,这种逻辑简直就是 last look 黑暗交易的变种翻版:一个核心商业模式是按流水抽成、做梦都希望把成交价炒上天的一方,居然越俎代庖反过来替买方决定「这单到底该把价格压到多低」。在这套荒谬的机制下,双方的商业动机完全背道而驰。

基于这层深刻的觉醒,越来越多的头部买方开始斩断对 SSP 的路径依赖,坚定不移地将 shading 的定价主权收回到自建团队或中立第三方手中。原因只有一个:在残酷的商业变现战场上,关于「究竟出多少」的核心决策,必须牢牢掌控在与自身利益绝对一致的环节,而绝不能拱手让给随时准备割韭菜的供应链抽成方去替你暗箱操作。

6. 常见误解 ↔ 正解

常见误解正解
拍卖就是绝对的价高者得价格竞争仅仅是最后一关;候选出价必须先挺过资格过滤与底价考核,无数「最高出价」其实都惨死在了前置环节
hard floor 和 soft floor 并没有本质差别hard floor 是生死红线,低于即直接出局;soft floor 是二价机制的历史遗产,在全面一价环境下已基本失效
无论一价还是二价,出价策略的底层逻辑都一样核心逻辑有着天壤之别:二价机制下照实出价是最优策略,而在一价环境里照实出价等同于向卖方白送盈余(surplus)
系统能赢得越多竞价,说明当前的拿量策略越好在一价漏斗中,赢得太干脆往往是深陷赢家诅咒(winner’s curse)而导致了严重超付;「如何赢」的姿势远比单纯赢的次数更重要
Bid Shading 的精髓就是一律无脑压低出价它的本质是精准锚定 ((v-b)\cdot W(b)) 的峰值;盲目压过头会导致赢率雪崩,它是极其严密的数学最优化,绝非街头粗暴的砍价
shading 就是给出一个一次性算好的固定折扣系数清算价的分布会随着大盘各方共同参与 shade 而发生剧烈的动态偏移,因此模型必须保持敏锐的持续在线学习能力
直接让 SSP 提供 shading 接口对我来说最省心让靠高溢价抽成的抬价方来替你压价,存在难以调和的利益冲突;这无异于 last look 换了个马甲重出江湖,必须坚决优先采用买方自建或中立侧方案

行业黑话总结:拍卖漏斗层层过滤;hard floor 低于即出局;soft floor 遗留包袱;dynamic floor 实时算最优;一价结算等同出价;truthful bidding 在一价中白送 surplus;一价胜出当心 winner’s curse;Bid Shading 预估 bid landscape 寻找最优 shaded bid;绝不让利益冲突的卖方代劳 shading。

要深入理解在全面一价环境下,那些处在竞价链路末端的交易所是如何通过偷看底牌完成不公平的套利,请继续阅读下一篇:Last Look:一桩名正言顺的「作弊」。

延伸阅读


–views
Share this post on:

Previous Post
媒体 Ad Server 深挖:它如何拍板每一次曝光
Next Post
Header Bidding:Prebid 客户端与服务端架构解析