作为 Privacy Sandbox 的一部分,Chrome 提出了 Protected Audience API - 一种浏览器内 API 可让广告主和广告技术公司展示针对用户兴趣群体的广告 不依赖第三方 Cookie,同时保护用户免受跨网站攻击 跟踪。
Chrome 正在运行源 试用 。Authorized Buyers 有资格参与 如何在 Ad Manager 发布商广告资源上测试 Protected Audience API。 通过测试 Protected Audience API,出价方可以实现以下目标:
- 迭代并了解 Protected Audience API 流程的效果。
- 在公共论坛(例如 GitHub)中就可能的 API 改进提供反馈。
- 准备好通过 API 支持个性化广告,而无需依赖第三方 Cookie。
如有兴趣参与测试,请查看授权买方 部分了解详情。
广告投放流程摘要
下面简要介绍了 Authorized Buyers 的 Protected Audience 广告投放流程 合作伙伴:
- 出价方会与其广告客户合作,为每个广告客户维护兴趣群体。通常,广告客户会将出价方的代码添加到广告客户的网页中,以将浏览器添加到兴趣群体。
- 最终用户访问广告客户的网页。该网页可能包含出价方的代码。
- 出价方的代码会调用 Protected Audience API
joinAdInterestGroup()
。此调用请求浏览器将用户添加到兴趣群体。 - 最终用户访问发布商网页。用户的浏览器请求 Google 的发布商广告代码。
- Google 的发布商广告代码会向 Google 服务器发送内容相关广告请求。
- Google 向参与竞价的出价方发送内容相关出价请求。如需了解详情,请参阅“出价请求变更”部分。
- 出价方会返回包含
InterestGroupBidding
的出价响应 消息内容,这是参与兴趣群体竞价所必需的。在 OpenRTB 是通过BidResponse.ext.igbid
字段指定的,而 弃用的 Google RTB 协议。BidResponse.interest_group_bidding
字段。如果出价方未指定此信息,Google 不会在竞价配置的interestGroupBuyers
中添加出价方的来源。InterestGroupBidding
还可以包含可选的买方专用信号,这些信号将在浏览器内竞价期间传递给出价方的出价函数。在 OpenRTB 中,这通过BidResponse.ext.igbid.igbuyer.buyerdata
字段,而已弃用 此协议是通过BidResponse.interest_group_bidding.interest_group_buyers.per_buyer_signals
字段。如需了解详情,请参阅“出价响应变更”部分。 - Google 会运行服务器端竞价,并将出价响应返回给 。服务器端竞价会考虑传统的服务器端出价。出价响应可以包含内容相关胜出出价的相关信息(如果 任何)。
- 出价响应包含浏览器内竞价的竞价配置。这可能包括来自每个参与竞价的买方的情境信号
(通过 OpenRTB 的
buyerdata
或已弃用的 Google RTB 发送 协议的per_buyer_signals
)、内容相关的胜出者信息,以及 出价资格方面的设置 - Google 的发布商代码会调用 Protected Audience API
runAdAuction()
以启动设备端兴趣群体竞价。Google 仅会包含在竞价配置期间作为InterestGroupBuyer
添加到InterestGroupBidding
中的买方。 - Google 会将每个符合条件的出价方的可选买方专用信号传递给 Protected Audience 竞价配置。
- 如果指定出价方的兴趣群体指定了
trustedBiddingSignalsUrl
时,浏览器会向每个群组的trustedBiddingSignalsUrl
,用于提取每个组的实时信号。如需了解详情,请参阅 Protected Audience API 规范。 - 浏览器针对每个兴趣群体调用出价方的
generateBid()
已选择参与竞价且有资格参与浏览器内竞价的广告客户。此步骤会计算出价并选择广告素材。generateBid()
有权访问 出价方提供的可选买方信号和可信出价 特定兴趣群体的信号。 - 浏览器会调用卖方(在本例中为 Google)的
scoreAd()
来 为基于兴趣群体的广告竞价中的每个出价指定一个排名。系统会根据发布商保护措施、广告政策和其他限制条件对出价进行排名和过滤。 - 浏览器针对符合条件的兴趣群体出价开展竞价。通过 排名最高的内容相关出价参与浏览器内竞价。
- 竞价结束后,如果有兴趣群体胜出,浏览器调用
卖方的
reportResult()
和出价方的reportWin()
来分别 就浏览器内竞价的胜出者进行探讨。 - 如果兴趣群体广告胜出,Google 的发布商代码会在 iframe 中呈现该广告。
投放流程详情
广告投放之前
广告素材审核
广告素材必须先经过 Google 审核并获得批准,然后才能通过 Protected Audience 浏览器内竞价投放。您可以通过 Real-time Bidding API 或自动广告素材扫描功能提交广告素材以供审核。广告素材
Protected Audience 浏览器内基于兴趣群体的广告竞价必须包含
renderUrls
以供审核。
renderUrls
的要求:
- 通过 API 提交的
renderUrl
应与使用的renderUrl
一致 参与基于兴趣群体的广告竞价 - 每个
renderUrl
只能代表一个广告客户或广告系列。给定renderUrl
不能用于代表多个广告客户呈现广告。每个renderUrl
都必须映射到一个广告素材。 - 在广告上次出价后的最多 7 天内,Google 的线下广告素材审核系统需要能够访问和提取
renderUrl
。
Real-time Bidding API
出价方可以使用实时出价 API上传广告素材 基于兴趣群体的出价。
自动扫描广告素材
出价方可以为未通过实时出价 API 上传的广告素材设置自动广告素材扫描。
如果您设置了自动广告素材扫描功能,Google 就会在以下位置查找广告素材: 并自动扫描它们,以便有资格 今后的竞价中
启用自动广告素材扫描功能的方法如下:
将所有兴趣群体广告素材的
renderUrl
来源添加到授权买方账号。将以下自定义 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 天。如果您使用实时出价 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 维度。
服务器端竞价
出价请求更改量
以下是支持的协议的早期版本, 实验:
指明支持兴趣群体竞价
出价请求中新增了字段,用于指明是否支持兴趣群体竞价:
- OpenRTB:
BidRequest.imp.ext.ae
BidRequest.imp.ext.igbid
- Google RTB 协议(已废弃):
BidRequest.adslot.supported_auction_environment
BidRequest.adslot.interest_group_bidding_allowed
您可以使用此字段来区分支持 Protected Audience 浏览器内兴趣群体竞价的展示机会,以及仅支持传统服务器端广告交易平台竞价的展示机会。通过
AuctionEnvironment
枚举可以具有以下值:
SERVER_SIDE_AUCTION
(OpenRTB JSON:0
):在广告交易平台的服务器上运行的竞价,用于确定胜出的广告。ON_DEVICE_INTEREST_GROUP_AUCTION
(OpenRTB JSON:1
):请求 Protected Audience 支持,借助该功能, 以及基于兴趣群体的出价和最终竞价 。SERVER_SIDE_INTEREST_GROUP_AUCTION
(OpenRTB JSON:3
):内容相关 竞价是在广告交易平台的服务器上运行,而针对用户兴趣的出价逻辑 对出价和评分逻辑进行判断,以确定最终胜出的广告 在出价和竞价服务器中运行。
指明 Protected Audience 广告位尺寸
出价请求包含以下字段,以便为您提供 Protected Audience 广告位尺寸:
- OpenRTB:
BidRequest.imp.ext.interest_group_auction
.width
BidRequest.imp.ext.interest_group_auction
.height
- Google RTB 协议(已废弃):
BidRequest.adslot.interest_group_auction.width
BidRequest.adslot.interest_group_auction.height
这些字段表示 Protected Audience 竞价的广告位大小(以像素为单位)。
此大小可能与上下文请求中的大小不同,例如看到
在 OpenRTB 的BidRequest.imp.banner.format.w
中
BidRequest.imp.banner.format.h
字段或已弃用的 Google RTB 协议的
BidRequest.adslot.width
和 BidRequest.adslot.height
字段。
上下文请求可能有多种尺寸。设备端竞价胜出 广告预计只会填充一个固定尺寸的广告位。
指明 Protected Audience 广告可呈现性
Protected Audience 广告不一定会呈现,具体取决于当前的
集成阶段(请参阅非渲染
实验)。render_interest_group_ads
字段会指明,胜出的 Protected Audience 广告
渲染时间
- OpenRTB:
BidRequest.imp.ext.interest_group_auction.render_interest_group_ads
- Google RTB 协议(已废弃):
BidRequest.adslot.interest_group_auction.render_interest_group_ads
尽可能减少对用户标识符的依赖
在 Protected Audience API 测试范围内,如果浏览器提供传统的基于 Cookie 的标识符(例如 BidRequest.user.id
和 BidRequest.user.buyerid
字段,或已废弃的 Google RTB 协议中的 BidRequest.google_user_id
和 BidRequest.hosted_match_data
),则内容相关出价请求可以继续携带这些标识符。出价中是否存在此类标识符
受现有隐私权政策约束。我们建议您
不依赖于基于 Cookie 的标识符进行定位和出价
测试,以便在第三方 Cookie 不可用的情况下,为高效购买做好更充分的准备
。
Google 可能还会开展小规模实验,在 Protected Audience API 测试范围内从出价请求中隐去基于 Cookie 的标识符。这是为了评估弃用第三方 Cookie 的潜在影响。
Chrome 协助进行的第三方 Cookie 弃用测试
为了做好准备, 弃用第三方 Cookie (3PCD) 于 2024 年推出,Chrome 现在提供 Chrome 协助测试。
网站和供应商可使用 Chrome 协助测试来测试其系统, 3PCD。在测试中,Chrome 浏览器会被分配到 3PCD 实验组(模式 A 或模式 B)。系统会为每个浏览器分配一致的标签 该实验与具体的第三方 Cookie 实验组对应,您可以通过 浏览器内 Chrome API。
Google 会在实时出价中传递 Chrome API 中未经修改的标签 请求。由于单个标签的流量切片很小,因此 Google 在隐私保护受限的上下文中,并非总是包含该标签。
您可以在以下字段中查看标签:
- OpenRTB:
BidRequest.device.ext.cdep
- Google RTB 协议(已弃用):
BidRequest.device.cookie_deprecation_label
出价响应更改
指明参与基于兴趣群体的竞价
您有责任明确表明自己有意参与
返回 InterestGroupBidding
对象
内容相关出价响应:
- OpenRTB:
BidResponse.ext.igbid
- Google RTB 协议(已废弃):
BidResponse.interest_group_bidding
您必须提供内容相关出价响应。该响应并非
添加内容相关出价。InterestGroupBidding
对象应包含每个 InterestGroupBuyer
的 origin
,该值应与出价方为其账号配置的一个来源一致。将origin
添加到竞价中
interestGroupBuyers
当 Google 发布商代码调用
runAdAuction()
。
传播买方情境信号
您可以在内容相关出价响应中添加买方的信号,Google 会将这些信号作为 JSON 对象通过 perBuyerSignals
参数传播到其设备端出价函数。您可以在出价响应中加入
以下字段(具体取决于协议):
- OpenRTB:
BidResponse.ext.igbid.igbuyer.buyerdata
- Google RTB(已废弃):
BidResponse.interest_group_bidding.per_buyer_signals
传播买方情境呈现信号
基于兴趣群体的广告素材在呈现过程中可能会使用有限的情境信号, 通过内容相关出价响应发送这些信号,然后接收这些信号 使用宏扩展在呈现网址请求上附加注释。例如,渲染 信号来自定义广告素材的外观和风格,从而改进 特定广告位或发布商网页的实际效果
您可以将已序列化为网址安全字符串的买方呈现信号添加到
内容相关出价响应,Google 将替换该响应,以赢得竞价
对呈现网址进行分组
${RENDER_DATA_buyer.origin.example[_OPTIONAL_SUFFIX]}
宏。
您可以在出价响应中使用以下字段指定呈现信号,具体取决于协议:
- OpenRTB:
BidResponse.ext.igbid.igbuyer.rsig
- Google 实时出价(已弃用):
BidResponse.interest_group_bidding.interest_group_buyer.rendering_signals
出价响应中最多可以包含 3 组具有不同宏后缀的呈现信号,以区分不同的信号。例如,一个后缀 可用于匹配仅适用于广告素材的一组特定信号 与呈现网址中对应的宏相关联,从而减少数据传输 。
该兴趣群体买方将被拒绝参与 Protected 受众群体竞价(如果信号不具有网址安全性、宏后缀不具有唯一性); 提供的信号集超过 3 组。
指定浏览器内出价上限
在 Protected Audience 提案、出价计算 和最终竞价将在设备端本地进行。这可能会造成 可能会影响最终竞价完整性的潜在滥用途径 例如胜出的出价
作为 Google Protected Audience API 测试期间支持的缓解措施 您可为实时出价合作伙伴指定预期最高出价, 内容相关出价响应。预期最高出价是您的出价函数预计返回的最高出价。如果浏览器内竞价中报告的胜出出价超过此金额,则系统不会将胜出出价计为可结算事件。此方法可能会发生变化。
在出价响应中,您可以在以下字段中指定预期的最高出价值:
- OpenRTB:
BidResponse.igbid.igbuyer.maxbid
(以 CPM 币种单位表示) - Google 实时出价协议(已弃用):
BidResponse.interest_group_bidding.interest_group_buyers.max_bid_cpm_micros
(以微 CPM 表示)
将展示次数归因于多个账号
出价方必须选择一个结算 ID 才能归因其兴趣 使用以下字段对出价的展示次数进行分组:
- OpenRTB:
BidResponse.igbid.igbuyer.billing_id
- Google RTB 协议(已废弃):
BidResponse.interest_group_bidding.interest_group_buyers.billing_id
所选的结算 ID 必须是出价请求中的符合条件的结算 ID:
- OpenRTB:
BidRequest.imp.ext.billing_id
- Google RTB 协议(已废弃):
BidRequest.adslot.matching_ad_data.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 中,使用cur
InterestGroupBuyer
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
返回的值,或者如果任何一个返回的货币无效,则
出价将在竞价前被滤除。
广告质量检查
在为 RTB 合作伙伴进行 Protected Audience API 测试期间,对于浏览器内基于兴趣群体的出价,广告素材政策和发布商控件的强制执行力度可能会更严格。
《数字服务法案》支持
根据《数字服务法案》第 26 条,发布商可能会要求买方在广告中显示透明度披露声明。当“要求买方仅通过动态搜索广告展示广告
针对我在欧洲经济区 (EEA) 境内网站或应用的透明度信息”由
基于兴趣群体的买方可以决定
使买方清楚透明地了解
出价中的BidRequest.regs.dsa.required
和BidRequest.dsa.pubrender
请求(BidRequest.dsa.dsa_support
和
BidRequest.dsa.publisher_rendering_support
Google RTB 协议)。
如果希望参与 Protected Audience API 竞价的出价方在出价请求中收到的信号要求他们必须为通过 Protected Audience API 投放的广告展示 DSA 透明度信息,则应评估自己能否正确展示这些必要的信息,并通过设置 BidResponse.ext.igbid.igbuyer.dsaadrender
(在已废弃的 Google RTB 协议中为 BidResponse.interest_group_bidding.interest_group_buyers.dsa_buyer_render
)进行指定。否则,该买方将不会包含在 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 的供应商。
将 如果与您插入的 IAB GVL ID 关联的 IAB GVL 注册供应商未征得用户同意,含有 ${GDPR_CONSENT_XXXX} 宏应在 renderUrl 中仅出现一次。
|
${ADDL_CONSENT}
|
会展开为与请求关联的更多意见征求方式 (AC) 字符串。 |
${AD_WIDTH}, ${AD_HEIGHT)
|
这些宏会插入广告位宽度和高度。 |
${RENDER_DATA_buyer.origin.example[_OPTIONAL_SUFFIX]}
|
包含出价响应中指定的渲染时买方信号的宏。
将 |
展示次数统计
在与 RTB 合作伙伴进行 Protected Audience API 测试期间,当浏览器调用其 reportResult()
函数并随后在调用 sendReportTo()
时提取 Google 的报告网址时,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 JSON:0
)的出价请求
Protected Audience 竞价。
实时反馈和最低出价争取成功
选择接收数据的出价方 实时反馈 会收到有关希望将兴趣群体买方加入 设备端 Protected Audience 竞价。某个出价工具所指定的各个基于兴趣群体的买方 指定的值会收到一个反馈对象, 兴趣群体买方在 Protected Audience 竞价中的多数出价。通过 兴趣群体买家反馈中会提供以下信息 对象:
- 反馈对象的反馈类型将为
INTEREST_GROUP_BUYER_FEEDBACK
。 - 兴趣群体买方的来源。
- 兴趣群体买方为赢得整个竞价而需给出的最低出价。
- 为了击败对手,兴趣群体买方需要赢得的最低出价 从整体竞价的服务器端部分选择排名最高的出价。
- 兴趣群体买方的状态代码。可能的状态代码包括 定义于 interest-group-buyer-status-codes.txt.
请参阅 Authorized Buyers 实时出价 和 OpenRTB 扩展程序 了解特定字段名称。
出价反馈通知
Chrome 为 Protected Audience API 提供了临时调试 API,让 Ad Manager 能够发送实时服务器到服务器调试通知,其中包含有关 Protected Audience 出价的反馈。此通知将说明出价在 Protected Audience 浏览器内竞价中可能被滤除的原因,以及下文中介绍的有关出价的其他信息。
出价方可以与其客户经理联系,以便配置 用于发送 Protected Audience 调试出价反馈通知。这个 系统将从 Google 服务器提取静态网址,并替换掉所选宏 在 Protected Audience 竞价完成后触发。以下宏 支持:
%%GOOGLE_QUERY_ID%%
:此宏已替换为 Google 查询 ID 。在 与此协议一起指定的 OpenRTB 协议BidRequest.ext.google_query_id
,而已弃用的 Google RTB 协议使用BidRequest.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。
产品级 TURTLEDOVE
广告由多个部分组成 或产品级别 TURTLEDOVE 在 Protected Audience API 使用期间,Google RTB 合作伙伴支持 (PLTD) 测试。如果您计划测试 PLTD,请在集成期间告知您的客户经理,因为需要额外的资源和配置。
初始配置
您可以通过以下方法测试 Protected Audience API:
步骤
- 填写申请表单 加入 Protected Audience API 实验。
- 提交申请表单后,请与您的客户经理联系,或使用授权买方帮助中心提交工单。
- 配置账号后,Google 和合作伙伴都可以验证 完成测试阶段中的步骤进行集成。
广告素材审核
为了对产品级广告(由多个部分构成的广告)出价 使用 Protected Audience API 竞价时,请遵循以下要求:
- 在组件广告容器的
renderUrl
(也称为顶级renderUrl
)中添加&pltd=True
查询参数,以便在广告素材审核期间区分顶级renderUrls
。 - 在 Google 提取组件广告的容器以进行广告素材审核时,渲染代表性广告素材。为了了解
应返回具有代表性的广告呈现效果,则可以参考
由 Google 广告素材审核系统设置的“
validation=True
”查询参数。
集成核对清单
- 设置将填充 Protected Audience API 的出价请求端点
内容相关出价响应中的相关字段,例如,
interest_group_bidding
。 - 在广告客户的页面上植入代码,以便将用户的浏览器加入 兴趣群体。
- 实现
generateBid()
和reportWin()
。 - 选择兴趣组所有者来源,并将其添加到 Authorized Buyers
。
- 兴趣群体所有者来源应与托管
generateBid()
函数的来源一致。 - 请与客户经理联系或使用已授权的 买方帮助中心 完成此步骤。
- 兴趣群体所有者来源应与托管
- 为与 Protected Audience API 相关的广告资源设置预定位 测试。
- 通过 Creatives API 提交广告素材以供审核和审批。
- (可选)设置可信出价信号端点。
- (可选)设置测试广告客户页面,以便 Google 工程师将其浏览器添加到您的兴趣群体买方的来源所拥有的兴趣群体中。这样一来,我们可以手动触发 Protected Audience 竞价。
- (可选)为您的账号启用实时反馈功能,以便接收以下方面的反馈: 申请将基于兴趣群体的买方纳入 Protected Audience 中 竞价。
- (可选)如需配置静态网址,请与您的客户经理联系, 收到服务器到服务器的通知,其中包含 Protected Audience 出价 与设备端 Protected Audience 的出价状态有关的反馈 来协助调试意外问题请参阅出价反馈 “通知”了解详情。
测试阶段
第 1 阶段:手动测试
以下是手动触发 Protected Audience 竞价的方法,确保广告 并记录展示次数:
- 使用 Chrome 101 或更高版本。
- 使用
chrome://flags/#privacy-sandbox-ads-apis
和chrome://flags/#enable-fenced-frames
启用 Privacy Sandbox API 和 Fenced Frame。如需了解详情,请参阅测试 Privacy Sandbox。 - 使用实时出价功能提交广告素材以供审批 API。
- 使用出价方提供的广告客户页面,将浏览器添加到出价方拥有的兴趣群组。
使用 Google 提供的以下测试发布商页面触发 Protected Audience 竞价:
https://fledge-testing.uc.r.appspot.com/?nid=allow_all
浏览器中的兴趣群体出价必须足够高才能赢得竞价,因为它 可能会与传统的服务器端出价展开竞争。Google 还会为每个合作伙伴提供专用测试发布商页面,只有指定合作伙伴才能参与竞价。可能更容易可靠地制胜 。
验证以下事项:
- 系统会呈现预期的胜出广告。
- 竞价结果会发送到服务器端,这意味着胜出的出价方会收到
reportWin()
的回 ping。 - 测试发布商页面控制台会针对每次出价记录一条调试消息,其中包含以下信息:
renderUrl
:出价的呈现网址。interestGroupOwner
:出价的兴趣群体所有者。accepted
:如果出价被接受,则此字段为true
,且false
如果出价被scoreAd()
拒绝,则会发生该笔交易。externalBidStatus
:出价遭拒时的状态代码scoreAd()
。值为广告素材状态代码。
第 2 阶段:(可选)非渲染实验
在 Google 和合作伙伴手动验证合作伙伴可以参与 Protected Audience 竞价后,Google 会为合作伙伴启用下一阶段的测试。
Google 会分配少量实时流量来运行 Protected Audience 竞价。这样一来,Google 和合作伙伴便无需再手动触发 Protected Audience 竞价。Protected Audience 竞价的结果未呈现。这使我们能够大规模测试集成。
准备就绪后,请与您的客户经理联系,或通过授权买方帮助中心提交工单。 Google 会为此阶段启用该账号。
第 3 阶段:呈现实验
在 Google 和合作伙伴验证了未呈现 Protected Audience 竞价的大规模竞价后,Google 可以让合作伙伴呈现 Protected Audience 胜出的广告。Google 有少量流量符合 Protected Audience 竞价的条件,并且会呈现胜出的兴趣群体广告。参与竞价的出价方的浏览器内出价与传统的 出价。
请与您的客户经理联系或通过 Authorized Buyer 提交工单 帮助中心。 Google 会为此阶段启用该账号。
其他功能
以下功能是核心协议的扩展。
并行化
并行处理是一项优化措施,可缩短端到端竞价延迟时间,
提出内容相关广告请求与向
买方信任的服务器
在 trustedBiddingSignalsUrl
中指定。
并行处理可缩短延迟时间,但会影响兴趣群体买方资格条件以及对协调实验的支持。并行处理适用于参与设备端兴趣群体竞价的所有出价方。出价方无需采取任何措施 参与并行竞价,但应熟悉 并行化可能会对设备端竞价资格产生怎样的影响。 尚不支持将实验组 ID 用于所协调的实验 并行竞价。
广告投放流程摘要
下面简要介绍了并行竞价流程:
设备端兴趣群体买方资格条件
对于并行竞价,navigator.runAdAuction
的调用会在返回内容相关广告响应之前发生。为了发起买方受信任的服务器调用,navigator.runAdAuction
要求必须将 interestGroupBuyers
参数作为值传递,而其余竞价参数接受可在内容相关广告响应后解析的 Javascript Promise。开始时间
interestGroupBuyers
在内容相关广告响应之前传递,
内容相关广告响应(包括出价响应)
用于选择参与并行竞价的买方
。相反,Google 的发布商代码会在用户的浏览器中缓存来自同一网域上之前 navigator.runAdAuction
执行的 interestGroupBuyers
参数。
并行处理有以下几点重要注意事项:
买方信任的服务器请求不需要的竞价信号(例如
perBuyerSignals
)可以继续在实时出价响应中指定,方法与非并行竞价相同。解析这些信号的 Promise 后,设备端竞价的其余步骤将以与非并行竞价流程相同的方式完成。由于并行化依赖于缓存兴趣群体买方的列表, Google 并不总是会进行并行竞价,因为并行处理缓存 可能为空或已过期。如果缓存为空或已过期,Google 会运行标准的非并行 Protected Audience API 竞价,并使用买方意向参与非并行竞价以构建兴趣群体买方缓存。
如果针对任何出价方,系统针对当前发布商缓存了至少一个买方 那么 Google 会并行运行 出价,将在出价请求中指明
- Google RTB 协议:
BidRequest.adslot.interest_group_auction.parallelized
- OpenRTB:
BidRequest.imp.ext.interest_group_auction.parallelized
- Google RTB 协议:
某个出价方的已注册兴趣群体买方来源(即 参与并行竞价的
ParallelAuctionBuyer
个条目:- Google 实时出价协议:
BidRequest.adslot.interest_group_auction.parallel_auction_buyer
- OpenRTB:
BidRequest.imp.ext.interest_group_auction.pbuyer
- Google 实时出价协议:
如果进行的是并行竞价,但指定的买方来源 缓存,那么指定买方就无法添加到当前设备上的 竞价。这由包含
parallelized=True
且缺少给定兴趣群体买方来源的ParallelAuctionBuyer
条目的请求表示。不过,如果出价方通过添加有效和符合条件的InterestGroupBuyer
出价响应 都有对应的兴趣群体买方 这些源已添加到缓存中,并且这些源可以 来自同一浏览器和网域的并行请求。 有参与兴趣群体竞价的意愿 可在以下字段中指明:- Google RTB 协议:
BidResponse.adslot.interest_group_bidding.interest_group_buyers
- OpenRTB:
BidResponse.ext.igbid.igbuyer
- Google RTB 协议:
缓存的买方来源(包含在并行竞价的
interestGroupBuyers
参数),但出价方未对其表明意向 可能会收到买方可信服务器调用 但不会参与并行竞价