在競價中出價以購買廣告版位

如果您是廣告買方 (DSP 和廣告主),可能會有興趣參與發布商網站上的 Protected Audience 廣告競價,以便將廣告指定至您在廣告客戶網站中定義的興趣群組。參加 Protected Audience 競價,就能以保護隱私權的方式在其他網站上觸及目標顧客。

在 Protected Audience 競價中,您必須提供出價產生邏輯,瀏覽器則使用該邏輯計算出價。這與其他競價架構相比,不需提供邏輯即可直接提交出價。

您可在 generateBid() JavaScript 函式中提供出價產生邏輯,而檔案則存放在您的伺服器中。將使用者加入興趣群組時,這個檔案的位置會以 biddingLogicUrl 的形式傳入興趣群組設定。

在競價期間,瀏覽器會擷取 biddingLogicUrl 欄位中指定的出價邏輯,並在安全隔離的環境中為每個興趣群組執行 generateBid() 函式,該環境因此與外部環境的通訊有限。執行 generateBid() 時,瀏覽器會將信號傳入函式做為引數。這些信號包含不同來源的各種資訊,例如發布商的第一方資料、賣方資料、即時資料等。您可以使用這些信號計算出價,系統會從 generateBid() 呼叫傳回值。出價提交後,瀏覽器會針對每筆出價執行賣方的評分邏輯,以計算賣方的理想分數。

generateBid()

以下說明 generateBid() 函式的引數,以及函式傳回的出價結構:


generateBid(interestGroup, auctionSignals, perBuyerSignals,
    trustedBiddingSignals, browserSignals, directFromSellerSignals) {
  return {
    ad: adObject,
    adCost: optionalAdCost,
    bid: bidValue,
    bidCurrency: 'USD',
    render: {
      url: renderURL,
      width: renderWidth,
      height: renderHeight
    },
    adComponents: [
      {url: adComponent1, width: componentWidth1, height: componentHeight1},
      {url: adComponent2, width: componentWidth2, height: componentHeight2},
      // ...
    ],
    allowComponentAuction: false,
    modelingSignals: 123 // 0-4095 integer (12-bits)
  };
}

引數

generateBid() 採用下列引數:

引數 角色

interestGroup

由廣告買方傳遞到的物件。興趣群組可以更新為「dailyUpdateUrl」。

auctionSignals

賣方傳遞至 navigator.runAdAuction()競價設定引數屬性。這裡會顯示頁面內容 (例如廣告大小和發布商 ID)、競價類型 (最高價或次高價) 和其他中繼資料的相關資訊。

perBuyerSignals

賣方傳遞的競價設定引數屬性。如此一來,如果賣方是「賣方平台」,就會向買方伺服器執行即時出價呼叫並傳遞回應,或是發布商網頁直接與買方伺服器聯絡,因而提供來自買方伺服器的網頁比對內容訊號。如果是的話,買家最好檢查 generateBid() 內這些信號的加密編譯簽章,以防竄改攻擊。

trustedBiddingSignals

物件的鍵為興趣群組的 trustedBiddingSignalsKeys 且值會在 trustedBiddingSignals 要求中傳回。

browserSignals

瀏覽器建構的物件,可能包含頁面結構定義相關資訊 (例如目前網頁的 hostname,賣方可能會偽造) 和興趣群組本身的資料 (例如群組先前贏得競價的時間記錄,用於允許裝置端展示頻率上限)。

directFromSellerSignals

保證會來自特定賣方的信號,與 auctionSignalssellerSignals 不同,後者可以來自執行 runAdAuction 時存在的任何參與者。

瀏覽器信號

browserSignals 物件包含下列屬性:

{
  topWindowHostname: 'publisher.example',
  seller: 'https://ssp.example',
  topLevelSeller: 'https://www.top-level-ssp.com',
  requestedSize: {width: 100, height: 200},  /* if specified in auction config */
  joinCount: 3,
  recency: 3600000,
  bidCount: 17,
  prevWinsMs: [[timeDeltaMs1,ad1],[timeDeltaMs2,ad2],...],
  wasmHelper: ...
  dataVersion: 1,
  adComponentsLimit: 40
}
屬性 說明

topWindowHostname

進行 runAdAuction() 呼叫的主機名稱。

seller

提交出價的賣方。在元件競價中,這個值是元件賣方。

topLevelSeller

屬於元件競價的頂層賣方,且只會出現在元件競價中。

requestedSize

requestedSize 屬性會提供競價時所需的畫面大小。賣方在競價設定中設定要求的大小,generateBid() 中就會將該值提供給出價方。參與競價的出價方可能會選擇不同的廣告內容大小,系統會根據元素的容器大小,調整顯示後的大小。

joinCount

joinCount」欄位是這部裝置在過去 30 天內加入這個興趣群組的次數 (也就是說,由於離開或成員資格即將到期,導致興趣群組在裝置上儲存的資料沒有落差)。

recency

recency」欄位是從這部裝置加入這個興趣群組到目前為止的時間長度 (以分鐘為單位)

bidCount

興趣群組提交出價的次數。

prevWinsMs

prevWinMs 欄位包含興趣群組勝出的廣告,以及距離上次勝出時間 (以毫秒為單位) 的時間。請注意,這裡的廣告物件僅包含 renderURL 和中繼資料欄位。

wasmHelper

根據興趣群組的 biddingWasmHelperURL 為基礎的 WebAssembly.Module 物件。

dataVersion

買方鍵/值服務回應的資料-Version 值。

adComponentsLimit

generateBid() 可能傳回的廣告元件數量上限

計算出價

如要計算出價值,generateBid() 中的程式碼可以使用函式的參數屬性。

例如:

function generateBid(interestGroup, auctionSignals, perBuyerSignals,
    trustedBiddingSignals, browserSignals) {
  return {
   //  ...
    bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
    // ...
  }
}

傳回出價

generateBid() 會傳回物件,其屬性如下:

屬性 角色
ad 與廣告相關的任意中繼資料,例如賣方預期瞭解此出價或廣告素材的資訊。賣方會在競價和決策邏輯中使用這項資訊。
adCost 用來將報表廣告客戶點擊或轉換費用從 generateBid 傳送至 reportWin 的數值。這個數字的精度僅限於 8 位元的 mantisa 和 8 位元指數,任何捨入會隨機執行。
adComponents 選用清單,針對由多個部分組成的廣告,根據傳送至 navigator.joinAdInterestGroup() 的興趣群組引數的 adComponents 屬性擷取最多 20 個元件。
allowComponentAuction 布林值,表示這個出價是否可用於元件競價。如未指定,預設值為「false」。
bid 將輸入競價的數字出價。賣方必須在比較不同買方的出價,因此出價必須採用某些賣方選擇的單位 (例如「每千美元」)。如果出價為零或負數,這個興趣群組就完全不會參與賣方的競價。買方可以運用這個機制,針對廣告是否能夠顯示的位置執行任何廣告客戶規則。
bidCurrency 出價的貨幣,用於貨幣檢查
render 一個字典,說明當此出價贏得競價時應顯示的廣告素材。包括:
  • url:廣告素材的網址。
  • width:廣告素材的寬度。系統會將這個大小與興趣群組中的宣告進行比對,並替換成廣告素材網址中顯示的任何廣告大小巨集。廣告在圍欄頁框中載入時,圍欄頁框的內部頁框 (例如廣告素材所顯示的大小) 會凍結為這個大小,嵌入程式卻無法得知對頁框大小所做的變更。
  • height:廣告素材的高度。請參閱「width」中的說明文件。

modelingSignals

傳遞至 reportWin() 的 0 到 4095 整數 (12 位元),包含雜訊,如雜訊和特徵分塊配置中所述。系統會忽略並將無效值 (例如負數、無限值和 NaN 值) 傳遞。系統只會傳送最低的 12 位元。


買家可使用 generateBid() 函式中的信號 (包括在 userBiddingSignals 中建立興趣群組時擷取的第一方買家資料),衍生一些值並傳遞至買方的勝出報表函式,藉此啟用機器學習模型訓練。