Hướng dẫn dành cho người bán: chạy phiên đấu giá quảng cáo

Hướng dẫn và thông tin tham khảo về Seller API cho phiên đấu giá quảng cáo Protected Audience API.

Trong bài viết này, bạn sẽ thấy thông tin tham khảo kỹ thuật về phiên đấu giá quảng cáo, như được dùng trong lần lặp lại hiện tại của Protected Audience API thử nghiệm.

Đọc hướng dẫn cho nhà phát triển để biết toàn bộ vòng đời của Protected Audience API, đồng thời tham khảo tài liệu giải thích về Protected Audience API để biết thông tin thảo luận chuyên sâu về cách người bán chạy phiên đấu giá trên thiết bị.

Bạn không phải là nhà phát triển? Hãy tham khảo Tổng quan về Protected Audience API.

Phiên đấu giá quảng cáo Protected Audience API là gì?

Phiên đấu giá quảng cáo Protected Audience API là một tập hợp các chương trình JavaScript nhỏ mà trình duyệt chạy trên thiết bị của người dùng để chọn quảng cáo. Để bảo vệ quyền riêng tư, tất cả mã đấu giá quảng cáo của người bán và người mua đều chạy trong các worklet JavaScript riêng biệt không thể tương tác với thế giới bên ngoài.

Sáu giai đoạn trong phiên đấu giá quảng cáo Protected Audience API
Sáu giai đoạn trong phiên đấu giá quảng cáo Protected Audience API
Sơ đồ này trình bày từng giai đoạn của phiên đấu giá quảng cáo Protected Audience API.
  1. Một người dùng truy cập vào một trang web hiển thị quảng cáo.
  2. Mã của người bán thực thi navigator.runAdAuction(). Điều này chỉ định không gian quảng cáo nào được bán và những người có thể đặt giá thầu. Người bán cũng phải thêm một tập lệnh để tính điểm cho từng giá thầu, scoreAd().
  3. Mã của người mua được mời sẽ thực thi để tạo giá thầu, URL cho mẫu quảng cáo có liên quan và các dữ liệu khác. Tập lệnh đặt giá thầu có thể truy vấn dữ liệu theo thời gian thực (chẳng hạn như ngân sách còn lại của chiến dịch quảng cáo) từ Dịch vụ khoá/giá trị của người mua.
  4. Mã của người bán sẽ tính điểm cho từng giá thầu và chọn ra giá thầu giành chiến thắng. Logic này sử dụng giá trị giá thầu và dữ liệu khác để trả về mức độ phù hợp của giá thầu. Những quảng cáo không thể đánh bại quảng cáo chiến thắng theo bối cảnh sẽ bị từ chối. Người bán có thể sử dụng dịch vụ Khoá/Giá trị của riêng mình cho dữ liệu theo thời gian thực.
  5. Quảng cáo chiến thắng được trả về dưới dạng một giá trị không minh bạch, xuất hiện trong một khung được phân vùng. Cả người bán và nhà xuất bản đều không thể xem giá trị này.
  6. Phiên đấu giá được báo cáo cho người bán và người mua chiến thắng.

Phiên đấu giá diễn ra khi nào?

Bạn có thể chạy Protected Audience API một cách độc lập hoặc cùng với các phiên đấu giá có lập trình. Trong phiên đấu giá có lập trình của nhiều người bán:

  1. Người dùng truy cập vào một trang web có tham gia.
  2. Một người bán khác chạy phiên đấu giá có lập trình để tìm quảng cáo theo bối cảnh cho một vị trí quảng cáo có sẵn.
  3. Phiên đấu giá Protected Audience API được chạy.
  4. scoreAd()so sánh giá thầu của người mua với kết quả của phiên đấu giá đầu tiên.

Giá thầu không thể đánh bại giá thầu chiến thắng theo bối cảnh sẽ bị từ chối.

Ai chạy phiên đấu giá quảng cáo Protected Audience API?

Có nhiều bên có thể chạy phiên đấu giá để bán khoảng không quảng cáo.

Ví dụ:

  • Nhà xuất bản nội dung: tự mình lưu trữ nội dung quảng cáo trên trang web của mình.
  • Nền tảng bên cung (SSP): làm việc với nhà xuất bản và cung cấp các dịch vụ khác.
  • Tập lệnh của bên thứ ba: thay mặt cho nhà xuất bản, để cho phép tham gia đấu giá quảng cáo.

Với Protected Audience API, người bán có 3 việc cần làm:

  • Thực thi các quy tắc của nhà xuất bản: người mua và giá thầu nào đủ điều kiện.
  • Chạy logic đấu giá: JavaScript chạy trong các worklet để tính điểm mức độ phù hợp cho từng giá thầu.
  • Báo cáo kết quả đấu giá.

Các công việc này được thực hiện theo phương thức có lập trình, trong mã do người bán cung cấp khi người bán bắt đầu một phiên đấu giá quảng cáo bằng cách gọi hàm JavaScript navigator.runAdAuction().

Các hàm API

runAdAuction()

Người bán gửi yêu cầu đến trình duyệt của người dùng để bắt đầu phiên đấu giá quảng cáo bằng cách gọi navigator.runAdAuction().

Ví dụ:

const auctionConfig = {
  seller: 'https://ssp.example',
  decisionLogicUrl: ...,
  trustedScoringSignalsUrl: ...,
  interestGroupBuyers: ['https://dsp.example', 'https://buyer2.example', ...],
  auctionSignals: {...},
  sellerSignals: {...},
  sellerTimeout: 100,
  perBuyerSignals: {
    'https://dsp.example': {...},
    'https://another-buyer.example': {...},
    ...
  },
  perBuyerTimeouts: {
    'https://dsp.example': 50,
    'https://another-buyer.example': 200,
    '*': 150,
    ...
  },
  componentAuctions: [
    {
      'seller': 'https://some-other-ssp.example',
      'decisionLogicUrl': ...,
      ...
    },
    ...
  ]
};

try {
  const auctionResultPromise = navigator.runAdAuction(auctionConfig);
} catch (error) {
  // Handle error.
}

runAdAuction() trả về một lời hứa phân giải thành một URN (urn:uuid:<something>) đại diện cho kết quả đấu giá quảng cáo. Trình duyệt chỉ có thể giải mã thông tin này khi được truyền đến một khung được phân vùng để hiển thị: trang của nhà xuất bản không thể kiểm tra quảng cáo chiến thắng.

Tập lệnh decisionLogicUrl sẽ xem xét từng quảng cáo riêng lẻ, cùng với giá thầu và siêu dữ liệu được liên kết của quảng cáo đó, mỗi lần một quảng cáo, rồi chỉ định cho quảng cáo đó một điểm số mong muốn bằng số.

auctionConfig cơ sở lưu trú

seller
Bắt buộc
Ví dụ: 'https://ssp.example'
Vai trò: Nguồn gốc của người bán.
decisionLogicUrl
Bắt buộc
Ví dụ: 'https://ssp.example/auction-decision-logic.js'
Vai trò: URL cho JavaScript của worklet đấu giá.
trustedScoringSignalsUrl
Không bắt buộc
Ví dụ: 'https://ssp.example/scoring-signals'
Vai trò: URL của máy chủ đáng tin cậy của người bán.
interestGroupBuyers
Bắt buộc
Ví dụ: ['https://dsp.example', 'https://buyer2.example', ...]
Vai trò: Nguồn gốc của tất cả chủ sở hữu nhóm lợi ích được yêu cầu đặt giá thầu trong phiên đấu giá.
Lưu ý: Người bán có thể chỉ định interestGroupBuyers: để cho phép tất cả các nhóm đối tượng có cùng mối quan tâm đặt giá thầu. Sau đó, quảng cáo sẽ được chấp nhận hoặc bị từ chối dựa trên các tiêu chí khác ngoài việc có bao gồm chủ sở hữu nhóm đối tượng có cùng mối quan tâm hay không. Ví dụ: người bán có thể xem xét mẫu quảng cáo để xác nhận việc tuân thủ chính sách của họ.
auctionSignals
Không bắt buộc
Ví dụ: {...}
Vai trò: Thông tin người bán về ngữ cảnh trang, loại phiên đấu giá, v.v.
sellerSignals
Không bắt buộc
Ví dụ: {...}
Vai trò: Thông tin dựa trên chế độ cài đặt của nhà xuất bản, đưa ra yêu cầu quảng cáo theo bối cảnh, v.v.
sellerTimeout
Không bắt buộc
Ví dụ: 100
Vai trò: Thời gian chạy tối đa (mili giây) của tập lệnh scoreAd() của người bán.
perBuyerSignals
Không bắt buộc
Ví dụ:
{'https://dsp.example': {...}, 'https://another-buyer.example': {...}, ... }
Vai trò: Tín hiệu theo bối cảnh về trang cho từng người mua cụ thể, từ máy chủ của họ.
perBuyerTimeouts
Không bắt buộc
Ví dụ: 50
Vai trò: Thời gian chạy tối đa (mili giây) của tập lệnh generateBid() cụ thể của người mua.
componentAuctions
Không bắt buộc
Ví dụ:
[{'seller': 'https://www.some-other-ssp.com', 'decisionLogicUrl': ..., ...}, ...]
Vai trò: Cấu hình bổ sung cho phiên đấu giá thành phần.



decisionLogicUrl

decisionLogicUrl là một thuộc tính của đối tượng cấu hình phiên đấu giá, được truyền đến runAdAuction(). URL này phải chứa một tập lệnh cho hàm scoreAd(). Logic này được chạy một lần cho mỗi quảng cáo để xác định mức độ phù hợp của quảng cáo.

scoreAd(adMetadata, bid, auctionConfig, trustedScoringSignals, browserSignals) {
  ...
  return desirabilityScoreForThisAd;
}

browserSignals

browserSignals là một đối tượng do trình duyệt tạo, bao gồm cả thông tin mà trình duyệt biết và tập lệnh phiên đấu giá của người bán có thể muốn xác minh:

{
  topWindowHostname: 'publisher.example',
  interestGroupOwner: 'https://dsp.example',
  renderUrl: 'https://cdn.example/render',
  adComponents: ['https://cdn.com/ad-component-1', ...],
  biddingDurationMsec: 12,
  dataVersion: 1 /* DValue from the seller's Key/Value service response. */
}

Trước khi phiên đấu giá bắt đầu, người bán sẽ tìm quảng cáo theo bối cảnh phù hợp nhất cho vùng quảng cáo có sẵn. Một phần của logic scoreAd() sẽ từ chối mọi quảng cáo không thể đánh bại quảng cáo chiến thắng theo bối cảnh.

scoreAd()

scoreAd() lấy các đối số sau:

Đối số Vai trò
adMetadata Siêu dữ liệu tuỳ ý do người mua cung cấp.
auctionConfig Đối tượng cấu hình phiên đấu giá được truyền đến navigator.runAdAuction().
bid Giá trị giá thầu bằng số.
trustedScoringSignals Các giá trị được truy xuất tại thời điểm đấu giá từ máy chủ đáng tin cậy của người bán, thể hiện ý kiến của người bán về quảng cáo.

Câu hỏi thường gặp

Làm cách nào để xác định người chiến thắng trong phiên đấu giá và ai sẽ chọn họ?

Người bán cung cấp logic tính điểm để xác định điểm số mức độ phù hợp của từng quảng cáo và trình duyệt sẽ chọn điểm số cao nhất làm quảng cáo chiến thắng.

Người bán đưa logic vào hàm scoreAd() và trình duyệt thực thi hàm này trong một worklet có khả năng giao tiếp hạn chế với mã bên ngoài. Bản thân trình duyệt không tính điểm cho quảng cáo. Trình duyệt hoàn toàn chịu trách nhiệm thực thi logic tính điểm và chọn giá thầu có điểm cao nhất.

Tất cả tài liệu tham khảo về Protected Audience API

Hướng dẫn tham khảo API có sẵn:

Thông tin giải thích về Protected Audience API cũng cung cấp thông tin chi tiết về các quy tắc hỗ trợ và các quy tắc ràng buộc của tính năng.