Protected Audience API(以前称为 FLEDGE)

作为 Privacy Sandbox 的一部分,Chrome 提出了 Protected Audience API - 一种浏览器内 API 可让广告主和广告技术公司展示针对用户兴趣群体的广告 不依赖第三方 Cookie,同时保护用户免受跨网站攻击 跟踪。

Chrome 正在运行源 试用 。Authorized Buyers 有资格参与 如何在 Ad Manager 发布商广告资源上测试 Protected Audience API。 出价方可以通过测试 Protected Audience API 来达成以下目的:

  • 迭代并了解 Protected Audience API 流程的效果。
  • 在公共论坛中针对可能的 API 改进措施生成反馈, 例如 GitHub
  • 为在不使用 API 的情况下支持个性化广告功能做好准备 不依赖第三方 Cookie

如有兴趣参与测试,请查看授权买方 部分了解详情。

服务流摘要

下面简要介绍了 Authorized Buyers 的 Protected Audience 广告投放流程 合作伙伴:

流程图

  1. 出价工具与广告客户合作, 广告客户。通常,广告客户会将出价方的代码添加到 广告客户页面上将浏览器添加到兴趣群体。
  2. 最终用户访问广告客户的网页。该网页可能包含出价方的 标记前面。
  3. 出价方的代码会调用 Protected Audience API joinAdInterestGroup()。 此调用请求浏览器将用户添加到兴趣群体。
  4. 最终用户访问发布商网页。用户的浏览器请求 Google 的发布商广告代码。
  5. Google 的发布商广告代码会向 Google 服务器发送内容相关广告请求。
  6. Google 向参与竞价的出价方发送内容相关出价请求。请参阅 如需了解详情,请参阅“出价请求更改”部分
  7. 出价方会返回包含 interest_group_bidding 字段的 BidResponse。 如果出价方未指定 interest_group_bidding,Google 就不会 在竞价中的 interestGroupBuyers 中添加出价方的来源 配置。 出价响应还可以包含 interest_group_bidding.per_buyer_signals。 “per_buyer_signals”将被传递到出价方的出价功能 。有关详情,请参阅出价响应更改 部分
  8. Google 会运行服务器端竞价,并将出价响应返回给 。服务器端竞价会考虑传统的服务器端出价。 出价响应可以包含内容相关胜出出价的相关信息(如果 任何)。
  9. 出价响应包含适用于浏览器和 竞价。这可能包括来自每个参与竞价的买方的情境信号 (通过 interest_group_bidding.per_buyer_signals 发送)、 与情境相关的胜出者信息以及出价资格设置。
  10. Google 的发布商代码调用 Protected Audience API runAdAuction() 以便在设备端发起兴趣群体竞价。Google 仅提供 之前已将interest_group_bidding作为 interestGroupBuyers
  11. Google 会将每个符合条件的出价方的per_buyer_signals传递给 Protected 受众群体竞价配置。
  12. 如果指定出价方的兴趣群体指定了 trustedBiddingSignalsUrl 时,浏览器会向每个群组的 trustedBiddingSignalsUrl,用于提取每个组的实时信号。请参阅 详见 Protected Audience API 规范
  13. 浏览器针对每个兴趣群体调用出价方的 generateBid() 已选择参与竞价且有资格参与浏览器内竞价的广告客户。这个 计算出价并选择广告素材。generateBid()有权访问 出价方提供的per_buyer_signals和可信出价 特定兴趣群体的信号。
  14. 浏览器会调用卖方(在本例中为 Google)的 scoreAd() 来 为基于兴趣群体的广告竞价中的每个出价指定一个排名。对出价进行排名 根据发布商保护措施、广告政策 限制条件。
  15. 浏览器针对符合条件的兴趣群体出价开展竞价。通过 排名最高的内容相关出价参与浏览器内竞价。
  16. 竞价结束后,如果有兴趣群体胜出,浏览器调用 卖方的reportResult()和出价方的reportWin()来分别 就浏览器内竞价的胜出者进行探讨。
  17. 如果基于兴趣群体的广告胜出,Google 的发布商代码会以一种 iframe。

服务流详情

广告投放之前

广告素材审核

广告素材必须经过 Google 的审核和批准,然后才能从 Protected Audience 浏览器内竞价。您可以提交广告素材以供审核 通过 Real-time Bidding API 或通过 广告素材自动扫描。广告素材 Protected Audience 浏览器内基于兴趣群体的广告竞价必须包含 renderUrls以供审核。

renderUrls 的要求:

  • 通过 API 提交的 renderUrl 应与使用的 renderUrl 一致 参与基于兴趣群体的广告竞价
  • 每个 renderUrl 只能代表一个广告客户或一个广告 广告系列。指定的 renderUrl 不能用于代表 多个广告客户。每个 renderUrl 必须映射到一个广告素材。
  • renderUrl 必须可供 Google 的离线访问和提取 最长 7 天的时间。
Real-time Bidding API

出价方可以使用实时出价 API上传广告素材 基于兴趣群体的出价。

自动扫描广告素材

出价方可以针对未 通过 Real-time Bidding API 上传的内容。

如果您设置了自动广告素材扫描功能,Google 就会在以下位置查找广告素材: 并自动扫描它们,以便有资格 今后的竞价中

启用自动广告素材扫描功能的方法如下:

  • 将基于兴趣群体的广告素材的所有 renderUrl 来源添加到 Authorized Buyers 账号。

  • 将以下自定义 HTTP 标头添加到广告素材的 HTTP 响应中:

    Authorized-Buyers-Creative-ID

    字符串

    买方专属广告素材 ID。广告素材 ID 的长度上限为 128 个字节。

    Authorized-Buyers-Click-Through-URLs

    字符串

    广告素材声明的目标网址集合, 至 RFC2396

示例:

HTTP/1.1 200 OK
Date: Mon, 8 Jan 2022 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Mon, 8 Jan 2022 12:01:53 GMT
Content-Length: 88
Content-Type: text/html
Connection: Closed
Authorized-Buyers-Creative-ID:123456
Authorized-Buyers-Click-Through-URLs:https://www.advertiser.com/clickUrl1,https://www.advertiser.com/clickUrl12

<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>
广告素材过期

广告素材的审批期限为 15 天。如果您以“实时”模式提交广告素材, Bidding API,您需要在 15 天后重新提交广告素材。如果您依赖于 自动进行广告素材扫描,则扫描流程会自动重新扫描这些广告素材。

买方报告 ID

您可以使用维度对报告指标(例如展示次数)进行细分 (例如,广告系列 ID 或广告客户 ID)。要将 维度,请为以下各项指定buyerAndSellerReportingId: 当您将用户的设备添加到兴趣群体时,您的广告就会展示。查看其他 Protected Audience 文档

以下示例展示了如何将 buyerAndSellerReportingId 添加到 兴趣群体配置:

const myGroup = {
  ...
  'ads': [
    {
      ...
      'buyerAndSellerReportingId':
        '{"google_signals": {"buyer_reporting_id": "12345"}}',
      ...
    }
  ]
}
joinAdInterestGroup(myGroup);

buyer_reporting_id”将作为新维度显示在“已授权” 买方的查询工具,用作“买方报告 ID”维度

服务器端竞价

出价请求更改量

以下是支持的协议的早期版本, 实验:

指明支持基于兴趣群体的竞价

出价请求有一个新字段 auction_environment

  • Google 实时出价协议:BidRequest.adslot.auction_environment
  • OpenRTB:BidRequest.imp.ext.auction_environment

您可以使用此字段区分 支持 Protected Audience 浏览器内兴趣群体竞价,以及那些 仅支持传统的服务器端广告交易平台竞价。通过 auction_environment 枚举可以具有以下值:

  • SERVER_SIDE_AUCTION(OpenRTB JSON:0):传统服务器端竞价
  • ON_DEVICE_INTEREST_GROUP_AUCTION(OpenRTB JSON:1):请求 Protected Audience 支持,借助该功能, 基于兴趣群体进行出价,然后进行最终竞价 在浏览器中
指明 Protected Audience 广告位尺寸

出价请求中包含以下字段,用于为您提供 受众群体广告位尺寸:

  • Google RTB 协议: <ph type="x-smartling-placeholder">
      </ph>
    • BidRequest.adslot.interest_group_auction.width
    • BidRequest.adslot.interest_group_auction.height
  • OpenRTB: <ph type="x-smartling-placeholder">
      </ph>
    • BidRequest.imp.ext.interest_group_auction.width
    • BidRequest.imp.ext.interest_group_auction.height

这些字段用于指明 Protected Audience 竞价的广告位尺寸 (以像素为单位)。

此尺寸可能不同于内容相关请求的尺寸 (Adslot.widthAdslot.height,或在 OpenRTB 中: BidRequest.imp.banner.format)。

上下文请求可能有多种尺寸。设备端竞价胜出 广告预计只会填充一个固定尺寸的广告位。

指明 Protected Audience 广告可呈现性

Protected Audience 广告不一定会呈现,具体取决于当前的 集成阶段(请参阅非渲染 实验)。render_interest_group_ads 字段会指明,胜出的 Protected Audience 广告 渲染时间

  • Google RTB 协议: BidRequest.adslot.interest_group_auction.render_interest_group_ads
  • OpenRTB: BidRequest.imp.ext.interest_group_auction.render_interest_group_ads
尽量减少对用户标识符的依赖

Protected Audience API 测试范围内的内容相关出价请求可以 继续传送基于 Cookie 的传统标识符(如果可从 浏览器,如 google_user_id(OpenRTB 中的 BidRequest.user.id)和 hosted_match_data(OpenRTB 中的 BidRequest.user.buyerid)字段。存在 出价请求中的此类标识符将继续受到任何现有 隐私权政策。我们建议您不要依赖基于 Cookie 的标识符 定位和出价目的,以便为实现高效 在第三方 Cookie 不再可用时进行购买。

Google 可能还会开展小规模实验,其中基于 Cookie 的标识符 会从 Protected Audience API 测试范围内的出价请求中隐去。这个 评估弃用第三方 Cookie 的潜在影响。

为了做好准备, 弃用第三方 Cookie (3PCD) 于 2024 年推出,Chrome 现在提供 Chrome 协助测试

网站和供应商可使用 Chrome 协助测试来测试其系统, 3PCD。在测试中,Chrome 浏览器会被分配到 3PCD 实验组, 即模式 A 或模式 B。系统会为每个浏览器分配一致的标签 该实验与具体的第三方 Cookie 实验组对应,您可以通过 浏览器内 Chrome API。

Google 会在实时出价中传递 Chrome API 中未经修改的标签 请求。由于单个标签的流量切片很小,因此 Google 在隐私保护受限的上下文中,并非总是包含该标签。

您可以在以下字段中查看标签:

  • Google RTB 协议: BidRequest.device.cookie_deprecation_label
  • OpenRTB: BidRequest.device.ext.cdep

出价响应更改

指明参与基于兴趣群体的竞价

您有责任明确表明自己有意参与 返回 InterestGroupBidding 对象 内容相关出价响应:

  • Google 实时出价协议:BidResponse.interest_group_bidding
  • OpenRTB:BidResponse.ext.igbid

您必须提供内容相关出价响应。该响应并非 添加内容相关出价。InterestGroupBidding 对象应包含 兴趣群体所有者的origin,应与某个源匹配 由出价工具为其账号配置的将origin添加到竞价中 在 Google 发布商代码调用时,配置 interestGroupBuyers runAdAuction()

传播买方情境信号 (perBuyerSignals)

您可以在内容相关出价响应中加入买方的信号, 通过 perBuyerSignals 参数。您可以在出价响应中加入 以下字段(具体取决于协议):

  • Google 实时出价:BidResponse.interest_group_bidding.per_buyer_signals
  • OpenRTB:BidResponse.ext.igbid.igbuyer.buyerdata
传播买方内容相关呈现信号

基于兴趣群体的广告素材在呈现过程中可能会使用有限的情境信号, 通过内容相关出价响应发送这些信号,然后接收这些信号 使用宏扩展在呈现网址请求上附加注释。例如,渲染 信号来自定义广告素材的外观和风格,从而改进 特定广告位或发布商网页的实际效果

您可以将已序列化为网址安全字符串的买方呈现信号添加到 内容相关出价响应,Google 将替换该响应,以赢得竞价 对呈现网址进行分组 ${RENDER_DATA_buyer.origin.example[_OPTIONAL_SUFFIX]}

您可以在出价响应中指定呈现信号,其中包含以下参数: 字段,具体取决于协议:

  • Google 实时出价:BidResponse.interest_group_bidding.interest_group_buyer.rendering_signals
  • OpenRTB:BidResponse.ext.igbid.igbuyer.rsig

最多可以包含 3 组具有不同宏后缀的呈现信号 以区分不同的信号例如,一个后缀 可用于匹配仅适用于广告素材的一组特定信号 与呈现网址中对应的宏相关联,从而减少数据传输 。

该兴趣群体买方将被拒绝参与 Protected 受众群体竞价(如果信号不具有网址安全性、宏后缀不具有唯一性); 提供的信号集超过 3 组。

指定浏览器内出价上限

Protected Audience 提案、出价计算 和最终竞价将在设备端本地进行。这可能会造成 可能会影响最终竞价完整性的潜在滥用途径 例如胜出的出价

作为 Google Protected Audience API 测试期间支持的缓解措施 您可为实时出价合作伙伴指定预期最高出价, 内容相关出价响应。“预期最高出价”是指 您的出价功能预计会返回。如果胜出的出价来自 如果浏览器内竞价超过此金额,则系统不会将胜出的出价统计在内 视为可计费事件具体方法可能会发生变化。

在出价响应中,您可以在 以下字段:

  • Google 实时出价协议: BidResponse.interest_group_bidding.interest_group_buyers.max_bid_cpm_micros (以微 CPM 表示)
  • OpenRTB:BidResponse.igbid.igbuyer.maxbid(以每千次展示费用货币单位表示)
将展示归因于多个账号

出价方必须选择一个结算 ID 才能归因其兴趣 使用以下字段对出价的展示次数进行分组:

  • Google 实时出价协议: BidResponse.interest_group_bidding.interest_group_buyers.billing_id
  • OpenRTB:BidResponse.igbid.igbuyer.billing_id

所选结算 ID 必须是出价请求中符合条件的结算 ID:

  • Google 实时出价协议: BidRequest.adslot.matching_ad_data.billing_id
  • OpenRTB:BidRequest.imp.ext.billing_id

如果将基于兴趣群体出价的展示次数归因于的结算 ID 出价工具将不会参与 Protected Audience 竞价。

子账号最多可以有两个结算 ID。买方可以使用 另一个结算 ID 对应内容相关支出,另一个对应兴趣群体支出。 如果您想配置两个结算 ID,请与您的客户经理联系 。

您可以为每个结算 ID 设置每日预算。请联系您的 客户经理来为子账号的结算 ID 设置每日预算。

有可用预算且符合出价条件的所有子账号的结算 ID 。联系 以修改兴趣群体结算 ID 的预算。

在浏览器内竞价期间

生成浏览器内出价

使用generateBid()生成浏览器内出价。

Google 提供以下参数:

  • auctionSignals:空
  • perBuyerSignals:由 内容相关响应中的出价

系统会返回以下参数:

  • ad:Google 会忽略此字段。
  • bid:参与竞价的数字出价。必须采用每千次展示费用单位 (而不是微单位)。
  • render:在出价胜出时呈现的广告素材网址 竞价。Google 必须审核并批准此网址,否则该网址将被滤除 参与竞价
  • allowComponentAuction:必须为 true。Google 目前支持测试 与多卖方竞价相关

示例如下:

function generateBid(...) {
  ...
  return {'ad': 'example',
          'bid': ad.metadata.bid,
          'render': ad.renderUrl,
          'allowComponentAuction': true};
}

请参阅 Protected Audience 规范在设备上 出价 部分,了解有关 generateBid() 函数的说明。

出价币种

浏览器内竞价出价会以所选出价货币的每千次展示费用为单位放置。

出价币种必须在内容相关出价响应和 generateBid 的返回值,且必须是有效的 ISO 4217 字母代码,例如 “USD”“EUR”或“JPY”。

在 OpenRTB 中,使用curInterestGroupBuyer Google 的出价响应扩展程序。

示例如下:

ext {
  igbid {
    impid: "1"
    igbuyer {
      origin: "https://examplebuyerorigin.com"
      cur: "EUR"
    }
  }
}

在 Google 实时出价协议中,请使用currency InterestGroupBuyer 消息。

示例如下:

interest_group_bidding {
  adslot_id: 1
  interest_group_buyer {
    origin: "https://examplebuyerorigin.com"
    currency: "EUR"
  }
}

出价方的generateBid 函数返回的出价所用的币种必须与 内容相关出价响应中指定的网址。填写新的 bidCurrency 属性 generateBid 的返回值:

function generateBid(...) {
  ...
  return {'ad': ad,
          'bid': bid,
          'bidCurrency': 'EUR',
          ...};
}

如果内容相关出价响应中的币种与币种不同 generateBid 返回的值,或者如果任何一个返回的货币无效,则 出价将在竞价前被滤除。

广告质量检查

对于以下情形,广告素材政策和发布商控件的强制执行可能会更为严格: 针对实时出价的 Protected Audience API 测试期间的浏览器内兴趣群体出价 合作伙伴。

《数字服务法案》支持

根据《数字服务法案》第 26 条的规定,发布商可以要求买方 广告内透明度披露信息。当“要求买方仅通过动态搜索广告展示广告 针对我在欧洲经济区 (EEA) 境内网站或应用的透明度信息”由 基于兴趣群体的买方可以决定 通过在 收到的出价请求: BidRequest.dsa.dsa_supportBidRequest.dsa.publisher_rendering_support 适用于 Google Authorized Buyers 协议和 BidRequest.regs.dsa.requiredBidRequest.dsa.pubrender(适用于 OpenRTB 协议)。

如果出价方希望参与 Protected Audience API 竞价 在出价请求中收到信号,要求必须针对该信号显示 DSA 透明度 通过 Protected Audience API 投放的广告时,他们应评估是否 从而适当地显示所需信息,并通过设置 BidResponse.interest_group_bidding.interest_group_buyers.dsa_buyer_renderBidResponse.ext.igbid.igbuyer.dsaadrender(适用于 OpenRTB 协议)。否则 买方将不会参与 Protected Audience API 竞价。

如需详细了解《数字服务法案》中的广告透明度,请参阅 帮助中心文章:支持《数字服务法案》

出价过滤

Google 强制要求发布商 控件广告 政策 进行预付费

在浏览器中竞价后

向买方报告竞价结果:reportWin()

Google 不会填充以下参数:

  • auctionSignals
  • sellerSignals

使用 reportWin() 向买方报告竞价结果。

请参阅买方报告呈现和广告 事件 部分。

引用 Protected Audience API 广告素材的 renderUrl 可包含 一个或多个占位符(称为宏)基于兴趣群体竞价之后 但在呈现之前,系统会将宏替换为相应的 值。设备端竞价中使用的renderUrl可包含以下内容: 宏:

${GDPR} 如果 GDPR 不适用,则展开为 0;如果 GDPR 适用,则展开为 1。请参阅文档
${GDPR_CONSENT_XXXX} 扩展到透明度 和与请求关联的用户意见征求 (TC) 字符串。如果透明度和 用户意见征求 (TC) 字符串为空或无效,此宏不会展开。

使用此宏可在网址中将 TC 字符串传递给已在 IAB GVL 注册的供应商。 将 XXXX 替换为已向 GVL 注册的 IAB GVL ID 供应商。如果 TC 字符串为空或无效,则此宏不会展开。

包含 ${GDPR_CONSENT_XXXX} 宏的广告素材可能会变为 如果与您所用的 IAB GVL ID 相关联的 IAB GVL 注册供应商 未征得用户同意。

${GDPR_CONSENT_XXXX}宏在 renderUrl
${ADDL_CONSENT} 扩展为 与请求关联的用户意见征求 (AC) 字符串
${AD_WIDTH}, ${AD_HEIGHT) 这些宏会插入广告位的宽度和高度。
${RENDER_DATA_buyer.origin.example[_OPTIONAL_SUFFIX]}

包含呈现时买方信号的宏 。

buyer.origin.example 占位符替换为源站 兴趣群体买方的效果,这应与 interest_group_buyers.origin。您可以 包含一个 _OPTIONAL_SUFFIX,以提供多达三个不同的 呈现信号值。

展示次数统计

在与 RTB 合作伙伴一起进行 Protected Audience API 测试期间,Google 会统计 在浏览器调用 reportResult() 函数时展示 随后通过调用 sendReportTo() 获取 Google 的报告网址。

由于 Google 用于在 Protected Audience 中统计展示次数的事件 浏览器内竞价可能与用于统计的事件不同 展示次数,则展示次数可能会有所不同。

Google 测试 Protected Audience API 的目标之一是, 以减少这些差异。

可结算展示次数的归因

某个出价方在 Protected Audience 浏览器内竞价中支出的所有支出为 根据兴趣对应的映射,归因于单个出价方账号 为出价方配置的群组所有者来源。将支出归因于不同的 出价方的子账号不受支持。

每日预算上限

在 Protected Audience API 测试期间,每个账号都有一个账号级 Protected Audience 支出每日预算上限。每日预算上限可限制 在浏览器内竞价环境中投放达到每日预算上限后 账号不会再收到 Protected Audience 符合条件的出价请求。

完成以下操作后,账号可以继续参与服务器端内容相关竞价: 直至达到 Protected Audience 上限。例如,一个出价工具账号 Protected Audience 上限可能会收到 auction_environment = SERVER_SIDE_AUCTION(OpenRTB:0)的出价请求,即使该出价请求符合 Protected Audience 竞价。

实时反馈和最低出价争取成功

选择接收数据的出价方 实时反馈 会收到有关希望将兴趣群体买方加入 设备端 Protected Audience 竞价。某个出价工具所指定的各个基于兴趣群体的买方 指定的值会收到一个反馈对象, 兴趣群体买方在 Protected Audience 竞价中的多数出价。通过 兴趣群体买家反馈中会提供以下信息 对象:

  • 反馈对象的反馈类型将是 INTEREST_GROUP_BUYER_FEEDBACK
  • 兴趣群体买方的来源。
  • 为赢得 整体竞价情况
  • 为了击败对手,兴趣群体买方需要赢得的最低出价 从整体竞价的服务器端部分选择排名最高的出价。
  • 兴趣群体买方的状态代码。可能的状态代码包括 定义于 interest-group-buyer-status-codes.txt.

请参阅 Authorized Buyers 实时出价OpenRTB 扩展程序 了解特定字段名称。

出价反馈通知

Chrome 提供了临时调试功能, API Protected Audience API,可让 Ad Manager 发送实时 服务器到服务器的调试通知,其中包含有关受保护 受众群体出价。此通知将包括可能导致出价被更改的原因 除了其他 Google 数据之外, 与下述出价相关的信息。

出价方可以与其客户经理联系,以便配置 用于发送 Protected Audience 调试出价反馈通知。这个 系统将从 Google 服务器提取静态网址,并替换掉所选宏 在 Protected Audience 竞价完成后触发。以下宏 支持:

  • %%GOOGLE_QUERY_ID%%:此宏已替换为 Google 查询 ID (Authorized Buyers 协议中的 BidRequest.google_query_id,以及 BidRequest.ext.google_query_id)。 启用了 Protected Audience 的内容相关出价请求。
  • %%INTEREST_GROUP_OWNER%%:兴趣群体所有者的来源。
  • %%BID_CPM%%:买方在 generateBid() 函数。
  • %%RENDER_URL%%:广告素材的呈现网址。
  • %%STATUS%%:出价在 scoreAd() 内遭拒的状态代码。 值为广告素材状态 代码

以下是出价工具可能会向其客户经理提供的静态网址示例:

https://dsp.example/debug?google_query_id=%%GOOGLE_QUERY_ID%%&ig_owner=%%INTEREST_GROUP_OWNER%%&render_url=%%RENDER_URL%%&bid=%%BID_CPM%%&status=%%STATUS%%

出价反馈通知是一项临时功能,需要依赖 Chrome 的 临时 ForDebuggingOnly API。

产品级 TURTLEDOVE

广告由多个部分组成产品级别 TURTLEDOVE 在 Protected Audience API 使用期间,Google RTB 合作伙伴支持 (PLTD) 测试。如果您打算进行测试,请在集成期间告知您的客户经理 PLTD,因为需要额外的资源和配置。

初始配置

您可以通过以下方式测试 Protected Audience API:

步骤

  1. 填写申请表单 加入 Protected Audience API 实验。
  2. 提交申请表单后,请与您的客户经理联系或提交 通过Authorized Buyers 帮助中心 中心
  3. 配置账号后,Google 和合作伙伴都可以验证 完成测试阶段中的步骤进行集成。

广告素材审核

为了对产品级广告(由多个部分构成的广告)出价 使用 Protected Audience API 竞价时,请遵循以下要求:

  • renderUrl 中添加 &pltd=True 查询参数,以便于 组件广告的容器(也称为顶级 renderUrl) 在广告素材审核期间区分顶级 renderUrls
  • 在组件广告的容器内呈现具有代表性的广告素材 以供 Google 进行广告素材审核为了了解 应返回具有代表性的广告呈现效果,则可以参考 由 Google 广告素材审核系统设置的“validation=True”查询参数。

集成核对清单

  • 设置将填充 Protected Audience API 的出价请求端点 内容相关出价响应中的相关字段,例如, interest_group_bidding
  • 在广告客户的页面上植入代码,以便将用户的浏览器加入 兴趣群体。
  • 实现 generateBid()reportWin()
  • 选择兴趣组所有者来源,并将其添加到 Authorized Buyers 。
  • 为与 Protected Audience API 相关的广告资源设置预定位 测试。
  • 通过广告素材 API
  • (可选)设置可信出价信号端点。
  • (可选)设置测试广告客户页面,以便 Google 工程师添加 您的兴趣群体买方所拥有的兴趣群体 来源。这样一来,我们可以手动触发 Protected Audience 竞价。
  • (可选)为您的账号启用实时反馈功能,以便接收以下方面的反馈: 申请将基于兴趣群体的买方纳入 Protected Audience 中 竞价。
  • (可选)如需配置静态网址,请与您的客户经理联系, 收到服务器到服务器的通知,其中包含 Protected Audience 出价 与设备端 Protected Audience 的出价状态有关的反馈 来协助调试意外问题请参阅出价反馈 “通知”了解详情。

测试阶段

第 1 阶段:手动测试

以下是手动触发 Protected Audience 竞价的方法,确保广告 并记录展示次数:

  1. 使用 Chrome 101 或更高版本。
  2. 使用以下命令启用 Privacy Sandbox API 和 Fenced Frame chrome://flags/#privacy-sandbox-ads-apischrome://flags/#enable-fenced-frames。如需了解详情,请参阅测试隐私设置 测试区
  3. 使用实时出价功能提交广告素材以供审批 API
  4. 使用出价方提供的广告客户页面向出价方拥有的广告客户页面添加浏览器 。
  5. 使用 Google 提供的以下测试发布商页面触发 Protected 受众群体竞价:

    https://fledge-testing.uc.r.appspot.com/?nid=allow_all

    浏览器中的兴趣群体出价必须足够高才能赢得竞价,因为它 可能会与传统的服务器端出价展开竞争。Google 还提供了 每个合作伙伴都有专门的测试发布商网页,其中只有指定的合作伙伴 哪些广告资源可以参与竞价可能更容易可靠地制胜 。

  6. 验证以下事项:

    1. 呈现预期的胜出广告。
    2. 竞价结果会在服务器端发送,这意味着出价胜出者 收到 reportWin() 返回的 ping。
    3. 测试发布商网页控制台会为每个出价记录一条调试消息, 以下信息: <ph type="x-smartling-placeholder">
        </ph>
      • renderUrl:出价的呈现网址。
      • interestGroupOwner:出价的兴趣群体所有者。
      • accepted:如果出价被接受,则此字段为 true,且 false 如果出价被 scoreAd() 拒绝,则会发生该笔交易。
      • externalBidStatus:出价遭拒时的状态代码 scoreAd()。值为广告素材状态 代码

第 2 阶段:(可选)非呈现实验

在 Google 与合作伙伴手动验证其可以 参与 Protected Audience 竞价时,Google 会允许合作伙伴 下一阶段的测试。

Google 会分配少量实时流量来运行 Protected Audience 竞价。然后,Google 和该合作伙伴不再需要手动触发 Protected Audience 竞价。Protected Audience 竞价的结果不是 。这使我们能够大规模测试集成。

请与您的客户经理联系或通过 Authorized Buyer 提交工单 帮助中心。 Google 将为此阶段启用账号。

第 3 阶段:呈现实验

Google 与合作伙伴大规模验证 Protected Audience 竞价后 则 Google 可以让合作伙伴呈现受保护的 吸引受众群体的广告。对于受保护的流量,Google 会有少量流量 受众群体竞价符合投放条件,而兴趣群体广告胜出 。参与竞价的出价方的浏览器内出价与传统的 出价。

请与您的客户经理联系或通过 Authorized Buyer 提交工单 帮助中心。 Google 将为此阶段启用账号。

其他功能

以下功能是核心协议的扩展。

并行处理

并行处理是一项优化措施,可缩短端到端竞价延迟时间, 提出内容相关广告请求与向 买方信任的服务器trustedBiddingSignalsUrl 中指定。

并行处理可缩短延迟时间,但会影响兴趣群体 买方资格要求和支持 协同实验。 并行处理适用于所有参与竞价的出价方 设备端兴趣群体竞价出价方无需采取任何措施 参与并行竞价,但应熟悉 并行化可能会对设备端竞价资格产生怎样的影响。 尚不支持将实验组 ID 用于所协调的实验 并行竞价。

服务流摘要

下面简要介绍了并行竞价流程: 流程图

设备端兴趣群体买方资格条件

对于并行竞价,navigator.runAdAuction 的调用发生在之前 内容相关广告响应。为了启动“买方可信”计划 服务器调用,navigator.runAdAuction 要求 interestGroupBuyers 参数必须为 以值的形式传递,而其他竞价参数接受 JavaScript 可在内容相关广告响应后解析的 promise。开始时间 interestGroupBuyers 在内容相关广告响应之前传递, 内容相关广告响应(包括出价响应) 用于选择参与并行竞价的买方 。而是使用 Google 的发布商代码缓存 前一个参数中的 interestGroupBuyers 参数 在同一网域中执行 navigator.runAdAuction 次。

并行处理有几个重要的注意事项:

  1. 买方可信服务器请求不需要的竞价信号; (例如 perBuyerSignals),可继续在实时出价响应中指定 与非并行竞价相同。 针对这些信号的 promise 得到解析后, 设备端竞价的完成方式与非并行 整个竞价流程

  2. 由于并行化依赖于缓存兴趣群体买方的列表, Google 并不总是会进行并行竞价,因为并行处理缓存 可能为空或已过期。如果缓存为空或过期,Google 会运行 标准的非并行 Protected Audience API 竞价,并使用买方意图 参与非并行竞价,以构建兴趣群体买方缓存。

  3. 如果针对任何出价方,系统针对当前发布商缓存了至少一个买方 那么 Google 会并行运行 将在出价请求中指明

    • Google 实时出价协议:BidRequest.adslot.interest_group_auction.parallelized
    • OpenRTB:BidRequest.imp.ext.interest_group_auction.parallelized
  4. 某个出价方的已注册兴趣群体买方来源(即 参与并行竞价的 ParallelAuctionBuyer 个条目:

    • Google 实时出价协议:BidRequest.adslot.interest_group_auction.parallel_auction_buyer
    • OpenRTB:BidRequest.imp.ext.interest_group_auction.pbuyer
  5. 如果进行的是并行竞价,但指定的买方来源 缓存,那么指定买方无法添加到当前设备上的 竞价。这是由包含 parallelized=True 且缺少 指定兴趣群体买方来源的 ParallelAuctionBuyer 条目。 不过,出价方如果通过添加有效且符合条件的 InterestGroupBuyer出价响应 都有对应的兴趣群体买方 这些源已添加到缓存中,并且这些源可以 来自同一浏览器和网域的并行请求。 有参与兴趣群体竞价的意愿 可在以下字段中指明:

    • Google 实时出价协议:BidResponse.adslot.interest_group_bidding.interest_group_buyers
    • OpenRTB:BidResponse.ext.igbid.igbuyer
  6. 缓存的买方来源(包含在并行竞价的 interestGroupBuyers 参数),但出价方未对其表明意向 可能会收到买方可信服务器调用 但不会参与并行竞价