Đặt giá thầu trong phiên đấu giá để mua vùng quảng cáo

Là người mua quảng cáo (DSP và nhà quảng cáo), bạn có thể quan tâm đến việc tham gia phiên đấu giá quảng cáo Protected Audience trên trang web của nhà xuất bản để nhắm mục tiêu quảng cáo đến nhóm mối quan tâm mà bạn đã xác định trên trang web của nhà quảng cáo. Khi tham gia phiên đấu giá trong Protected Audience, bạn có thể tiếp cận khách hàng mà bạn đã xác định trên những trang web khác theo cách bảo đảm quyền riêng tư.

Trong phiên đấu giá trong Protected Audience, bạn cung cấp logic để tạo giá thầu và trình duyệt sẽ tính toán giá thầu bằng logic đó. Điều này trái ngược với các cấu trúc đấu giá khác, trong đó bạn trực tiếp gửi giá thầu thay vì cung cấp logic.

Bạn cung cấp logic tạo giá thầu trong hàm JavaScript generateBid() và tệp này được lưu trữ trên máy chủ của bạn. Khi bạn thêm người dùng vào một nhóm mối quan tâm, vị trí của tệp này sẽ được chuyển vào cấu hình của nhóm mối quan tâm dưới dạng biddingLogicUrl.

Trong phiên đấu giá, trình duyệt sẽ tìm nạp logic đặt giá thầu được chỉ định trong trường biddingLogicUrl và thực thi hàm generateBid() cho từng nhóm mối quan tâm trong một môi trường riêng biệt bảo mật bị hạn chế về khả năng giao tiếp với ngữ cảnh bên ngoài. Khi generateBid() được thực thi, trình duyệt sẽ truyền các tín hiệu vào hàm dưới dạng đối số. Các tín hiệu này chứa nhiều thông tin từ nhiều nguồn, chẳng hạn như dữ liệu bên thứ nhất của nhà xuất bản, dữ liệu của người bán, dữ liệu theo thời gian thực, v.v. Bạn có thể sử dụng các tín hiệu này để tính toán giá thầu và giá trị được trả về từ lệnh gọi generateBid(). Sau khi giá thầu được gửi, trình duyệt sẽ thực thi logic tính điểm của người bán trên từng giá thầu để tính điểm mong muốn của người bán.

generateBid()

Phần sau đây mô tả các đối số của hàm generateBid() và cấu trúc của giá thầu mà hàm trả về:


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)
  };
}

Đối số

generateBid() nhận các đối số sau:

Đối số Role

interestGroup

Đối tượng được người mua quảng cáo chuyển đến. Bạn có thể cập nhật nhóm mối quan tâm bằng dailyUpdateUrl.

auctionSignals

Thuộc tính của đối số cấu hình phiên đấu giá được người bán chuyển đến navigator.runAdAuction(). Thẻ này cung cấp thông tin về ngữ cảnh của trang (chẳng hạn như kích thước quảng cáo và mã nhà xuất bản), loại phiên đấu giá (giá đầu tiên hoặc giá thứ hai) và siêu dữ liệu khác.

perBuyerSignals

Thuộc tính của đối số cấu hình phiên đấu giá do người bán chuyển. Điều này có thể cung cấp tín hiệu bối cảnh từ máy chủ của người mua về trang, nếu người bán là SSP thực hiện lệnh gọi đặt giá thầu theo thời gian thực đến máy chủ của người mua và gửi lại phản hồi, hoặc nếu trang nhà xuất bản liên hệ trực tiếp với máy chủ của người mua. Nếu có, người mua nên kiểm tra chữ ký mã hoá của các tín hiệu đó bên trong generateBid() để ngăn chặn hành vi can thiệp.

trustedBiddingSignals

Một đối tượng có khoá là trustedBiddingSignalsKeys cho nhóm mối quan tâm và có các giá trị được trả về trong yêu cầu trustedBiddingSignals.

browserSignals

Một đối tượng do trình duyệt tạo, có thể bao gồm thông tin về ngữ cảnh trang (chẳng hạn như hostname của trang hiện tại mà người bán có thể làm giả nếu không) và dữ liệu cho chính nhóm mối quan tâm (chẳng hạn như bản ghi về thời điểm nhóm đó đã thắng một phiên đấu giá trước đó, để cho phép giới hạn tần suất trên thiết bị).

directFromSellerSignals

Các tín hiệu được đảm bảo đến từ một người bán cụ thể, không giống như auctionSignalssellerSignals có thể đến từ bất kỳ người tham gia nào có mặt trong bối cảnh runAdAuction được thực thi.

Tín hiệu của trình duyệt

Đối tượng browserSignals có các thuộc tính sau:

{
  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
}
Tài sản Nội dung mô tả

topWindowHostname

Tên máy chủ nơi thực hiện lệnh gọi runAdAuction().

seller

Người bán nhận giá thầu. Trong một phiên đấu giá thành phần, giá trị này là người bán thành phần.

topLevelSeller

Người bán cấp cao nhất trong phiên đấu giá thành phần và chỉ xuất hiện trong phiên đấu giá thành phần.

requestedSize

Thuộc tính requestedSize đề xuất kích thước khung hình cho phiên đấu giá. Người bán đặt kích thước được yêu cầu trong cấu hình phiên đấu giá và bên đặt giá thầu có thể sử dụng giá trị này trong generateBid(). Bên đặt giá thầu bên trong phiên đấu giá có thể chọn kích thước nội dung khác cho quảng cáo và kích thước thu được sẽ được điều chỉnh tỷ lệ trực quan cho vừa với kích thước vùng chứa của phần tử.

joinCount

Trường joinCount là số lần thiết bị này tham gia nhóm mối quan tâm này trong 30 ngày qua trong khi nhóm mối quan tâm được lưu trữ liên tục (nghĩa là không có khoảng trống nào trong bộ nhớ của nhóm mối quan tâm trên thiết bị do người dùng rời khỏi nhóm mối quan tâm hoặc hết hạn thành viên).

recency

Trường recency là khoảng thời gian (tính bằng phút) kể từ khi thiết bị này tham gia nhóm mối quan tâm này cho đến bây giờ

bidCount

Số lần nhóm mối quan tâm đó đã gửi giá thầu.

prevWinsMs

Trường prevWinMs chứa quảng cáo giành chiến thắng của nhóm mối quan tâm và thời gian kể từ lần thắng trước đó của nhóm đó (tính bằng mili giây). Lưu ý rằng đối tượng quảng cáo ở đây chỉ chứa các trường renderURL và siêu dữ liệu.

wasmHelper

một đối tượng WebAssembly.Module dựa trên biddingWasmHelperURL của nhóm mối quan tâm.

dataVersion

Giá trị phiên bản dữ liệu từ(các) phản hồi dịch vụ Khoá/giá trị của người mua.

adComponentsLimit

Số thành phần quảng cáo tối đa generateBid() có thể trả về

Tính giá thầu

Để tính giá trị giá thầu, mã trong generateBid() có thể sử dụng các thuộc tính của thông số của hàm.

Ví dụ:

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

Trả lại giá thầu

generateBid() trả về một đối tượng có các thuộc tính sau:

Tài sản Role
ad Siêu dữ liệu tuỳ ý về quảng cáo, chẳng hạn như thông tin mà người bán muốn tìm hiểu về giá thầu hoặc mẫu quảng cáo này. Người bán sử dụng thông tin này trong logic phiên đấu giá và logic quyết định.
adCost Một giá trị bằng số dùng để chuyển số lượt nhấp hoặc chi phí chuyển đổi báo cáo của nhà quảng cáo từ generateBid sang reportWin. Độ chính xác của số này được giới hạn ở mantissa 8 bit và số mũ 8 bit, với bất kỳ việc làm tròn nào được thực hiện một cách ngẫu nhiên.
adComponents Một danh sách không bắt buộc gồm tối đa 20 thành phần cho quảng cáo bao gồm nhiều thành phần, được lấy từ thuộc tính adComponents của đối số nhóm mối quan tâm được truyền vào navigator.joinAdInterestGroup().
allowComponentAuction Giá trị boolean cho biết liệu giá thầu này có thể dùng trong phiên đấu giá thành phần hay không. Giá trị mặc định là "false" nếu không được chỉ định.
bid Giá thầu bằng số sẽ tham gia phiên đấu giá. Người bán phải ở trong vị thế để so sánh giá thầu từ những người mua khác nhau, do đó giá thầu phải theo một đơn vị nào đó do người bán chọn (chẳng hạn như"USD trên mỗi nghìn"). Nếu giá thầu bằng 0 hoặc âm, thì nhóm mối quan tâm này sẽ hoàn toàn không tham gia vào phiên đấu giá của người bán. Với cơ chế này, người mua có thể triển khai bất kỳ quy tắc nào dành cho nhà quảng cáo đối với vị trí mà quảng cáo của họ có thể xuất hiện hoặc không xuất hiện.
bidCurrency Đơn vị tiền tệ của giá thầu, dùng để kiểm tra đơn vị tiền tệ.
render Từ điển mô tả mẫu quảng cáo sẽ được hiển thị nếu giá thầu này thắng phiên đấu giá. Trong đó có:
  • url: URL của mẫu quảng cáo.
  • width: Chiều rộng của mẫu quảng cáo. Kích thước này sẽ được so khớp với nội dung khai báo trong nhóm mối quan tâm và được thay thế vào bất kỳ macro kích thước quảng cáo nào có trong URL mẫu quảng cáo. Khi quảng cáo được tải trong khung được bảo vệ, khung bên trong của khung được bảo vệ (tức là kích thước hiển thị cho quảng cáo) sẽ bị cố định đối với kích thước này và sẽ không thể thấy các thay đổi đối với kích thước khung do trình nhúng thực hiện.
  • height: Chiều cao của mẫu quảng cáo. Xem thông tin chi tiết trong width.

modelingSignals

Số nguyên 0-4095 (12 bit) được truyền đến reportWin(), có hiện tượng nhiễu, như mô tả trong sơ đồ nhiễu và phân giỏ. Các giá trị không hợp lệ, chẳng hạn như các giá trị âm, vô hạn và NaN, sẽ bị bỏ qua và không được chuyển. Chỉ 12 bit thấp nhất sẽ được truyền.


Người mua có thể sử dụng các tín hiệu có sẵn trong hàm generateBid(), bao gồm cả dữ liệu của người mua bên thứ nhất, được thu thập tại thời điểm tạo Nhóm mối quan tâm trong userBiddingSignals, để lấy một số giá trị được chuyển đến chức năng báo cáo giành chiến thắng của người mua nhằm hỗ trợ việc huấn luyện mô hình học máy.