在 Protected Audience 竞价中实现交易(也称为私下交易市场 (PMP))
概览
交易(也称为私下交易市场 [PMP])会为一部分广告资源的买方提供精选访问权限或首选交易。为方便程序化交易,会使用席位 ID 和交易 ID:
- 座位 ID 来自买方,是代表买方客户的标识符。席位 ID 可能会对结算产生影响,例如,某个席位对指定卖家有折扣。
- 交易 ID 来自买方或卖方,是表示买方和卖方之间达成的协议的标识符。交易 ID 可能包含费用/价格、数量承诺、受众群体信息、独家性等属性。
Protected Audience 使用报告 ID 来促进交易,让席位 ID 和交易 ID 可用于竞价、评分和报告。报告 ID 为广告技术公司提供了一种机制,以便在竞价后的 Protected Audience 报告中接收这些交易 ID 和席位 ID,从而完成交易并组织结算工作。我们预计,买方、卖方、代理机构和广告客户可能会采用量身定制的策略来解读和理解他们收到的交易 ID 和座位 ID。
演示
在 Protected Audience 竞价中推动交易的步骤如下:
- 买方在竞价开始前在兴趣群体配置中注册交易和席位 ID
- 交易 ID 和席位 ID 可在可选择的报告 ID 字段 (
selectableBuyerAndSellerReportingIds
) 中设置。 - 如果所有交易的座位 ID 都相同,则可以在
buyerAndSellerReportingId
中设置该座位 ID,并在可选的报告 ID 字段 (selectableBuyerAndSellerReportingIds
) 中设置交易 ID。
- 交易 ID 和席位 ID 可在可选择的报告 ID 字段 (
- 在出价生成期间,交易 ID 和席位 ID 可用。买方从
selectableBuyerAndSellerReportingIds
中选择一个交易 ID。买方通过返回selectedBuyerAndSellerReportingId
来生成一个出价,其中包含与该出价相关联的交易 ID。只有当返回的交易 ID 与其他报告 ID 一起进行 k-匿名化处理,并选择兴趣群体的媒体资源时,出价才会在竞价中胜出。 - 进行广告评分时,卖方将能够使用所选的交易 ID 和席位 ID。
- 交易 ID 和席位 ID 可在卖方的报表功能中使用。
- 交易 ID 和席位 ID 可在买方的报告功能中使用。
1. 注册交易 ID 和席位 ID
买方在竞价开始前在兴趣群体配置中注册交易和席位 ID。交易 ID 和席位 ID 在 selectableBuyerAndSellerReportingIds
中设置为字符串数组。如果所有交易的座位 ID 都相同,并且无需重复,则可以将座位 ID 添加到接受字符串的 buyerAndSellerReportingId
字段中:
const interestGroupConfig = {
owner: 'https://buyer.example',
name: 'example-ig',
ad: [
{
renderURL: 'https://buyer.example/ad.html',
selectableBuyerAndSellerReportingIds: ['deal123', 'deal456', 'deal789'], // Deal IDs
buyerAndSellerReportingId: 'seat123', // Seat ID
// Though it is not used to facilitate deals, the buyer
// reporting ID can be defined with other reporting IDs
buyerAndReportingId: 'brid123'
},
],
};
navigator.joinAdInterestGroup(interestGroupConfig);
如果交易的席位 ID 不同,可以使用以下设置:
const interestGroupConfig = {
owner: 'https://buyer.example',
name: 'example-ig',
ad: [
{
renderURL: 'https://buyer.example/ad.html',
selectableBuyerAndSellerReportingIds: [
'deal123seat123',
'deal456seat456',
'deal789seat456'
], // Deal and Seat IDs
},
],
};
navigator.joinAdInterestGroup(interestGroupConfig);
2. 出价生成期间买方的交易 ID 和席位 ID
在生成出价期间,买方决定是否要针对某个交易 ID 出价。在 generateBid()
中,买方可以从 selectableBuyerAndSellerReportingIds
中选择一个交易 ID,并将值作为 selectedBuyerAndSellerReportingId
返回。如果所选交易 ID 不在 selectableBuyerAndSellerReportingIds
数组中,出价会被拒绝。
function generateBid(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'seat123'
selectableBuyerAndSellerReportingIds // ['deal123', 'deal456', 'deal789']
buyerAndReportingId // 'brid123' - Not used for deals, but the value is available
} = browserSignals;
// ...
return {
bid: 1,
render: 'https://buyer.example/ad.html',
selectedBuyerAndSellerReportingId: 'deal456', // Buyer selects a deal ID
};
}
只有当 selectedbuyerAndSellerReportingId
的值与 buyerAndSellerReportingId
(如果有)、buyerReportingId
(如果有)、兴趣群体所有者、出价脚本网址、呈现网址和广告尺寸(至少在 2025 年第 1 季度之前,广告尺寸将从此检查中排除)一起具有 k-匿名性时,返回 selectedbuyerAndSellerReportingId
值的出价才有可能赢得竞价。
即使在兴趣群体配置中指定了 selectablebuyerAndSellerReportingIds
,generateBid()
返回不包含 selectedbuyerAndSellerReportingId
的出价也仍然有效;在这种情况下,如果出价胜出,向报告函数提供的报告 ID 将遵循不可选择的报告 ID 行为。
如果重新运行 generateBid()
是因为初始调用没有为通过 k-匿名性检查的广告生成任何出价,那么在重新运行时,未通过 k-匿名性检查的 selectableBuyerAndSellerReportingIds
将不会显示在兴趣群体中。
3. 广告评分期间卖方的交易 ID 和席位 ID
允许“scoreAd()
”访问所选交易 ID 以及席位 ID(如果存在)。卖方在考虑交易 ID 和任何特殊字词的情况下,提供胜出出价的受欢迎程度得分。如果卖方认为买方选择的交易 ID 不适用,则会将该出价的偏好度得分设为 0 或负分,从而拒绝该出价。
function scoreAd(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'seat123'
selectedBuyerAndSellerReportingIds, // 'deal456'
} = browserSignals;
// ...
}
4. 卖方报告的交易 ID 和席位 ID
回想一下,只有当 selectedBuyerAndSellerReportingId
、buyerAndSellerReportingId
(如果存在)和 buyerReportingId
(如果存在)与兴趣群体所有者、出价脚本网址、呈现网址和广告尺寸(至少在 2025 年第 1 季度之前,广告尺寸除外)均具有 k-匿名性时,出价才有可能赢得竞价。因此,包含 selectedBuyerAndSellerReportingId
的报告 ID 值将始终在 reportResult()
内提供。请注意,虽然系统已检查 buyerReportingId
的 k-匿名性,但该值仅适用于买方报告函数,而不适用于此处的卖方报告函数。
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'seat123'
selectedBuyerAndSellerReportingIds // 'deal456'
} = browserSignals;
// ...
}
5. 买方报告的交易 ID 和席位 ID
卖方报告中的概念同样也适用于买方报告。回想一下,只有当 selectedBuyerAndSellerReportingId
、buyerAndSellerReportingId
(如果存在)和 buyerReportingId
(如果存在)与兴趣群体所有者、出价脚本网址、呈现网址和广告尺寸(至少在 2025 年第 1 季度之前,广告尺寸除外)均具有 k-匿名性时,出价才有可能赢得竞价。因此,包含 selectedBuyerAndSellerReportingId
的报告 ID 值始终可在 reportWin()
内使用。
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'seat123'
selectedBuyerAndSellerReportingId // 'deal456'
buyerAndReportingId // 'brid123' - Not used for deals, but the value is available
} = browserSignals;
}
互动和分享反馈
- 如需详细了解报告 ID,请参阅 Protected Audience 说明文字的“报告 ID”部分。
- GitHub:在 API 代码库中提出问题并关注问题讨论。
- W3C:在 WICG 通话中讨论行业用例。
- 通告:加入或查看邮寄名单。
- Privacy Sandbox 开发者支持:您可以在 Privacy Sandbox 开发者支持仓库中提问和参与讨论。
- Chromium:提交 Chromium 错误,提出有关可在 Chrome 中测试的实现方面的问题。