Chrome 提議採用 Privacy Sandbox 的 Protected Audience API,這項瀏覽器內建 API 可讓廣告主和廣告技術公司放送以興趣群組為目標的廣告,不必依賴第三方 Cookie,同時保護使用者免受跨網站追蹤。
Chrome 正在進行 Protected Audience API 的來源試用。授權買方符合資格,可參與 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欄位指定;在已淘汰的 Google RTB 通訊協定中,這是以BidResponse.interest_group_bidding.interest_group_buyers.per_buyer_signals欄位指定。詳情請參閱「出價回應異動」一節。 - Google 會執行伺服器端競價,並將出價回應傳回瀏覽器。伺服器端競價會考量傳統伺服器端出價。出價回應可包含情境贏得的出價相關資訊 (如有)。
- 出價回應包含瀏覽器內競價的競價設定。這可能包括來自每個參與買方的脈絡信號 (先前透過 OpenRTB 的
buyerdata或已淘汰的 Google RTB 協定的per_buyer_signals傳送)、脈絡勝出者資訊,以及出價資格設定。 - Google 發布商代碼會叫用 Protected Audience API,
runAdAuction()啟動裝置端興趣群組競價。Google 只會納入在競價設定中InterestGroupBuyerInterestGroupBidding列為買家的帳戶。 - 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來源新增至 Authorized Buyer 帳戶。在廣告素材的 HTTP 回應中加入下列自訂 HTTP 標頭:
Authorized-Buyers-Creative-IDstring
買方專屬的廣告素材 ID。廣告素材 ID 長度上限為 128 個位元組。
Authorized-Buyers-Click-Through-URLsstring
廣告素材的一組已宣告到達網頁網址,並根據 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);
buyer_reporting_id 會以新維度形式顯示在「授權買方報表工具」中,即「買方報表 ID 維度」。
伺服器端競價
出價要求變更
以下是實驗中可用的支援通訊協定早期版本:
指出是否支援興趣群組競價
出價要求新增了欄位,可指出是否支援興趣群組競價:
- OpenRTB:
BidRequest.imp.ext.aeBidRequest.imp.ext.igbid
- Google RTB 通訊協定 (已淘汰):
BidRequest.adslot.supported_auction_environmentBidRequest.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.widthBidRequest.imp.ext.interest_group_auction.height
- Google RTB 通訊協定 (已淘汰):
BidRequest.adslot.interest_group_auction.widthBidRequest.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
盡量減少對使用者 ID 的依賴
在 Protected Audience API 測試範圍內,情境出價要求仍可繼續攜帶傳統的 Cookie 型 ID (如果瀏覽器提供),例如 BidRequest.user.id 和 BidRequest.user.buyerid 欄位,或已淘汰的 Google RTB 通訊協定中的 BidRequest.google_user_id 和 BidRequest.hosted_match_data。出價要求中是否包含這類 ID,取決於現行的隱私權政策。建議您在測試期間,不要依賴 Cookie 型 ID 進行指定目標和出價,以便在第三方 Cookie 停用後,做好準備有效購買廣告。
Google 也可能會進行小規模實驗,在 Protected Audience API 測試範圍內,從出價要求中遮蓋以 Cookie 為基礎的 ID。這是為了評估淘汰第三方 Cookie 可能造成的影響。
Chrome 協助執行的第三方 Cookie 淘汰測試
為因應 2024 年的第三方 Cookie 淘汰作業 (3PCD),Chrome 現在提供Chrome 輔助測試。
網站和供應商可使用 Chrome 輔助測試,在第三方 Cookie 淘汰後測試系統。在測試中,Chrome 瀏覽器會指派給 3PCD 實驗群組,也就是模式 A 或模式 B。每個瀏覽器都會獲得對應特定 3PCD 實驗群組的專屬標籤,您可透過瀏覽器內的 Chrome API 存取。
Google 會在 RTB 出價要求中,傳遞來自 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,且應與出價者為帳戶設定的其中一個來源相符。當 Google 發布商廣告代碼呼叫 runAdAuction() 時,系統會將 origin 新增至競價設定的 interestGroupBuyers。
傳播買方比對內容信號
您可以在內容比對出價回應中加入買方信號,Google 會透過 perBuyerSignals 引數,將信號以 JSON 物件的形式傳播至買方的裝置端出價函式。視通訊協定而定,這項資訊可透過下列欄位納入出價回應:
- 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 RTB (已淘汰):
BidResponse.interest_group_bidding.interest_group_buyer.rendering_signals
出價回應最多可包含 3 組具有不同巨集後置字串的算繪信號,以區分不同信號。舉例來說,後置字串可用於比對一組特定信號,這組信號只適用於顯示網址中含有對應巨集的廣告素材,因此可減少資料傳輸大小。
如果信號不符合網址安全規定、巨集後置字串不重複,或提供的信號超過 3 組,系統就會拒絕興趣群組買方參與受保護的目標對象競價。
指定瀏覽器內出價上限
在 Protected Audience 提案中,出價計算和最終競價預計會在裝置端本機執行。這可能會產生潛在的濫用向量,影響最終競價結果的完整性,例如得標出價。
在 Google 為即時出價合作夥伴進行的 Protected Audience API 測試期間,您可以指定每個內容出價回應中的預期最高出價值,做為支援的緩解措施。預期最高出價是出價函式預期傳回的最高出價價格。如果瀏覽器內競價回報的勝出出價超過這個金額,勝出出價就不會計為可計費事件。這項做法可能會隨時變更。
在出價回應中,您可以在下列欄位中指定預期的最高出價值:
- OpenRTB:
BidResponse.igbid.igbuyer.maxbid(以千次曝光出價貨幣單位表示) - Google RTB 通訊協定 (已淘汰):
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:與出價者在脈絡回應中提供的信號相同的 JavaScript 物件
系統會傳回下列參數:
ad:Google 會忽略這個欄位。bid:進入競價的數值出價。必須以每千次曝光出價為單位 (而非微元)。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 字母代碼,例如「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 傳回的幣別不同,或兩者皆傳回無效幣別,出價就會在競價前遭到篩除。
廣告品質檢查
在為 RTB 合作夥伴進行 Protected Audience API 測試期間,系統可能會對瀏覽器內興趣群組出價,採取更嚴格的廣告素材政策和發布商控制項強制執行措施。
《數位服務法》支援
根據《數位服務法》第 26 條,發布商可能會要求買方在廣告中顯示資訊公開聲明。如果發布商啟用「要求買方在歐洲經濟區的網站或應用程式上,只顯示包含《數位服務法》資訊公開資訊的廣告」,興趣群組買方可透過出價要求中的 BidRequest.regs.dsa.required 和 BidRequest.dsa.pubrender 值 (在已淘汰的 Google 即時出價通訊協定中分別為 BidRequest.dsa.dsa_support 和 BidRequest.dsa.publisher_rendering_support),判斷哪些商機需要顯示買方資訊公開資訊。
如果出價者想參與 Protected Audience API 競價,並在出價要求中收到信號,指出透過 Protected Audience API 放送的廣告必須顯示《數位服務法》資訊公開資訊,則應評估能否正確顯示必要資訊,並透過設定 BidResponse.ext.igbid.igbuyer.dsaadrender
(BidResponse.interest_group_bidding.interest_group_buyers.dsa_buyer_render,在已淘汰的 Google RTB 協定中指定。否則買方不會納入 Protected Audience API 競價。
如要進一步瞭解《數位服務法》廣告資訊公開規定,請參閱說明中心文章:支援《數位服務法》。
出價篩選
Google 會在裝置端競價期間,強制執行發布商控制選項和廣告政策。
瀏覽器內競價後
向買方回報競價結果:reportWin()
Google 不會填入下列引數:
auctionSignalssellerSignals
使用 reportWin() 向買方回報競價結果。
詳情請參閱 Protected Audience API 說明中的「買家回報算繪和廣告事件」一節。
巨集
參照 Protected Audience API 廣告素材的 renderUrl 可以包含一或多個預留位置 (稱為巨集)。興趣群組競價結束後,系統會在算繪前將巨集替換為對應值。裝置端競價中使用的 renderUrl 可包含下列巨集:
${GDPR}
|
如果 GDPR 不適用,則會展開為 0;如果適用,則會展開為 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 上限後,即使出價要求符合 Protected Audience 競價資格,仍可能收到含有 auction_environment
= SERVER_SIDE_AUCTION (OpenRTB JSON:0) 的出價要求。
即時意見回饋和要贏得競價的最低出價
選擇接收即時意見回饋的出價者,將收到要求納入裝置端 Protected Audience 競價的興趣群組買方意見回饋。無論興趣群組買方在 Protected Audience 競價中出價幾次,出價者在出價回應中指定的每個興趣群組買方都會收到一個意見回饋物件。興趣群組買方意見回饋物件會提供下列資訊:
- 意見回饋物件的意見回饋類型為
INTEREST_GROUP_BUYER_FEEDBACK。 - 興趣群組買家的來源。
- 興趣群組買方為贏得整體競價而必須提出的最低出價。
- 興趣群組買方要贏得競價,必須提出的最低出價,才能擊敗整體競價伺服器端元件中排名最高的出價。
- 興趣群組買家的狀態碼。可能的狀態碼定義於 interest-group-buyer-status-codes.txt。
如需特定欄位名稱,請參閱 Authorized Buyers RTB 和 OpenRTB 擴充功能的通訊協定說明文件。
出價意見回饋通知
Chrome 為 Protected Audience API 提供暫時的偵錯 API,可讓 Ad Manager 傳送即時的伺服器對伺服器偵錯通知,其中包含 Protected Audience 出價的回饋。除了下方所述的出價相關資訊外,這則通知也會說明出價可能在 Protected Audience 瀏覽器內競價中遭到篩除的原因。
出價者可以聯絡帳戶管理員,設定靜態網址,用來傳送 Protected Audience 偵錯出價意見回饋通知。系統會在 Protected Audience 競價完成後,從 Google 伺服器擷取這個靜態網址,並替換所選巨集。支援的巨集如下:
%%GOOGLE_QUERY_ID%%:這個巨集會替換為在啟用 Protected Audience 的內容出價要求中傳送的 Google 查詢 ID。在 OpenRTB 通訊協定中,這項資訊是以BidRequest.ext.google_query_id指定,而已淘汰的 Google RTB 通訊協定則使用BidRequest.google_query_id。%%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 的暫時性 ForDebuggingOnlyAPI。
產品層級 TURTLEDOVE
由多個部分組成的廣告或產品層級 TURTLEDOVE (PLTD) 在測試 Protected Audience API 時,適用於 Google RTB 合作夥伴。整合期間,如果你打算測試 PLTD,請告知帳戶管理員,因為這需要額外資源和設定。
新手上路
測試 Protected Audience API 的方法如下:
步驟
- 填寫要求表單,加入 Protected Audience API 實驗。
- 提交要求表單後,請與帳戶管理員聯絡,或使用 Authorized Buyer 說明中心提出支援單。
- 帳戶設定完成後,Google 和合作夥伴都可以透過「測試階段」中的步驟驗證整合。
廣告素材審查
如要在 Protected Audience API 競價中,使用產品層級廣告 (由多個部分組成的廣告) 出價,請遵守下列規定:
- 在元件廣告的容器 (也稱為頂層
renderUrl) 中加入&pltd=True查詢參數,以便在審查廣告素材時區分頂層renderUrls。renderUrl - 當 Google 擷取元件廣告的容器以進行廣告素材審查時,請算繪代表性廣告素材。如要瞭解何時應傳回代表性廣告的算繪結果,請參閱 Google 廣告素材審查系統設定的
validation=True查詢參數。
整合作業檢查清單
- 設定出價要求端點,在內容相關出價回應中填入 Protected Audience API 相關欄位,例如
interest_group_bidding。 - 在廣告主的網頁上導入代碼,將使用者的瀏覽器加入興趣群組。
- 實作
generateBid()和reportWin()。 - 選取興趣群組擁有者來源,並新增至 Authorized Buyer 帳戶。
- 興趣群組擁有者來源應與
generateBid()函式的代管來源相符。 - 請與帳戶管理員聯絡,或使用 Authorized Buyer 說明中心提出支援單,完成這個步驟。
- 興趣群組擁有者來源應與
- 為與 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;如果出價遭scoreAd()拒絕,則為false。externalBidStatus:如果出價在scoreAd()內遭到拒絕,則為狀態碼。值為廣告素材狀態代碼。
第 2 階段:(選用) 非顯示實驗
Google 和合作夥伴手動驗證合作夥伴可參與 Protected Audience 競價後,Google 會為合作夥伴啟用下一階段的測試。
Google 會分配少量即時流量,執行 Protected Audience 競價。這樣一來,Google 和合作夥伴就不必再手動觸發 Protected Audience 競價。系統不會顯示 Protected Audience 競價結果。這有助於我們大規模測試整合。
準備就緒後,請與您的帳戶管理員聯絡,或透過 Authorized Buyers 說明中心提出要求。Google 會為這個階段啟用帳戶。
第 3 階段:轉譯實驗
Google 和合作夥伴大規模驗證 Protected Audience 競價 (不顯示廣告) 後,Google 即可允許合作夥伴顯示 Protected Audience 競價勝出的廣告。Google 流量中,只有一小部分符合 Protected Audience 競價資格,且會放送得標的興趣群組廣告。參與出價者的瀏覽器內出價會與傳統出價競爭。
準備就緒後,請與您的帳戶管理員聯絡,或透過 Authorized Buyers 說明中心提出要求。Google 會為這個階段啟用帳戶。
其他特色
下列功能是核心通訊協定的擴充功能。
平行處理
平行化是一種最佳化做法,可同時發出內容相關廣告請求和對 trustedBiddingSignalsUrl 中指定的買家信任伺服器發出的請求,藉此縮短端對端競價延遲時間。
平行化可縮短延遲時間,但會影響興趣群組買方資格,以及協調式實驗的支援。平行化適用於所有參與裝置端興趣群組競價的出價方。出價者不必採取任何行動即可參與並行競價,但應熟悉並行化對裝置端競價資格的影響。平行競價目前不支援協調式實驗的實驗組 ID。
放送流程摘要
以下是並行競價流程的摘要:
裝置端興趣群組買家資格
如果是平行競價,navigator.runAdAuction 的呼叫會在傳回情境廣告回應前發生。如要發起買方信任的伺服器呼叫,navigator.runAdAuction 必須將 interestGroupBuyers 參數做為值傳遞,其餘競價參數則接受 Javascript Promise,這些 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 RTB 通訊協定:
BidRequest.adslot.interest_group_auction.parallel_auction_buyer - OpenRTB:
BidRequest.imp.ext.interest_group_auction.pbuyer
- Google RTB 通訊協定:
如果執行平行競價,但快取中沒有特定買方來源,則無法將該買方加入目前的裝置端競價。如果要求中的
parallelized=True缺少特定興趣群組買方來源的ParallelAuctionBuyer項目,即表示發生這種情況。不過,出價者在出價回應中加入有效且符合資格的InterestGroupBuyer(s) 表明意願後,系統就會將相應的興趣群組買家來源新增至快取,且這些來源日後可透過相同瀏覽器和網域,平行處理要求。您可以在下列欄位中表明有意參與興趣群組競價:- Google RTB 通訊協定:
BidResponse.adslot.interest_group_bidding.interest_group_buyers - OpenRTB:
BidResponse.ext.igbid.igbuyer
- Google RTB 通訊協定:
如果出價者未在出價回應中表明參與意願,系統可能會針對快取買方來源 (包含在平行競價的
interestGroupBuyers參數中) 呼叫買方信任的伺服器,但不會參與平行競價。