在 Protected Audience 競價中導入交易 (也稱為私人市集 (PMP))
總覽
交易 (也稱為私人市集 (PMP)) 可為買方提供精選廣告空間存取權或優先定價。系統會使用席位 ID 和交易 ID 來協助進行程式輔助交易:
- 席位 ID 來自買方,用來代表買方客戶的 ID。席位 ID 可能影響帳單費用,例如當座位給特定賣家提供折扣時。
- 交易 ID 來自買方或賣方,是代表買方和賣方協議的 ID。交易 ID 可包含多種屬性,例如費用/價格、大量使用合約、目標對象資訊、專屬性等。
Protected Audience 會使用報表 ID 來協助處理交易,這項 ID 可讓席位和交易 ID 可用於競價出價、評分和報表。廣告技術公司可以利用報表 ID 機制,在競價後的 Protected Audience 報表內接收這些交易和席位 ID,以便交易交易及整理帳單工作。我們預期買方、賣方、代理商和廣告客戶都能專屬策略解讀及瞭解他們收到的交易和席位 ID。
逐步操作說明
在 Protected Audience 競價中促成交易的步驟如下:
- 買方在競價執行前,在興趣群組設定中登錄交易和席位 ID
- 您可以在可選取的報表 ID 欄位 (
selectableBuyerAndSellerReportingIds
) 中設定交易和席位 ID。 - 如果所有交易的席位 ID 都相同,您可以在
buyerAndSellerReportingId
中設定這個席位 ID,並在可選取的報表 ID 欄位 (selectableBuyerAndSellerReportingIds
) 中設定交易 ID。
- 您可以在可選取的報表 ID 欄位 (
- 產生出價時,交易和席位 ID 可供使用。買方從
selectableBuyerAndSellerReportingIds
中選取交易 ID。買方透過傳回selectedBuyerAndSellerReportingId
的方式產生出價,其中包含與該出價相關的交易 ID。只有在傳回的交易 ID 與其他報表 ID 相同,並選取興趣群組資源時,出價才能贏得競價。 - 在廣告評分期間,賣方將可使用所選交易和席位 ID。
- 交易和席位 ID 會顯示在賣方的報表功能中。
- 交易和席位 ID 會顯示在買方的報表功能中。
1. 交易和席位 ID 註冊
在競價執行前,買方會在興趣群組設定中登錄交易和席位 ID。交易和席位 ID 會在 selectableBuyerAndSellerReportingIds
中設定為字串陣列。如果所有交易的席位 ID 都相同,且不需要重複,您可以在 buyerAndSellerReportingId
欄位 (接受字串) 中加入席位 ID:
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 出價。在 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
值的出價只有在 selectedbuyerAndSellerReportingId
的值同時是 k 匿名、buyerAndSellerReportingId
(如果有的話)、buyerReportingId
(如果有的話) 興趣群組擁有者、出價指令碼網址、顯示網址和廣告大小 (至少在 2025 年第 1 季之前才會從這項檢查中排除)。
即使興趣群組設定中已定義 selectablebuyerAndSellerReportingIds
,generateBid()
還是會傳回不含 selectedbuyerAndSellerReportingId
的出價。在這種情況下,如果這次出價勝出,提供給報表函式的報表 ID 會遵循無法選取的報表 ID 行為。
如果 generateBid()
因初始叫用並未產生任何通過 k-anonymity 檢查的廣告出價而重新執行,那麼未通過 k-anonymity 檢查的 selectableBuyerAndSellerReportingIds
就不會出現在重新執行的興趣群組中。
3. 廣告評分期間的賣方交易和席位 ID
scoreAd()
將可存取所選交易 ID,以及席位 ID (如有)。賣方會考量交易 ID 和任何特殊字詞,提供贏得出價的期望分數。如果賣方認為買方選擇的交易 ID 不適用,就會給予零分或負分,拒絕該出價。
function scoreAd(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'seat123'
selectedBuyerAndSellerReportingIds, // 'deal456'
} = browserSignals;
// ...
}
4. 賣方報表中的交易和席位 ID
提醒您,出價只有在 selectedBuyerAndSellerReportingId
、buyerAndSellerReportingId
(如果有的話) 和 buyerReportingId
(如果有的話) 與興趣群組擁有者、出價指令碼網址、顯示網址和廣告大小 (至少在 2025 年第 1 季之前都會從這項檢查中排除) 的情況下,才會在競價中勝出。因此,包含 selectedBuyerAndSellerReportingId
的報表 ID 值一律可在 reportResult()
中使用。請注意,即使 buyerReportingId
會檢查 k-anonymity,該值仍僅供買方報表函式使用,賣方報表函式不支援。
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'seat123'
selectedBuyerAndSellerReportingIds // 'deal456'
} = browserSignals;
// ...
}
5. 買方報表中的交易和席位 ID
賣方報表的概念也適用於買方報表。提醒您,出價只有在 selectedBuyerAndSellerReportingId
、buyerAndSellerReportingId
(如果有的話) 和 buyerReportingId
(如果有的話) 與興趣群組擁有者、出價指令碼網址、顯示網址和廣告大小 (至少在 2025 年第 1 季之前都會從這項檢查中排除) 的情況下,才會在競價中勝出。因此,包含 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 中進行的實作測試。