在程序化交易模式那篇里,last look(最后一眼) 只作为旁支提过。作为程序化拍卖史上最典型的信息不对称机制,它不仅直接催动了整个行业从二价拍卖向一价拍卖的演进,更是 Google 广告技术反垄断案的核心争议焦点。
本文是 交易模式与拍卖机制 系列的第 2 篇(公平性)。 全系列 3 篇:
- 程序化交易模式:RTB / PMP / PD / PG
- Last Look 深挖
- 拍卖机制与 Bid Shading
一句话定位:处在竞价链路「最后一棒」的交易所通过偷看其他渠道的竞胜价实现微弱反超,最终被一价拍卖与统一竞价的组合拳从机制上封堵。
TL;DR
- last look:处在竞价链路「最后一棒」的一方(历史上典型是 Google 的 AdX),能够先偷看到其他渠道已经报出的竞胜价,随后再让自家需求以「刚好高一点」的微弱优势实现反超,导致买方的出价被偷看且竞价环境被严重扭曲。
- 靠两个结构前提成立:① 顺序 / 分层竞价——总有参与者被结构性地安排在「最后跑」;② 二价机制——成交价由次高出价决定,从而留出了「看了别人才能定价」的漏洞与套利空间。
- Header Bidding 把它推上风口:HB 的本意是打破媒体 Ad Server 的「瀑布」垄断,让需求方公平并行参与竞价;然而,它将头部竞价的最高价作为「门槛价」喂进 Ad Server,而 AdX 依然跑在最后并能看着该门槛价进行反超,这种愈发刺眼的不对称直接引爆了行业对 last look 的声讨。
- 一价 + 统一竞价:统一竞价让所有需求方「同时密封、谁也不在最后跑」,彻底拿掉了偷看的时间窗口;一价拍卖则让「成交价 = 自己出价」,从而消除了二价套利的经济动机。正因如此,Google 在 2019 年将 GAM 切换至 unified first-price auction,正是将这两步组合落地。
- 但它没真死:当**同一家公司既办拍卖(SSP / ADX)、又下场竞价(自家 DSP)**时,「密封」仅仅是口头承诺而非结构性保证。这种典型的「裁判兼运动员」模式,正是 Google(AdX + DV360)、Project Bernanke 以及最终反垄断判决所共同指向的深层问题。
- 机制堵不住,就靠透明度和结构隔离:买方(Buy Side)通过 SPO、log-level data 审计以及优先选择一价或无自我交易的路径来进行对冲;而监管层面则致力于推动结构性拆分。
Table of contents
Open Table of contents
1. 先还原案发现场:瀑布与动态分配
要深刻理解 last look,我们需要先将时间拨回 Header Bidding 普及之前。大约在 2010 年代初,媒体(Publisher)侧的变现主要由媒体 Ad Server(典型代表是 Google 的 DFP,即后来的 GAM)一手主导。
在那个时期,Ad Server 采用了一套名为 dynamic allocation(动态分配) 的机制来决定一次广告曝光(Impression)最终花落谁家:
- 系统首先按优先级走直采订单,以满足保量和固定价格的需求;
- 当直采订单无法吃下当前库存时,流量会被丢给程序化渠道。然而,这里存在一个关键的结构设计:只有 Google 自家的 AdX 能够参与这场实时竞价(RTB),并且 AdX 是在 Ad Server 内部、在所有其他需求方被排过之后才开始运行的;
- 此时,AdX 会拿到一个「需要打败的价格」(即 Ad Server 里其他订单的预估 eCPM),只要它的实时出价高过这个数值,就能成功赢走曝光。
真正的隐患就藏在第 2 步和第 3 步之中:AdX 永远站在竞价队伍的最后一个位置,并且能够一览无余地看到前面所有参与者开出的价格。 对比之下,其他需求源(如第三方交易所或广告网络)只能事先将价格「挂」在 Ad Server 里被动等待,完全没有「看一眼再决定」的权利。正是这种结构性的「最后一棒 + 上帝视角」,孕育了 last look 的温床。
2. last look 的精确定义
为了更严谨地探讨,我们需要对该机制进行精确定义:
last look(最后一眼):在一条分层或顺序进行的竞价链路中,处在最后一棒的参与方能够率先观测到其他所有渠道已经报出的竞胜价,随后再据此决定自家是否参竞以及具体的出价金额——其策略通常是「刚好比当前最高价高一点」以实现精准反超。
需要强调的是,last look 能够成立,靠且仅靠以下两个结构前提:
- 顺序与分层竞价(有人能最后跑):整个竞价过程并非一次性同时密封进行,而是被人为划分了先后顺序。正因如此,只要链路中存在「最后一棒」的位置,坐在该位置的平台就天然拥有了无可比拟的信息优势。
- 二价机制(成交价由别人决定):在二价拍卖环境中,赢家最终支付的金额是「第二名出价 + 0.01」,这意味着成交价完全取决于其他竞争者的出价。这种机制天然制造了一条「必须看到别人出价才能算清成交价」的系统漏洞,同时也给中间环节留下了巨大的可操纵与套利空间。
可以说,last look 正是这两个前提条件叠加的产物。理解了这一点,后续关于「如何封堵漏洞」的演进逻辑,本质上就是逐一拆除这两个结构性基石的过程。
3. 一个数字演示:它怎么「刚好高一点」赢
抽象的定义往往不如具体的数字推演来得直观。假设当前有一次广告曝光,且面临三方需求源的竞争:
| 需求源 | 真实愿意出价(CPM) | 何时出价 |
|---|---|---|
| 网络 A(挂在 Ad Server 里) | $4.00 | 事先挂价,被动 |
| 网络 B(挂在 Ad Server 里) | $5.00 | 事先挂价,被动 |
| AdX(最后一棒) | 愿意出到 $8.00 | 看完前两家后才出 |
在没有 last look 的公平拍卖场景下(即所有需求方同时密封投标、价高者得):AdX 会报出真实的 $8.00 并赢得竞价,此时媒体将获得 $8.00(若为一价拍卖)或第二名的 $5.00(若为二价拍卖)。
然而,在存在 last look 时:AdX 能够提前看到当前需要打败的最高价是 $5.00(来自网络 B),于是它不再报出 $8.00,而是精准地出价 $5.01——这个价格刚好足够赢下竞价。最终的流转结果如下:
- AdX 依然毫无悬念地赢走了这次曝光;
- 但它实际只支付了 $5.01,从原本愿意付出的 $8.00 中,硬生生省下了近 $3 的「消费者剩余」;
- 媒体本有机会拿到更高的收益(如果 AdX 被迫亮出真实估值),现在却被死死压制在 $5.01。
由此可见,last look 的核心危害在于:它虽然没有改变最终的竞胜者,却系统性地压低了整体成交价,并将这部分价差利益悄然转移给了坐在最后一棒的平台。对卖方(Sell Side)而言这意味着严重的收益流失,而对其他买方(Buy Side)来说,则意味着「我的出价沦为了你套利的标尺」。这种「刚好高一点」的策略之所以有利可图,根本原因就在于二价机制或软底价(soft floor)环境下,赢家完全不必亮出自己的真实估值。
4. Header Bidding 如何把 last look 推上风口
业内曾有许多人误以为 Header Bidding(头部竞价) 是 last look 的终极解药,但实际上,它更像是把这个机制从暗处直接拉到了聚光灯下。
不可否认,Header Bidding 的初衷极具颠覆性:它试图打破媒体 Ad Server「瀑布流 + 动态分配」的长期垄断,让多个 SSP 与交易所在调用 Ad Server 之前,率先于浏览器或服务端进行并行且同时的竞价,从而筛选出全网最高价。这种设计的本意,正是为了「让所有需求方站在同一条起跑线上」。
但在实际落地过程中,却存在一个绕不过去的技术步骤:当 Header Bidding 跑完并得出一个最高出价后,这个价格必须作为一个 key-value(例如 hb_pb=5.00)透传进媒体 Ad Server,以便 Ad Server 将其与直采订单以及 AdX 的出价放在一起做最终裁决。致命的漏洞恰恰出现在这里——
- Header Bidding 的胜出价一旦进入 Ad Server,就等同于把买方的底牌彻底摊在了桌面上;
- 与此同时,AdX 依然稳稳地跑在 Ad Server 内部的最后一棒,它完全可以看着这个
hb_pb的数值,再从容决定自己究竟出多少钱。
于是,整个广告生态中出现了极其刺眼的一幕:媒体费尽心力用 Header Bidding 把各方需求摆到明面上进行公平竞价,结果这些透明的出价,反而沦为了 AdX 实施精准反超的「参考答案」。正因如此,Header Bidding 越是普及、越是透明,AdX 享有的 last look 特权就越显得极度不公平。正是这种强烈的反差,让 last look 从一个底层的技术细节,迅速演变为 2017 至 2018 年间整个程序化行业声讨的焦点,并直接逼出了下一节即将探讨的终极解法。
5. 一价 + 统一竞价:怎么把它堵住的
面对这一顽疾,行业的最终解法是将两项机制变革捆绑落地,这恰好精准对应了第 2 节中提到的那两个结构前提。
下面这张图直观地展示了旧链路与统一密封一价拍卖的对比:
左边的病根是「有人能最后跑 + 二价留缝」;右边的解法则是把竞价压成「同时密封的一场一价拍卖」,让最后一棒的位置和二价的漏洞同时消失。
如果我们将这套组合拳拆开来看,其内在逻辑非常清晰:
- 统一竞价(unified auction)彻底拆掉了「前提 1」:它将竞价流程从传统的串行模式改造成了并行密封、一场定胜负的新格局。这意味着所有的需求源(包括 AdX 及其自家交易所)必须同时提交出价且彼此不可见,随后统一进入同一场拍卖,按照同一套规则一次性决出胜负。在这种架构下,没有任何一个层级会被特殊安排在「最后」,那个赖以偷看的位置被物理抹除了,偷看的时间窗口自然也就荡然无存。
- 一价拍卖(first-price)精准拆掉了「前提 2」:在一价机制下,赢家支付的金额就是其自身报出的价格,成交价完全由自己的出价决定,与竞争对手毫无瓜葛。这一改变不仅彻底消除了「必须看别人才能算清二价」的系统借口,更从根本上堵死了「利用二价低成本赢下曝光、再用更高价向上游虚报以私吞差额」的套利动机。
需要强调的是,仅仅切换到一价拍卖是远远不够的。因为在纯一价环境下,只要某一方依然保留了「最后看一眼」的特权,它同样可以贴着最高竞争者的价格加上一个最小增量去赢取曝光。因此,要真正堵住 last look,必须依赖统一密封竞价与一价拍卖这套组合拳——前者负责拿掉偷看的时间窗口,后者负责抽干套利的经济动机。回顾历史,Google 在 2019 年将 GAM 从「二价 + AdX last look」全面切换至 unified first-price auction,正是将这两步同步落地;缺少任何一环,系统的漏洞都无法被严密封堵。
这套演进逻辑也顺带解答了业内常问的一个问题:为什么整个程序化生态会在 2018 至 2019 年间集体从二价倒向一价? 表面上看,这似乎只是一场关于「定价规则」的路线之争,但其底层动因之一,正是为了彻底封堵 last look,从而将竞价的公平性与可解释性重新还给需求方与供给方。
6. 但它没真死:垂直整合下的「裁判兼运动员」
如果故事到这里就画上句号,那么公开架构层面的漏洞确实算是被彻底堵住了。然而,现实的商业生态中却存在一个纯靠技术机制无法弥合的缺口——当同一家公司既作为卖方办拍卖(SSP / ADX),又作为买方下场竞价(自家 DSP)时。
让我们重新审视第 5 节中解法的前提:统一密封竞价之所以能够封堵 last look,其核心支撑在于「所有人同时密封投标、谁也不在最后跑」。但这里潜藏着一个极其关键的隐含假设——办拍卖的平台自己绝不下场参竞。要知道,ADX 这个角色天生就具备纵览全场出价的上帝视角(毕竟它必须看到所有底牌,才能裁决最终的胜者)。
下面这张图清晰地揭示了这种深层的利益冲突:
统一密封竞价对所有第三方买家都绝对成立,但对「办拍卖的自家 DSP」却未必成立:拍卖主机本就看得到全场出价,究竟要不要把这个致命的信息优势喂给自家买方,往往沦为一个无法用机制证伪的口头承诺。
一旦自家的 DSP 也身处竞价场内,所谓「拍卖是绝对密封的、自家 DSP 跟其他买方一样都在盲投」的声明,就从一个坚实的结构性保证,大幅降级成了一个脆弱的口头承诺。从技术实现的角度来看,平台完全有路径将实时的竞胜价悄悄喂给自家 DSP 以实现精准反超;更何况,拍卖主机和 DSP 掌握在同一家公司手中,彼此之间根本不存在实质性的物理隔离。这就是程序化生态中最经典的「裁判兼运动员」困境。
最典型的案例莫过于 Google:由 AdX(卖方拍卖)与 DV360 / Google Ads(买方 DSP) 形成的一手包办体系:
- 历史已经证明,Google 的 AdX 在 2019 年之前确实拥有并使用了 last look;这并非行业传言,而是其官方公开承认并最终宣布废除的事实;
- 随后在反垄断诉讼中被曝光的 Project Bernanke(以及诸如 “Project Bell”、“Jedi” 等内部项目),其核心逻辑正是利用 AdX 平台上积累的海量竞价数据,去定向优化 Google 自家买方的出价策略。这表明,即便明面上的 last look 被取消了,深层的数据优势依然可以换一种隐蔽的形式继续延续;
- 美国司法部(DOJ)与欧盟发起的广告技术反垄断诉讼中,核心指控之一正是这种涉嫌**自我交易(self-dealing)**与利益冲突的商业模式,并最终认定 Google 在 ad server 与 ad exchange 市场构成了实质性垄断。
对比来看,一价拍卖与统一竞价成功堵死的是公开架构里人人都看得见的信息不对称(如串行的最后一棒、二价套利空间);但对于「同一家公司既办拍卖又竞价」这种深藏于企业内部的结构性不对称,单纯的技术机制已经无能为力。面对拥有上帝视角的拍卖主机,外部买方只能在「信」与「不信」之间做出抉择。正因如此,last look 已经从一个「已被解决的技术问题」,演变成了一个至今仍在法庭上激烈交锋的行业结构性难题。
7. 不止 last look:相关的信息不对称家族
虽然 last look 名气最大,但它其实只是庞大的「竞价信息不对称」家族中的一员。作为广告技术工程师,非常有必要厘清它的这些「近亲」,因为在实际业务中它们常常被混为一谈:
- 软底价(soft floor)与 last look 的合流:所谓软底价,是指「即便出价低于该阈值也依然有可能成交」的模糊底线。在「二价 + 软底价」的复杂环境下,交易所对于「最终成交价究竟该定多少」拥有极大的自由裁量权,而这恰恰为 last look 式的暗箱操纵提供了肥沃的土壤。相比之下,一价拍卖配合硬底价(hard floor)无疑是更加透明、规范的演进方向。
- Bid caching(出价缓存):这种机制会将买方针对某次特定曝光的出价悄悄缓存下来,并违规复用到后续其他的曝光竞价中。买方本以为自己只是在为当前的高价值曝光出价,结果资金却被平台挪用去赢下了另一次不相关的曝光——这无疑是另一种典型的「买方不知情」的信息不对称。
- 二价套利 / auction within auction(拍卖中的拍卖):在复杂的供应链中,中间层往往利用二价机制在下游以低价赢下曝光,随后再用更高的伪造价格向上游媒体上报,从而堂而皇之地私吞中间的差额。这种套利行为与 last look 共享着同一个病根:二价机制让成交价严重依赖于其他人的出价,从而给中间环节留下了巨大的操作缝隙。
- 费用不透明(hidden fees / take rate):在买方总支出与媒体最终实收之间的巨大差额(即供应链抽成,ad tech tax)中,究竟有多少是明码标价的合理服务费,又有多少是暗箱操作的隐性扣除?这个问题虽然与底层的拍卖机制不直接相关,但同样属于「链路不透明」这一宏大命题下的核心痛点。
如果将这些乱象放在一起审视,我们会得出一个清晰的结论:解决这些问题的共同路径,无一例外都是朝着「一价 + 硬底价 + 同时密封 + 可审计日志」的透明化方向迈进。只有让成交价完全取决于参与者自身的出价,并且确保整个流转过程能够被第三方严密核查,才能真正重建生态的信任底座。
8. 工程与买方视角:机制堵不住,就靠透明与隔离
既然在垂直整合的商业模式下单纯的技术机制已经无法兜底,买方与整个行业的应对策略便果断转向了「避开利益冲突路径」以及「要求全面公开账本」。以下是真正落实到工程研发与投放实操中的关键动作:
- SPO(供应链优化,Supply Path Optimization):买方开始主动审计并大幅收敛中间的采买路径。针对同一份媒体库存,系统会优先选择走最短、最透明、且毫无自我交易嫌疑的 SSP 通道,坚决砍掉那些徒增 ad tech tax 的冗余跳数。
- log-level data(日志级数据)审计:需求方强烈要求 SSP 或交易所必须提供包含真实成交价、底层清算逻辑以及 auction type 在内的可核查原始日志。通过自行复算,买方可以精准校验「我实际支付的价格是否合理、竞价链路中是否存在恶意加塞」。
- 优先一价 / 透明拍卖:在面临多条路径选择时,系统会天然倾向于接入那些明确声明采用一价机制、严格执行硬底价、且承诺绝不做 last look 或 bid caching 的优质供给路径。
- sellers.json / ads.txt / schain 校验:从供应链透明的宏观角度出发,工程团队会通过这些行业协议严格确认链路中每一跳的真实卖方身份与分成关系,从而最大限度地压缩信息黑箱。
- 结构性拆分(监管层面):在法律与合规层面,监管机构正强力要求将卖方拍卖业务与买方采买平台进行彻底剥离,力求从源头上消除「裁判兼运动员」的畸形生态。当然,这已经超出了纯工程问题的范畴,而是属于反垄断救济的宏大叙事。
正因如此,当我们在评估并接入一条全新的程序化供给链路时,首先查明它究竟采用一价还是二价、是否暗中进行 last look 或 bid caching、能否提供完整的 log-level data、以及是否存在自我交易的嫌疑,往往比单纯追问「你能给多少跑量」要务实且有效得多。
行业黑话总结:last look(最后一眼):最后一棒偷看竞胜价并微弱反超;dynamic allocation(动态分配):AdX 跑在最后一棒与预估 eCPM 比价的旧机制;一价拍卖(first-price):赢家付自己出价,消除二价套利动机;二价拍卖(second-price):赢家付第二名加增量,给偷看留缝;统一竞价(unified auction):所有需求同时密封定胜负;软底价 / 硬底价(soft / hard floor):模糊底价与不可逾越的明确底价;bid caching(出价缓存):买方出价被违规复用;auction within auction(拍卖中的拍卖):中间层利用二价私吞差额;裁判兼运动员(self-dealing):同一家既办拍卖又下场竞价;Project Bernanke:Google 利用竞价数据优化自家出价的内部项目;SPO:买方收敛供给路径优先透明通道;log-level data(日志级数据):可核查的原始成交日志;sellers.json / ads.txt / schain:核验卖方身份与分成关系的供应链透明标准;结构性拆分(structural separation):监管要求分离卖方拍卖与买方平台。
回顾 last look 的演进历史,它留给我们的最深刻启示在于:任何交易优先级的设定,都必须建立在规则完全透明且具备高度可解释性的基础之上。关于这一点,读者可以进一步参考程序化交易模式:RTB / PMP / PD / PG中的详细论述。
延伸阅读
同系列(交易模式与拍卖机制):
- 程序化交易模式:RTB / PMP / PD / PG:本篇正是那篇里「旁支一瞥」的完整展开。
- 拍卖机制与 Bid Shading:一价时代的漏斗 / 底价 / 结算,以及为什么要主动少出一点。
跨系列相关:
- 媒体 Ad Server 深挖:§1 dynamic allocation 与 AdX「最后一棒」的机制底座。
- Header Bidding:Prebid.js vs Prebid Server:§4 里把 last look 推上风口的那条竞价链路,以及默认一价的来由。
- 程序化广告生态全景:SPO / sellers.json / schain 供应链透明的全局位置。
再是规范与一手资料:
- Google Ad Manager. Simplifying programmatic: first-price auctions for Google Ad Manager(2019):Google 官方宣布切到 unified first-price、废除 last look 的源文。
- U.S. Department of Justice. United States et al. v. Google LLC(ad tech 反垄断案):自我交易与 ad server / ad exchange 垄断指控的一手卷宗。
- Texas et al. v. Google(多州诉状):Project Bernanke 等内部项目最早被公开披露的来源;网络上有去封存版本可查。
- IAB Tech Lab. OpenRTB 2.6 Specification:
at(一价 / 二价 / 固定价)字段与拍卖类型的协议定义。 - IAB Tech Lab. sellers.json & SupplyChain Object:§8 买方对冲里供应链透明 / 自我交易识别的标准。