Đặ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ể muốn tham gia một 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á Protected Audience, bạn có thể tiếp cận những khách hàng mà bạn đã xác định trên các trang web khác theo cách bảo đảm quyền riêng tư.

Trong phiên đấu giá 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 cách sử dụ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 gửi giá thầu trực tiếp 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 một người dùng vào một nhóm đối tượng có cùng mối quan tâm, vị trí của tệp này sẽ được truyền vào cấu hình nhóm đối tượng có cùng mối quan tâm dưới dạng một biddingLogicUrl.

Trong phiên đấu giá, trình duyệt sẽ tìm nạp logic đặt giá thầu mà bạn chỉ định trong trường biddingLogicUrl và thực thi hàm generateBid() cho từng nhóm lợi ích trong một môi trường biệt lập an toàn, có giới hạn trong việc 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 của 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 mức độ mong muốn của người bán.

generateBid()

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


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() lấy các đối số sau:

Đối số Vai trò

interestGroup

Một đối tượng được người mua quảng cáo truyền vào. Nhóm đối tượng có cùng mối quan tâm có thể được cập nhật bằng dailyUpdateUrl.

auctionSignals

Một thuộc tính của đối số cấu hình phiên đấu giá do người bán truyền đến navigator.runAdAuction(). Thông tin này cung cấp thông tin về bối cảnh trang (chẳng hạn như kích thước quảng cáo và mã nhận dạng 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

Một thuộc tính của đối số cấu hình phiên đấu giá do người bán truyền. Điều này có thể cung cấp tín hiệu theo bối cảnh từ máy chủ của người mua về trang, nếu người bán là một 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à chuyển phản hồi trở lại, hoặc nếu trang của nhà xuất bản liên hệ trực tiếp với máy chủ của người mua. Nếu vậy, người mua có thể muốn kiểm tra chữ ký mã hoá của các tín hiệu đó bên trong generateBid() để chống lại hành vi giả mạo.

trustedBiddingSignals

Một đối tượng có khoá là trustedBiddingSignalsKeys cho nhóm lợi ích 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ể giả mạo) và dữ liệu cho chính nhóm lợi ích (chẳng hạn như bản ghi về thời điểm nhóm này giành chiến thắng trong 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 đế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ó trong bối cảnh mà 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
}
Thuộc tính Mô tả

topWindowHostname

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

seller

Người bán mà bạn gửi 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 một phiên đấu giá thành phần và chỉ xuất hiện trong một 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à giá trị này sẽ được cung cấp cho người đặt giá thầu trong generateBid(). Những bên đặt giá thầu 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 kết quả đó sẽ được điều chỉnh bằng hình ảnh cho phù hợp 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 đối tượng có cùng mối quan tâm này trong 30 ngày qua trong khi nhóm đối tượng có cùng mối quan tâm được lưu trữ liên tục (tức là không có khoảng trống trong quá trình lưu trữ nhóm đối tượng có cùng mối quan tâm trên thiết bị do rời khỏi hoặc hết hạn tư cách 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 lợi ích này cho đến nay

bidCount

Số lần nhóm lợi ích đã gửi giá thầu.

prevWinsMs

Trường prevWinMs chứa các quảng cáo chiến thắng của nhóm lợi ích và thời gian kể từ các chiến thắng trước đó tính bằng mili giây. Xin 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

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

dataVersion

Giá trị Data-Version trong(các) phản hồi của dịch vụ Khoá/Giá trị của người mua.

adComponentsLimit

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

Tính giá thầu

Để tính toán giá trị giá thầu, mã trong generateBid() có thể sử dụng các thuộc tính của tham số 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:

Thuộc tính Vai trò
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 đấu giá và logic quyết định.
adCost Giá trị bằng số dùng để truyền chi phí lượt nhấp hoặc lượt chuyển đổi của nhà quảng cáo báo cáo từ generateBid đến reportWin. Độ chính xác của con số này bị giới hạn ở phần định trị 8 bit và số mũ 8 bit, với mọi hoạt động làm tròn đều đượ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 phần, lấy từ thuộc tính adComponents của đối số nhóm mối quan tâm được truyền đến navigator.joinAdInterestGroup().
allowComponentAuction Giá trị boolean cho biết liệu giá thầu này có thể được dùng trong phiên đấu giá thành phần hay không. 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 có khả năng so sánh giá thầu của nhiều người mua, do đó, giá thầu phải được tính bằng một đơn vị do người bán chọn (chẳng hạn như"USD cho mỗi nghìn"). Nếu giá thầu bằng 0 hoặc âm, thì nhóm lợi ích này sẽ không tham gia phiên đấu giá của người bán. Với cơ chế này, người mua có thể triển khai mọi quy tắc của nhà quảng cáo về vị trí quảng cáo có thể xuất hiện hoặc không được 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 Một 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 khai báo trong nhóm lợi ích và được thay thế vào mọi macro kích thước quảng cáo có trong URL mẫu quảng cáo. Khi quảng cáo được tải trong một khung được phân vùng, khung bên trong của khung được phân vùng (tức là kích thước mà mẫu quảng cáo nhìn thấy) sẽ được cố định ở kích thước này và không thể thấy những thay đổi về 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 phần giải thích trong width.

modelingSignals

Một số nguyên từ 0 đến 4095 (12 bit) được truyền đến reportWin(), có thêm nhiễu, như mô tả trong sơ đồ thêm nhiễu và phân nhóm. Các giá trị không hợp lệ (chẳng hạn như giá trị âm, vô hạn và NaN) sẽ bị bỏ qua và không được truyề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ó trong hàm generateBid(), bao gồm cả dữ liệu từ dữ liệu của bên thứ nhất của người mua được thu thập tại thời điểm tạo Nhóm lợi ích trong userBiddingSignals, để lấy một số giá trị được truyền đến hàm báo cáo lượt thắng của người mua nhằm cho phép huấn luyện mô hình học máy.