发布商通常会使广告需求来源多样化,从而以提高收入为目标进行优化,并调用多家公司(例如发布商广告服务器、供应方平台和需求方平台)来确定网页上特定广告位的最佳广告。通过标头出价,发布商可以从各种需求来源获取广告展示位置的出价。在顺序竞价设置中,标头出价库可用于运行包含情境数据的竞价,而 Protected Audience 可用于运行包含跨网站数据的竞价。
在开始之前,请先从着陆页了解 Protected Audience 的基础知识,并从 Prebid.js 文档中了解页眉出价。
定义
拍卖
| 竞价 | 定义 |
| 内容相关竞价 | 一种广告竞价,使用竞价执行环境中的可用数据。内容相关竞价中可能包含多个竞价,例如页眉出价和服务器端竞价。 |
| Protected Audience 竞价 | 一种广告竞价,涉及对在其他网站上创建的兴趣群体进行出价。 |
| Protected Audience 多卖方竞价 | 一种双层 Protected Audience 竞价,首先涉及多个并行组件竞价,然后将得分最高的广告提交给最终的顶级竞价。 |
| 顶级竞价 | Protected Audience 多卖方竞价中的最终广告竞价,用于为组件竞价的胜出者提供评分。 |
| 组件竞价 | Protected Audience 多卖方竞价中的嵌套竞价,其中每个组件卖方并行运行其组件竞价。每个组件竞价中得分最高的广告会传递到顶级竞价。 |
| 顺序竞价设置 | 一种广告竞价设置,可将内容相关广告竞价与 Protected Audience 竞价相集成,并确定这两个竞价的胜出者。 |
参与者
| 参与者 | 定义 |
| 广告客户 | 希望投放广告并制作广告素材的一方。 |
| 发布商 | 提供广告资源以供竞价的实体。 |
| 买家 | 在竞价中出价以从卖方处购买广告空间的买方。通常是需求方平台 (DSP)。 |
| 发布商广告服务器 | 发布商用于管理和选择要在网站上呈现的广告的服务。发布商广告服务器可能会结合自身的竞价结果、标头出价方响应、直接销售的广告资源等,来确定哪则广告能为发布商带来最高收入。
发布商广告服务器可能会提供用于与服务器互动的客户端库。 |
| 顶级卖家 | 调用(即创建)Protected Audience 多卖方竞价并参与顶级竞价的一方。 |
| 组件卖家 | 在 Protected Audience 多卖方竞价中运行组件竞价,以将发布商的广告空间出售给买方的实体。通常是供应方平台 (SSP)。 |
顺序拍卖设置
在顺序竞价设置中,系统会先执行内容相关广告竞价,然后再执行 Protected Audience 竞价。通过这种设置,发布商可以利用网页上提供的上下文数据进行竞价,同时在安全的环境中利用跨网站数据进行竞价,从而最大限度地提高收入潜力,并保护用户隐私。
系统可能会先在网页上执行标头出价库,以收集发布商广告服务器内容相关竞价的出价。然后,可以将内容相关竞价的调整后胜出出价输入到 Protected Audience 竞价中作为出价底价。在评分步骤中,顶级卖方可以在计算期望得分时为组件竞价出价分配零分,从而将组件竞价出价降至低于出价底价。如果没有 Protected Audience 组件竞价高于出价下限,则向用户呈现赢得情境竞价的广告。如果 Protected Audience 竞价返回了胜出者,则意味着胜出者的出价高于最低出价,并且系统会向用户呈现 Protected Audience 胜出广告。
在此顺序竞价设置示例中,网页上可能会按顺序执行三项主要竞价:1) 由标头出价库执行的上下文竞价;2) 由发布商广告服务器执行的上下文竞价;3) Protected Audience 竞价。
概览图的详细说明:
- 在竞价之前,用户会被添加到广告客户网站上的某个兴趣群体中。
- 当用户稍后访问发布商网页时,Prebid.js 会运行情境竞价,以收集标头出价方的出价响应。在此步骤中,买方可以提供信号,卖方可以提供要在后续 Protected Audience 竞价中使用的组件竞价配置。Prebid.js 提供了一个模块,用于将这些信号和配置传播到 Protected Audience 竞价。
- Prebid.js 收集的出价响应会发送到发布商广告服务器,以进行服务器端内容相关竞价。
- 发布商广告服务器可能会将自己的竞价结果、页眉出价结果、直销广告资源等结合起来,以确定哪则广告能为发布商带来最高收入。胜出的广告会返回到发布商广告服务器的客户端库。
- 上下文竞价胜出者的调整后出价以及买方的信号 (
perBuyerSignals) 和 Prebid.js 收集的卖方组件竞价配置可以由发布商广告服务器的客户端库传递到 Protected Audience 竞价中。 - Protected Audience 多卖方竞价由顶级卖方执行。在顶级卖方的得分步骤中,顶级卖方可能会将每个组件竞价的胜出出价与情境竞价的调整后胜出出价进行比较。如果组件出价低于情境竞价出价,则顶级卖方会返回
0的意向得分。如果所有出价的得分均为0,则runAdAuction()调用会返回null,这表示应渲染内容相关广告竞价胜出的广告。 - 发布商广告服务器客户端库会根据
runAdAuction()调用返回的内容来呈现胜出的 Protected Audience 广告或内容相关广告。 - 向用户呈现胜出的广告。
竞价前
在竞价之前,当用户访问广告客户的网页时,买方和广告客户可以定义用户所属的网站兴趣群体,并添加广告客户网站中的背景数据和第一方数据,以供稍后在竞价中用作信号。
- 用户进入广告客户的网站。
- 广告客户网站会在稍后加载参与竞价的每个买方的脚本。
- 买方的脚本包含
joinAdInterestGroup()调用,用于将用户添加到买方的兴趣群体。
使用 Prebid.js 和发布商广告服务器进行的内容相关竞价
在顺序竞价设置中,所有内容相关竞价都会在 Protected Audience 竞价运行之前执行。在本文档中介绍的设置中,我们通过 Prebid.js 运行标头出价情境竞价,该竞价会馈送到发布商广告服务器的服务器端竞价中。
发布商首先通过调用 Prebid.js 并使用标志来表明之后将执行 Protected Audience 竞价,从而发起标头出价情境竞价。然后,Prebid.js 收集出价响应,并将其发送到发布商广告服务器以进行服务器端内容相关竞价。在出价响应收集步骤中,买方和卖方有机会提供组件竞价配置和买方信号 (perBuyerSignals),以用于后续的 Protected Audience 竞价(如果他们想参与)。该组件竞价配置最终将传递到后续的 Protected Audience 竞价中。
- 内容相关竞价初始化:用户访问发布商网页。
- 发布商网页加载发布商广告服务器客户端库并定义广告位。
- 发布商网页加载 Prebid 并启动标头出价情境竞价。
- 卖家 A 的情境竞价(与卖家 B 的情境竞价并行运行)。Prebid.js 向卖方 A 发送出价请求。
- 卖方 A 从买方处检索出价响应和
perBuyerSignals。 - 卖家 A 执行情境竞价。
- 卖方 A 构建了包含
perBuyerSignals的组件竞价配置。 - 卖方 A 向 Prebid.js 返回胜出出价及其组件竞价配置。
- 卖家 B 的情境竞价(与卖家 A 的情境竞价并行运行)。Prebid.js 向卖方 B 发送出价请求。
- 卖方 B 从买方处检索出价响应和
perBuyerSignals。 - 卖家 B 执行情境竞价。
- 卖方 B 构建了包含
perBuyerSignals的组件竞价配置。 - 卖方 B 会向 Prebid.js 返回胜出出价及其组件竞价配置。
- 发布商广告服务器的内容相关竞价 Prebid.js 收集的出价响应会发送到发布商广告服务器,以进行内容相关竞价。
- 包含买方信号的组件竞价配置会与发布商广告服务器的客户端库共享
- 发布商广告服务器会进行情境竞价,以确定直销广告系列、程序化出价、Prebid 的情境出价和其他广告资源中的最佳广告。
- 发布商广告服务器返回调整后的胜出出价。
Protected Audience 多卖方竞价
在此阶段,情境竞价已结束,发布商广告服务器的客户端库可以将情境竞价胜出的调整后出价、组件竞价配置以及参与 Protected Audience 竞价的买方的信号传递给顶级卖方。上下文竞价出价价格可作为底价传递到竞价配置中,作为顶级竞价评分的信号。
组件竞价并行执行,在每个组件竞价中,浏览器会根据参与相应组件竞价的每个买方的出价逻辑生成出价,使用组件卖方的评分逻辑为每个出价评分,然后将得分最高的广告返回到顶级竞价。
- 发布商网站加载顶级卖方的脚本。
- 发布商广告服务器的客户端库提供情境竞价出价、包含来自买方信号的组件竞价配置,并将其发送给顶级卖方。内容相关竞价的胜出广告出价可以作为卖方信号传递到竞价配置中(此出价可在顶级卖方的
scoreAd()函数中使用)。 - 顶级卖方通过调用
runAdAuction()来启动 Protected Audience 竞价。 - 卖方 A 的组件竞价(与卖方 B 的组件竞价并行运行)。浏览器会读取参与卖方 A 的组件竞价的所有买方的用户兴趣群体。
- 浏览器从参与组件竞价的买方的兴趣组中指定的位置提取出价脚本和可信出价信号。
- 浏览器通过执行每个买方的出价生成逻辑来生成出价。
- 浏览器从卖家 A 处提取每个广告的评分脚本和可信的评分信号。
- 浏览器针对每个出价执行卖方 A 的评分逻辑。
- 浏览器会选择卖家 A 的评分逻辑提交的得分最高的广告。
- 卖家 B 的组件竞价(与卖家 A 的组件竞价并行运行)。浏览器会读取参与卖方 B 的组件竞价的所有买方的用户兴趣群体。
- 浏览器从参与组件竞价的买方的兴趣组中指定的位置提取出价脚本和可信出价信号。
- 浏览器通过执行每个买方的出价生成逻辑来生成出价。
- 浏览器从卖方 B 获取每个广告的评分脚本和可信评分信号。
- 浏览器针对每个出价执行卖方 B 的评分逻辑。
- 浏览器会选择由卖方 B 的评分逻辑提交的得分最高的广告。
顶级竞价评分和广告呈现
执行完上一部分中的组件竞价后,浏览器会对每个组件竞价的胜出广告运行顶级卖方的评分逻辑。在顶级卖方的 scoreAd() 函数中,情境竞价调整后的出价可能以 sellerSignals 的形式提供,评分逻辑可能会将该情境竞价出价与 Protected Audience 组件竞价的胜出出价进行比较。
如果情境竞价的胜出出价高于组件竞价的胜出出价,则 scoreAd() 函数可以返回 0 的期望程度得分。如果没有广告的期望得分高于 0,则表示内容相关竞价的胜出广告比任何组成竞价的胜出广告都更有价值,并且 runAdAuction() 函数会返回 null。
如果 Protected Audience 竞价没有胜出方并返回 null,则发布商的广告服务器客户端库可以将情境竞价胜出方呈现到 iframe 中。如果 Protected Audience 竞价胜过内容相关竞价,并返回 FencedFrameConfig 对象或不透明的 URN,则可以将胜出的 Protected Audience 竞价广告呈现到围栏框架或 iframe 中。
- 顶级竞价广告评分浏览器从顶级卖方处提取评分脚本,以及每个广告的可信评分信号。
- 浏览器针对所有组件竞价的每个胜出出价执行顶级卖方的评分逻辑。在顶级卖家的
scoreAd()脚本中,相应逻辑可以访问可能已在竞价配置中作为sellerSignals传入的上下文竞价调整后的胜出出价。该脚本可以将胜出的情境出价与 Protected Audience 出价进行比较,如果情境出价更高,则返回 0 的期望值。否则,脚本会计算期望得分,这可能基于组件 Protected Audience 出价。 - 浏览器会选择顶级卖方的评分逻辑提交的期望得分最高的广告。
- 如果 Protected Audience 竞价胜出:Protected Audience 竞价会向发布商的广告服务器客户端库返回一个
FencedFrameConfig对象或一个不透明的 URN。 - 客户端库将围栏框架的
config属性设置为FencedFrameConfig对象,或将 iframe 的src属性设置为胜出的 Protected Audience 广告的不透明 URN。 - 浏览器从买方处提取 Protected Audience 竞价胜出的广告。
- 浏览器向用户呈现广告。
- 如果内容相关广告竞价胜出,Protected Audience 竞价会返回
null。 - 浏览器将 iframe 的
src属性设置为胜出的情境广告。 - 浏览器从买方处提取内容相关竞价胜出的广告。
- 浏览器向用户呈现广告。
互动和分享反馈
后续操作
我们希望与您交流,确保我们构建适合所有人的 API。
讨论 API
与其他 Privacy Sandbox API 一样,此 API 也会记录在案并公开讨论。
使用 API 进行实验
您可以进行实验并参与有关 Protected Audience API 的对话。