利用设备端广告竞价来服务再营销和自定义受众群体,无需进行跨网站第三方跟踪。
本文的适用对象
本文介绍了 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 是要在 Chromium 中通过 TURTLEDOVE 提案系列实现的第一个实验。Protected Audience 和 TURTLEDOVE 之间的区别主要在于区分广告买方和卖方的设备端角色。以下部分介绍了 Protected Audience API 的工作原理。
一分钟了解 Protected Audience API
如需更深入地了解 Protected Audience API,请参阅 Protected Audience API 开发者指南。
![Protected Audience API 生命周期每个阶段概览](https://developers.google.cn/static/privacy-sandbox/assets/images/protected-audience-overview.png?authuser=6&hl=sv)
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 广告竞价的六个阶段](https://developers.google.cn/static/privacy-sandbox/assets/images/protected-audience-steps.png?authuser=6&hl=sv)
在 Protected Audience API 中,广告竞价是一系列小型 JavaScript 程序,浏览器会在用户设备上运行以选择广告。为了保护隐私,来自卖方和买方的所有广告竞价代码都在无法与外界通信的独立 JavaScript 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 键值对服务中获取的数据。键值对服务会响应每个键的一个值。
Privacy Sandbox GitHub 代码库中现在提供了 Protected Audience API 键值对服务代码。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 错误。