Protected Audience API(以前称为 FLEDGE)

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

Chrome 正在针对 Protected Audience API 运行源试用。Authorized Buyers 用户有资格参与针对 Ad Manager 发布商广告资源的 Protected Audience API 测试。出价方可以通过测试 Protected Audience API 来实现以下目标:

  • 迭代并了解 Protected Audience API 流程的效果。
  • 在公共论坛(例如 GitHub)中生成有关潜在 API 改进的反馈。
  • 准备好通过该 API 支持个性化广告,而无需依赖第三方 Cookie。

对测试感兴趣的 Authorized Buyers 买方应查看“新手入门”部分了解详情。

投放流程摘要

下面总结了适用于 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 只会纳入之前在竞价配置中以 interestGroupBuyers 的形式返回 interest_group_bidding 的买方。
  11. Google 将每个符合条件的出价方的 per_buyer_signals 传递给 Protected Audience 竞价配置。
  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 都必须映射到一个广告素材。
  • 在广告最后一次出价后的 7 天内,renderUrl 必须可供 Google 的离线广告素材审核系统访问和提取。
Real-time Bidding API

出价方可以使用 Real-time Bidding 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 天。如果您通过 Real-time Bidding API 提交广告素材,则需要在 15 天后重新提交广告素材。如果您依赖于自动广告素材扫描,扫描过程会自动重新扫描这些广告素材。

买方报告 ID

您可以使用买方提供的维度(例如广告系列 ID 或广告客户 ID)对报告指标(例如展示次数)进行细分。若要添加针对兴趣群体支出的维度,请在将用户的设备添加到兴趣群体时为广告指定 buyerAndSellerReportingId。如需了解更多详情,请参阅 Protected Audience 文档

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

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

在 Authorized Buyers 的报告中,buyer_reporting_id 会显示为一个新维度,即“买方报告 ID”维度

服务器端竞价

出价请求更改

以下是实验中使用的受支持协议的早期版本:

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

出价请求有一个新字段:auction_environment

  • Google RTB 协议: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 广告位尺寸

出价请求包括以下字段,以便为您提供 Protected Audience 广告位尺寸:

  • Google RTB 协议:
    • BidRequest.adslot.interest_group_auction.width
    • BidRequest.adslot.interest_group_auction.height
  • OpenRTB:
    • 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 可能还会进行小规模实验,在 Protected Audience API 测试范围内从出价请求中隐去基于 Cookie 的标识符。这是为了评估弃用第三方 Cookie 的潜在影响。

为了应对 2024 年的第三方 Cookie 弃用 (3PCD),Chrome 现在提供 Chrome 协助测试

网站和供应商可以使用 Chrome 协助测试在 3PCD 下测试他们的系统。在该测试中,Chrome 浏览器会被分配到 3PCD 实验组,即模式 A 或模式 B。每个浏览器都分配有与特定 3PCD 实验组对应的一致标签,您可以通过浏览器中的 Chrome API 访问该标签。

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

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

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

出价响应变更

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

您有责任通过在内容相关出价响应中返回 InterestGroupBidding 对象,明确表明自己有意参与浏览器内竞价的意图:

  • Google RTB 协议:BidResponse.interest_group_bidding
  • OpenRTB:BidResponse.ext.igbid

您必须提供内容相关出价响应。此响应无需包含内容相关出价。InterestGroupBidding 对象应包含兴趣群体所有者的 origin,它应与出价工具为其帐号配置的源站之一匹配。当 Google 发布商代码调用 runAdAuction() 时,系统会将 origin 添加到竞价配置的 interestGroupBuyers 中。

传播买方情境信号 (perBuyerSignals)

您可以在内容相关出价响应中添加买方的信号,Google 会通过 perBuyerSignals 参数以 JSON 对象的形式将其传递到设备端出价函数。这可以通过以下字段包含在出价响应中,具体取决于协议:

  • Google 实时出价:BidResponse.interest_group_bidding.per_buyer_signals
  • OpenRTB:BidResponse.ext.igbid.igbuyer.buyerdata
指定浏览器内出价的最高出价

Protected Audience 提案中,出价计算和最终竞价应在设备本地运行。这可能会创建潜在的滥用向量,从而影响最终竞价结果的完整性,例如胜出出价。

在 Google 为其 RTB 合作伙伴提供的 Protected Audience API 测试期间,作为一种支持的缓解措施,您可以在每个内容相关出价响应中指定预期的最高出价。预期最高出价是指出价函数预期返回的最高出价。如果浏览器内竞价中报告的胜出出价超过此金额,则系统不会将胜出出价计为可计费事件。此方法可能会发生变化。

在出价响应中,您可以在以下字段中指定预期的最高出价值:

  • Google RTB 协议: BidResponse.interest_group_bidding.interest_group_buyers.max_bid_cpm_micros (以 microCPM 表示)
  • OpenRTB:BidResponse.igbid.igbuyer.maxbid(以 CPM 货币单位表示)
将展示归因于多个帐号

出价方必须选择一个结算 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 都会显示在出价请求中,以便进行支出归因选择。如需修改兴趣群体结算 ID 的预算,请与您的客户经理联系。

在浏览器内竞价期间

生成浏览器内出价

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

Google 提供了以下参数:

  • auctionSignals:空
  • perBuyerSignals:内容相关响应中出价方提供的相同信号的 JavaScript 对象

返回以下参数:

  • ad:Google 会忽略此字段。
  • bid:参与竞价的出价金额。必须采用 CPM 单位(而非微单位)。
  • render:在出价赢得竞价时用于展示此广告素材而呈现的网址。该网址必须经过 Google 审核并批准,否则将被滤除而无法参与竞价。
  • allowComponentAuction:必须为 true。Google 目前支持测试多卖方竞价。

示例如下:

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

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

出价币种

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

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

在 OpenRTB 中,使用 Google 出价响应扩展程序的 InterestGroupBuyer 对象内新增的 cur 字段。

示例如下:

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

在 Google 实时出价协议中,请在出价响应的 InterestGroupBuyer 消息中使用新的 currency 字段。

示例如下:

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

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

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

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

广告质量检查

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

《数字服务法案》支持

根据《数字服务法案》第 26 条,发布商可能会要求买方提供广告内透明度披露信息。当发布商启用“要求买方仅在欧洲经济区 (EEA) 内我的网站或应用上展示包含 DSA 透明度信息的广告”控件后,兴趣群体买方可以确定需要针对哪些机会向买方提供透明度,只需记下收到的出价请求中的以下字段:BidRequest.dsa.dsa_supportBidRequest.dsa.publisher_rendering_support(适用于 Google Authorized Buyers 协议)和 BidRequest.regs.dsa.requiredBidRequest.dsa.pubrender(适用于 OpenRTB 协议)即可。

当希望参与 Protected Audience API 竞价的出价方在出价请求中收到以下信号:必须针对通过 Protected Audience API 投放的广告显示 DSA 透明度时,他们应评估自己是否可以正确显示所需信息,并通过针对 Google Authorized Buyers 协议设置 BidResponse.interest_group_bidding.interest_group_buyers.dsa_buyer_render 或针对 OpenRTB 协议设置 BidResponse.ext.igbid.igbuyer.dsaadrender 来指定相应信息。否则,买方将不会参与 Protected Audience API 竞价。

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

出价过滤

在设备端竞价期间,Google 会强制执行发布商控件广告政策

浏览器内竞价后

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

Google 不会填充以下参数:

  • auctionSignals
  • sellerSignals

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

如需了解详情,请参阅 Protected Audience API 说明文档中的买方报告呈现事件和广告事件部分。

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

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

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

如果与您插入的 IAB GVL ID 相关联的已注册 IAB GVL 的供应商未征得用户同意,包含 ${GDPR_CONSENT_XXXX} 宏的广告素材可能会被屏蔽。

${GDPR_CONSENT_XXXX} 宏在 renderUrl 中应只出现一次。
${ADDL_CONSENT} 会展开为与请求关联的更多意见征求方式 (AC) 字符串
${AD_WIDTH}, ${AD_HEIGHT) 这些宏会插入广告位的宽度和高度。

展示次数统计

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

由于 Google 在 Protected Audience 浏览器内竞价中用于统计展示次数的事件与其 RTB 买方合作伙伴用于统计展示次数的事件不同,因此展示次数可能会有所不同。

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 RTBOpenRTB 扩展的协议文档。

出价反馈通知

Chrome 为 Protected Audience API 提供了临时调试 API,通过该 API,Ad Manager 可以发送包含 Protected Audience 出价反馈的实时服务器到服务器调试通知。此通知将包含出价在 Protected Audience 浏览器内竞价中被滤除的原因,以及下面所述的出价的其他信息。

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

  • %%GOOGLE_QUERY_ID%%:此宏会替换为在启用了 Protected Audience 的内容相关出价请求中发送的 Google 查询 ID(在 Authorized Buyers 协议中为 BidRequest.google_query_id,在 OpenRTB 协议中为 BidRequest.ext.google_query_id)。
  • %%INTEREST_GROUP_OWNER%%:兴趣群体所有者的来源。
  • %%BID_CPM%%:买方在 generateBid() 函数中指定的出价(采用 CPM 形式)。
  • %%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。

点击事件

出价方可以使用 Fenced Frame Reporting API 向 Google 报告 Protected Audience 广告的点击事件。出价方应使用 click 事件类型将点击次数告知 Google。示例如下:

window.fence.reportEvent({
    'eventType': 'click',
    // Google does not require bidders to send data to Google in 'eventData'.
    // However, 'eventData' must be a non-null value, such as an empty string.
    'eventData': '',
    'destinations': ['direct-seller']
});

产品级 TURTLEDOVE

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

新手入门

测试 Protected Audience API 的方法如下:

步骤

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

广告素材审核

如需在 Protected Audience API 竞价中使用产品级广告(由多个部分组成的广告)进行出价,请满足以下要求:

  • 在组件广告容器(也称为顶级 renderUrl)的 renderUrl 中添加 &pltd=True 查询参数,以便在广告素材审核期间区分顶级 renderUrls
  • 在 Google 提取组件广告的容器进行广告素材审核时,呈现具有代表性的广告素材。如需了解何时应返回具有代表性的广告呈现,您可以参考 Google 广告素材审核系统设置的 validation=True 查询参数。

集成核对清单

  • 设置一个出价请求端点,用于填充内容相关出价响应中的 Protected Audience API 相关字段,例如 interest_group_bidding
  • 在广告客户的页面上植入代码,将用户的浏览器加入兴趣群体。
  • 实现 generateBid()reportWin()
  • 选择兴趣群体所有者的源,并将其添加到 Authorized Buyers 帐号。
    • 兴趣群体所有者的源站应与托管 generateBid() 函数的源站一致。
    • 请与客户经理联系,或通过 Authorized Buyers 帮助中心提交工单,以完成此步骤。
  • 为与 Protected Audience API 测试相关的广告资源设置预定位。
  • 通过 Creatives API 提交广告素材以供审核和批准。
  • (可选)设置可信出价信号端点。
  • (可选)设置一个测试广告客户页面,以便 Google 工程师将其浏览器添加到兴趣群体买方的来源所拥有的兴趣群体中。这样,我们就可以手动触发 Protected Audience 竞价。
  • (可选)为您的帐号启用实时反馈,以接收针对请求参与 Protected Audience 竞价的兴趣群体买方的反馈。
  • (可选)与您的客户经理联系,以配置静态网址以接收服务器到服务器通知,以便针对设备端 Protected Audience 竞价的出价状态提供 Protected Audience 出价反馈,以帮助调试意外问题。如需了解详情,请参阅出价反馈通知

测试阶段

第 1 阶段:手动测试

下面说明了如何手动触发 Protected Audience 竞价、确保广告可以呈现并记录展示次数:

  1. 请使用 Chrome 101 或更高版本。
  2. 使用 chrome://flags/#privacy-sandbox-ads-apischrome://flags/#enable-fenced-frames 启用 Privacy Sandbox API 和围栏框架。如需了解详情,请参阅测试 Privacy Sandbox
  3. 使用 Real-time Bidding API 提交广告素材以供审批。
  4. 使用出价方提供的广告客户页面将浏览器添加到出价方拥有的兴趣组。
  5. 使用 Google 提供的以下测试发布商页面来触发 Protected Audience 竞价:

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

    浏览器内兴趣群体的出价必须足够高才能赢得竞价,因为它可能会与传统的服务器端出价展开竞争。Google 还会为每个合作伙伴提供一个专门的测试发布商页面,其中只有指定的合作伙伴可以参与竞价。在合作伙伴专属页面上可靠地赢得浏览器内竞价可能更加轻松。

  6. 请验证以下内容:

    1. 呈现预计胜出的广告。
    2. 竞价结果发送到服务器端,这意味着胜出的出价方会收到来自 reportWin() 的 ping。
    3. 测试发布商页面控制台会针对每个出价记录一条调试消息,其中包含以下信息:
      • renderUrl:出价的呈现网址。
      • interestGroupOwner:出价的兴趣群体所有者。
      • accepted:如果出价被接受,此字段为 true;如果出价被 scoreAd() 拒绝,此字段为 false
      • externalBidStatus:如果出价在 scoreAd() 内遭拒,则为状态代码。值为广告素材状态代码

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

Google 和合作伙伴手动验证合作伙伴可以参与 Protected Audience 竞价后,就会为合作伙伴启用下一阶段的测试。

Google 会分配少量实时流量来运行 Protected Audience 竞价。然后,Google 和合作伙伴不再需要手动触发 Protected Audience 竞价。系统不会呈现 Protected Audience 竞价的结果。这样,我们就可以大规模测试集成情况。

准备就绪后,请与您的客户经理联系,或通过 Authorized Buyers 帮助中心提交工单。 Google 将在此阶段启用该帐号。

第 3 阶段:渲染实验

Google 和该合作伙伴在不呈现的情况下大规模验证 Protected Audience 竞价后,Google 便可以让合作伙伴呈现在 Protected Audience 胜出的广告中。Google 有少量流量,其中存在 Protected Audience 竞价,并且系统会呈现胜出的兴趣群体广告。参与出价的出价方的浏览器内出价会与传统出价展开竞争。

准备就绪后,请与您的客户经理联系,或通过 Authorized Buyers 帮助中心提交工单。 Google 将在此阶段启用该帐号。