设备端广告竞价,用于投放再营销广告和自定义受众群体广告,无需跨网站第三方跟踪。
本文的适用对象
本文介绍了 Protected Audience API 的基础知识,并说明了一些底层概念,但没有深入探讨技术细节。
- 如果您从事广告或广告技术工作,则可以大致了解 Protected Audience 的运作方式。
- 如果您是开发者或软件工程师,Protected Audience API 开发者指南提供了有关该 API 的更深入的技术详细信息。查看待处理 Protected Audience 功能的最新状态。
如需了解 Protected Audience 文档中使用的术语,请参阅术语表。在本文的最后,您可以了解如何互动和分享反馈。
什么是 Protected Audience API?
Protected Audience API 是一项 Privacy Sandbox 技术,可用于实现再营销和自定义受众群体的相关使用情形,旨在让第三方无法跟踪用户的跨网站浏览行为。
Protected Audience API 可让浏览器在设备端开展竞价,从用户之前访问过的网站中选择相关广告。
Protected Audience API 是 TURTLEDOVE 系列提案中第一个在 Chromium 中实现的实验。Protected Audience 和 TURTLEDOVE 之间的区别主要在于广告买方和卖方的设备端角色分离。以下部分介绍了 Protected Audience API 的运作方式。
Protected Audience API 一分钟速览
如需更深入地了解 Protected Audience API,请参阅 Protected Audience API 开发者指南。

Protected Audience API 使用兴趣群体,让网站能够展示与其用户相关的广告。
例如,当用户访问某个想要宣传其产品的网站时,兴趣群体所有者(例如需求方平台 [DSP])可以请求用户的浏览器为该兴趣群体添加成员。如果请求成功,浏览器会记录:
- 兴趣群体的名称:例如“custom-bikes”。
- 兴趣群体的所有者:例如“https://dsp.example”。
- 兴趣群体配置信息,用于允许浏览器访问出价代码、广告代码和实时数据(如果群组的所有者受邀参与广告竞价)。
之后,当用户访问有可用广告空间的网站时,广告空间卖方(卖方提供商 (SSP) 或网站本身)可以使用 Protected Audience 运行广告竞价,以选择最适合向用户展示的广告。卖方调用 navigator.runAdAuction()
函数,该函数会提供受邀出价的兴趣群体所有者的列表。
只有浏览器所属的兴趣群组的所有者已受邀出价,该兴趣群组才能提供出价。
出价代码会从兴趣群组配置中提供的网址检索。此代码会提供有关兴趣群体的数据和卖方的信息,以及有关网页和浏览器的上下文数据。
提供出价的每个兴趣群组都称为买方。
当浏览器调用函数以运行广告竞价时,每个买方的代码都会借助其 Protected Audience 键值对服务提供的实时数据生成出价。然后,卖方会收到这些出价以及卖方拥有的实时数据,并为每个出价评分。得分最高的出价将赢得竞价。
胜出的广告会显示在围栏框中。出价中指定了广告素材的网址,并且来源必须与兴趣群体配置中提供的列表中的来源一致。
卖方可以报告竞价结果 (reportResult()
),买方可以报告胜出竞价 (reportWin()
)。
为什么需要 Protected Audience API?
与仅根据网站内容(内容相关定位)或使用用户向展示广告的网站提供的信息(第一方数据定位)来选择广告相比,了解用户兴趣有助于投放更相关的广告。
传统上,广告平台通过跟踪用户在各个网站上的行为来了解用户的兴趣。浏览器需要一种方法来让广告平台选择相关广告,以便内容发布商能够在不进行跨网站跟踪的情况下获得广告收入。
Protected Audience API 旨在让网站平台更接近以下状态:用户设备上的浏览器(而非广告客户或广告技术平台)存储有关用户兴趣的信息。
如何试用 Protected Audience API?
Protected Audience API 开发者指南介绍了如何使用该 API 以及如何在本地进行测试。
protected-audience-demo.web.app 提供了有关在广告客户网站和发布商网站上部署基本 Protected Audience 的演示。Protected Audience 演示视频介绍了此代码的运作方式,并预览了如何使用 Chrome 开发者工具进行调试。
有哪些浏览器配置可用?
用户可以通过在 chrome://settings/adPrivacy
中启用或停用顶级设置,调整自己在 Chrome 中参与 Privacy Sandbox 试用的状态。在初始测试期间,用户可以使用 Privacy Sandbox 设置停用 Protected Audience API。
Chrome 计划允许用户查看和管理将他们纳入其中的兴趣群体名单(包括他们访问过的网站)。与 Privacy Sandbox 技术一样,用户设置可能会随着用户、监管机构和其他人的反馈而不断发展。
随着 Protected Audience API 的不断发展,我们会根据测试和反馈更新 Chrome 中的可用设置。未来,我们将提供更精细的设置,以便管理 Protected Audience 和相关数据。
当用户在无痕模式下浏览时,API 调用方无法访问群组成员资格,并且当用户清除其网站数据时,成员资格也会一并移除。
我可以停用 Protected Audience API 吗?
了解如何以网站所有者或个人用户的身份禁止访问 Protected Audience API。
主要概念
想要详细了解 Protected Audience 术语?请参阅 Privacy Sandbox 术语表。
什么是兴趣群体?
Protected Audience API 兴趣群体代表一组具有共同兴趣的用户,对应于再营销名单。
每个 Protected Audience API 兴趣群体都有一个所有者。不同类型的所有者会创建不同类型的兴趣群体,并有不同的用例。
所有者通过调用 JavaScript 函数 navigator.joinAdInterestGroup()
来要求用户的浏览器添加其兴趣群组的成员资格,并提供与兴趣群组相关的广告数据等信息,以及用于出价的 JavaScript 的网址。兴趣群体数据(例如广告)可以更新,并且兴趣群体最长可启用 30 天。
兴趣群体类型
下表提供了不同类型的 Protected Audience API 兴趣群体和所有者的示例。
所有者 | 示例 | 兴趣 | 示例 | 使用场景 |
---|---|---|---|---|
广告客户 | 自行车制造商 | 产品 | 查看过特定类别自行车产品页面的用户。 | 再营销到之前与品牌互动过的用户。 |
发布商 | 新闻网站 | 内容 | 阅读骑行相关内容的用户。 | 发布商可以使用第一方数据,让广告客户能够购买与其网站上的读者相关的广告。发布商拥有的兴趣群组可让发布商在用户浏览其他网站时也执行相同的操作。发布商或许可以针对向其受众群体的特定细分受众群体展示广告的功能收费。 |
广告技术 | DSP | 商品类别 | 对骑行装备感兴趣的用户。 | 广告技术公司可能会创建和管理一个兴趣群体,其中包含他们认为有意购买某类商品的用户。然后,该兴趣群体可用于在销售该类商品的网站(并与广告技术公司合作)上宣传商品。 |
Chrome 允许每个所有者最多有 1,000 个兴趣群体,并且最多有 1,000 个兴趣群体所有者。这些限制是作为护栏,在正常运行时不会达到。
什么是买方?
在 Protected Audience API 中,买方是拥有兴趣群体并在广告竞价中出价的一方。
例如:
买方有三项工作:
- 选择是否参与竞价。
- 选择广告并计算出价。
- 报告竞价结果。
这些作业是通过买方在 Protected Audience API 广告竞价期间运行的代码以程序化方式完成的。
当买方请求用户的浏览器将某个兴趣群体添加到其所属的群体(通过调用 JavaScript 函数 navigator.joinAdInterestGroup()
)时,买方会向浏览器提供:
- 出价代码的网址,将在卖方运行广告竞价时使用。
- 可能包含相应兴趣群体的广告素材的网址。(广告网址可能会在日后通过更新添加。)
- 要查询的数据键列表,以及买方的键值对服务的网址,以便出价代码在竞价期间获取实时数据。
买方的代码还可以包含一个 reportWin()
函数来报告竞价结果。
谁负责运行广告竞价?
可能会有多个方开展竞价来出售广告空间。
例如:
- 内容发布商:自行在其网站上托管广告内容。
- 供应方平台 (SSP):与发布商合作并提供其他服务。
- 第三方脚本:代表发布商参与广告竞价。
借助 Protected Audience API,广告资源卖方有三项工作:
- 强制执行发布商规则:指明哪些买方和哪些出价符合条件。
- 运行竞价逻辑:在 worklet 中运行 JavaScript 以计算每个出价的吸引力得分。
- 报告竞价结果。
这些作业是通过程序化方式完成的,卖方在通过调用 JavaScript 函数 navigator.runAdAuction()
发起广告竞价时,会在其提供的代码中完成这些作业。
Protected Audience API 广告竞价的运作方式如何?
下图概述了 Protected Audience API 广告竞价的各个阶段:

在 Protected Audience API 中,广告竞价是指浏览器在用户设备上运行的一组小型 JavaScript 程序,用于选择广告。为保护隐私,卖方和买方的所有广告竞价代码均在隔离的 JavaScript worklet 中运行,这些 worklet 无法与外界通信。
卖方(发布商或供应方平台)在出售广告空间的网站(例如新闻网站)上发起 Protected Audience 广告竞价。卖方选择参与竞价的买方,指明要出售的广告空间,并为广告提供其他条件。每个买方都是兴趣群体的所有者。
卖方向浏览器提供用于评分出价的代码,其中包括每个出价的价值、广告素材网址以及从每个买方返回的其他数据。在竞价期间,买方的出价代码和卖方的出价评分代码可以从其键值对服务接收数据。选择并展示广告(在围栏框中展示,以保护隐私)后,卖方和胜出的买方可以报告竞价结果。
- 用户访问某个展示广告的网站。
- 卖方的代码会启动竞价。卖方指定要出售的广告空间、可以出价的方以及评分这些出价的方法。
- 系统会执行受邀买方的代码,以生成出价、相关广告素材资源的网址和其他数据。出价脚本可以从买方的键值对服务查询实时数据,例如广告系列剩余预算。
- 卖方的代码会为每个出价评分,并选择胜出出价。此逻辑会使用出价值和其他数据来返回出价的吸引力,并拒绝无法击败情境广告胜出的广告。卖方可以使用自己的键值对服务来处理实时数据。在竞价开始之前,卖方会为可用的广告位找到最合适的内容相关广告。
- 在竞价配置中设置
resolveToConfig
标志后,胜出的广告会作为围栏帧配置对象返回。该配置用于将封闭式框架导航到广告素材,并且广告素材的网址会对卖方和发布商隐藏。如果resolveToConfig
标志设置为false
或未传入,系统会将胜出的广告作为不透明的 URN 返回,该 URN 可用于在 iframe 中呈现广告。从 M114 开始,可使用围栏帧配置对象。 - 系统会向卖方和胜出的买方报告竞价结果。
我们正在讨论针对流失买家的报告机制。
什么是 Protected Audience API 键值对服务?
借助 Protected Audience API 键值对服务,广告技术平台可以在买方出价时查询实时数据,卖方可以在保护隐私的同时为广告评分。您可以在 Protected Audience API 服务中了解 Protected Audience API 键值对服务及其他服务。
键值对服务部署到广告技术平台自己的云基础架构,并在可信执行环境中运行。对键值对服务的请求不会导致事件级日志记录或产生其他副作用。键值对服务还将支持用户定义的函数 (UDF),让广告技术平台能够在键值对服务中执行自己的自定义逻辑。
买方或卖方提供“键”列表,以指定他们需要从 Protected Audience API 键值对服务获取的数据。键值对服务会针对每个键返回一个值。
Protected Audience API 键值对服务代码现已在 Privacy Sandbox GitHub 代码库中提供。Chrome 和 Android 开发者可以使用此服务。
如需详细了解 Protected Audience API 键值对服务,请参阅 API 说明文档和信任模型说明文档。
实时数据如何纳入竞价?
广告竞价中的买方或卖方可能需要访问实时数据。例如,买方可能需要计算广告系列的剩余预算,或者卖方可能需要检查广告素材是否符合发布商政策。
为了满足 Protected Audience API 的隐私权要求,键值对服务会提供广告竞价期间所需的实时数据。当每个买方调用 navigator.joinAdInterestGroup()
时,买方都会指定键值对服务网址,并指定要在竞价期间向服务查询的键。同样,当卖方通过调用 navigator.runAdAuction()
运行广告竞价时,卖方会为其键值对服务提供网址。系统将使用广告素材的呈现网址查询卖方的键值对服务。
在初始测试中,使用的是“自带服务器”模型。从长远来看,广告技术平台需要使用在可信执行环境中运行的开源 Protected Audience API 键值对服务来检索实时数据。
为确保整个生态系统有足够的时间进行测试,我们预计在弃用第三方 Cookie 一段时间后,才会要求使用开源键值对服务或可信执行环境。在进行此转换之前,我们会向开发者提供充分的通知,以便他们开始测试和采用。
如何在 Protected Audience 竞价中使用第一方数据?
第一方数据是指网站拥有的用户数据。例如,如果用户在广告客户或发布商的网站上指定了其喜爱的颜色,那么该颜色就会被视为第一方数据。
在 Protected Audience 竞价中,广告客户可以使用其第一方数据来确定广告兴趣群体成员资格,还可以将数据作为 userBiddingSignals
传递到兴趣群体中。在出价生成步骤期间,只有买方可以使用来自广告客户的第一方数据,卖方无法使用。
例如,如果广告客户知道用户的喜爱颜色,则可以在将用户添加到兴趣群体时,在兴趣群体配置中将该值设置为 userBiddingSignals
:
const interestGroup = {
owner: 'https://example-buyer.com',
name: 'running-shoes',
userBiddingSignals: {
favoriteColor: 'blue' // First-party data
},
// ...other interest group settings
};
navigator.joinAdInterestGroup(interestGroup, 3600);
发布商还可以在发起竞价时在竞价配置中设置信号,以传入其第一方数据,并控制哪些实体可以接收第一方数据。当发布商以 auctionSignals
的形式传入第一方数据时,买方和卖方都可以使用这些数据。如果数据以 sellerSignals
的形式传入,则只有卖方可以访问;如果以 perBuyerSignals
的形式传入,则只有指定的买方可以访问。发布商还可以将第一方数据传入组件竞价。发布商和竞价参与者应先就需要共享哪些第一方数据以及数据的格式达成一致。
以下示例介绍了发布商如何将第一方数据传递给各种竞价参与方:
const auctionConfig = {
seller: 'https://example-seller.com',
auctionSignals: {
favoriteColor: 'blue', // Both buyer and seller will receive this signal
},
sellerSignals: {
favoriteIceCreamFlavor: 'chocolate', // Only the seller will receive this signal
},
perBuyerSignals: {
'https://example-buyer.com': {
favoriteDrink: 'tea', // Only a specific buyer will receive this signal
},
},
// The same pattern applies to the component auction
componentAuctions: [{
seller: 'https://example-component-seller.com',
auctionSignals: { ... },
sellerSignals: { ... },
perBuyerSignals { ... }
}],
// ...other auction settings
};
navigator.runAdAuction(auctionConfig);
了解详情
如需更深入地了解 Protected Audience API,请参阅 Protected Audience API 开发者指南。
开发者
如果您已准备好开始使用 Protected Audience API,请参阅开展实验并参与。
我们编写了 API 开发者指南,并构建了 Protected Audience API 演示版,其中提供了基本 Protected Audience API 部署的演示。Protected Audience API 演示视频介绍了演示代码的运作方式,并展示了如何使用 Chrome 开发者工具进行 Protected Audience API 调试。
互动和分享反馈
- GitHub:阅读说明文档,提出问题并关注讨论。
- 公告:加入 Protected Audience API 邮寄名单或查看过往公告。
- W3C:在 Improving Web Advertising Business Group 中讨论行业用例。
- 开发者支持:您可以就实现和最佳实践提出问题,也可以在 Privacy Sandbox 开发者支持代码库中参与讨论。
- 当前实现:如有关于 Chrome 实现 Protected Audience 的问题,请提交 Chromium bug。