Protected Audience API 概览

通过设备端广告竞价投放再营销广告和自定义受众群体定位广告,无需进行跨网站第三方跟踪。

本文档的适用对象

本文档介绍了 Protected Audience API 的基础知识并阐释了一些底层概念,但并未深入探讨技术细节。

如需了解 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 生命周期各阶段的概览
Protected Audience API 生命周期。

Protected Audience API 使用兴趣群体,使网站能够向用户展示相关广告。

例如,当用户访问某个想宣传其产品的网站时,兴趣群体所有者(例如需求方平台 [DSP])可以请求用户的浏览器为该兴趣群体添加成员。如果请求成功,浏览器会记录:

  • 兴趣群组的名称,例如“custom-bikes”。
  • 兴趣群组的所有者:例如“https://dsp.example”。
  • 兴趣群体配置信息,用于在群组所有者受邀参与广告竞价时,允许浏览器访问出价代码、广告代码和实时数据。

之后,当用户访问有可用广告空间的网站时,广告空间卖方(卖方提供商 [SSP] 或网站本身)可以使用 Protected Audience 运行广告竞价,以选择最适合向用户展示的广告。卖家调用 navigator.runAdAuction() 函数,该函数会提供受邀参与出价的兴趣群体所有者的列表。

出价只能由浏览器所属的兴趣群体提供,且这些兴趣群体的所有者已受邀参与出价。

出价代码是从兴趣组配置中提供的网址检索的。此代码提供有关兴趣群体的数据和卖方的信息,以及有关网页和来自浏览器的上下文数据。

提供出价的每个兴趣群体都称为买方。

当浏览器调用该函数来运行广告竞价时,每个买方的代码都会在 Protected Audience 键值对服务提供的实时数据的帮助下生成出价。然后,卖方会收到这些出价以及卖方拥有的实时数据,并为每个出价评分。得分最高的出价将赢得竞价。

胜出的广告会显示在围栏框架中。 广告素材的网址在出价中指定,并且来源必须与兴趣组配置提供的列表中的某个来源相匹配。

卖家可以报告竞价结果 (reportResult()),买家可以报告自己胜出的竞价 (reportWin())。

了解 Protected Audience 竞价报告

为什么需要 Protected Audience API?

与仅根据网站内容(内容相关定位)或根据用户向展示广告的网站提供的信息(第一方数据定位)选择广告相比,了解用户兴趣有助于投放更相关的广告。

过去,广告平台通过跟踪用户在各个网站上的行为来了解用户的兴趣。浏览器需要一种方法来让广告平台选择相关广告,以便内容发布商在不进行跨网站跟踪的情况下获得广告收入。

Protected Audience API 旨在使 Web 平台更接近这样一种状态:用户设备上的浏览器(而非广告客户或广告技术平台)掌握着有关用户感兴趣的内容的信息。

如何试用 Protected Audience API?

  • Protected Audience API 开发者指南介绍了如何使用该 API 以及如何在本地进行测试。

  • protected-audience-demo.web.app 演示了在广告客户网站和发布商网站上进行的基本 Protected Audience 部署。Protected Audience 演示视频介绍了此代码的运作方式,并预览了如何使用 Chrome 开发者工具进行调试。

有哪些浏览器配置可用?

用户可以在 Chrome 中通过启用或停用 chrome://settings/adPrivacy 中的顶级设置来调整自己参与 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 允许每个所有者最多拥有 1000 个兴趣群体,并允许最多有 1000 个兴趣群体所有者。这些限制旨在提供安全保障,而不是在正常运行中达到。

什么是买家?

在 Protected Audience API 中,买方是指拥有兴趣群体并在广告竞价中出价的一方。

例如:

  • 广告客户:自行投放广告。
  • 需求方平台 (DSP):代表广告客户。
  • 兴趣群体所有者:为多个广告客户工作。

买方有三项任务:

  • 选择是否参与竞价。
  • 选择广告并计算出价。
  • 报告竞价结果。

这些作业以程序化方式完成,在 Protected Audience API 广告竞价期间运行买方提供的代码。

当买方请求用户的浏览器将某个兴趣群体添加到其所属的群体中(通过调用 JavaScript 函数 navigator.joinAdInterestGroup())时,买方会向浏览器提供以下信息:

  • 出价代码的网址,卖方在运行广告竞价时会使用该网址。
  • 兴趣群组的广告素材的网址(可能)。(广告网址可能会在以后的更新中添加。)
  • 要查询的数据的列表,以及买方的键值对服务的网址,以使出价代码能够在竞价期间获取实时数据。

买方的代码还可以包含一个 reportWin() 函数来报告竞价结果。

谁会进行广告竞价?

可能有多个方会开展竞价来出售广告空间。

例如:

  • 内容发布商:自行在其网站上托管广告内容。
  • 供应方平台 (SSP):与发布商合作并提供其他服务。
  • 第三方脚本:代表发布商参与广告竞价。

借助 Protected Audience API,广告资源卖方需要完成三项工作:

  • 强制执行发布商规则:指明哪些买方和哪些出价符合条件。
  • 运行竞价逻辑:在工作程序中运行 JavaScript,以计算每个出价的理想程度得分。
  • 报告竞价结果。

这些作业以程序化方式完成,在卖家通过调用 JavaScript 函数 navigator.runAdAuction() 发起广告竞价时,由卖家提供的代码完成。

Protected Audience API 广告竞价的运作方式是什么?

下图概述了 Protected Audience API 广告竞价的每个阶段:

Protected Audience API 广告竞价的六个阶段
Protected Audience 广告竞价阶段。

在 Protected Audience API 中,广告竞价是浏览器在用户设备上运行的一组小型 JavaScript 程序,用于选择广告。为保护隐私,卖家和买家的所有广告竞价代码都在无法与外界通信的隔离 JavaScript 工作单元中运行。

卖方(发布商或供应方平台)在出售广告空间的网站(例如新闻网站)上发起 Protected Audience 广告竞价。卖方选择参与竞价的买方,指明要出售的广告空间,并提供有关广告的其他条件。每个买方都是相应兴趣群组的所有者。

卖方为浏览器提供用于对出价进行评分的代码,其中包括每个出价的值、广告素材网址以及从每个买方返回的其他数据。在竞价期间,买方的出价代码和卖方的出价评分代码可以从各自的键值对服务中接收数据。选择并展示广告后(在受限框架中展示,以保护隐私),卖方和胜出的买方可以报告竞价结果。

  1. 用户访问展示广告的网站。
  2. 卖方的代码开始竞价。卖方指定了哪些广告空间可供出售、哪些人可以出价,以及对这些出价进行评分的方法。
  3. 受邀买方的代码会执行,以生成出价、相关广告素材的网址和其他数据。出价脚本可以从买方的键值对服务中查询实时数据,例如广告系列的剩余预算。
  4. 卖方的代码会为每个出价评分,并选择胜出者。此逻辑使用出价值和其他数据来返回出价的理想程度,并拒绝无法胜过情境广告胜出的广告。卖家可以使用自己的键值对服务来获取实时数据。在竞价开始之前,卖方会为可用的广告插播位找到最适合的内容相关广告。
  5. 如果在竞价配置中设置了 resolveToConfig 标志,则胜出广告会以受限框架配置对象的形式返回。该配置用于将围栏框架导航到广告素材,并且广告素材的网址对卖家和发布商都是隐藏的。如果 resolveToConfig 标志设置为 false 或未传入,则胜出的广告会以不透明的 URN 形式返回,该 URN 可用于在 iframe 中呈现广告。从 M114 开始,可以使用围栏框架配置对象。
  6. 系统会向卖家和胜出的买家报告竞价结果。

我们正在讨论针对失去的买家的报告机制。

什么是 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 调试。

互动和分享反馈