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à tài liệu tham khảo về API Người bán cho phiên đấu giá quảng cáo Protected Audience API.

Trong bài viết này, bạn sẽ tìm thấy thông tin tham khảo kỹ thuật cho phiên đấu giá quảng cáo, như được sử dụng trong vòng lặp 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 và tham khảo tài liệu giải thích về Protected Audience API để thảo luận chi tiết hơn về cách người bán chạy các 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 từ người bán và người mua đều sẽ chạy trong các công việc JavaScript riêng biệt không thể giao tiếp với thế giới bên ngoài.

6 giai đoạn trong một phiên đấu giá quảng cáo bằng 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. Người dùng truy cập vào 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 xác định không gian quảng cáo nào cần bán và ai có thể đặt giá thầu. Người bán cũng phải bao gồm một tập lệnh để tính điểm cho mỗi 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 phù hợp 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 tính điểm cho từng giá thầu và chọn giá thầu chiến thắng. Logic này sử dụng giá trị giá thầu và các dữ liệu khác trả về mức độ mong muốn của giá thầu. Quảng cáo không thể đánh bại quảng cáo giành chiến thắng theo ngữ 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 rõ ràng, hiển thị trong một khung được bảo vệ. Cả người bán và nhà xuất bản sẽ 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 giành chiến thắng.

Khi nào phiên đấu giá diễn ra?

Protected Audience API có thể tự chạy hoặc chạy thông qua các phiên đấu giá có lập trình. Trong phiên đấu giá có lập trình, nhiều người bán:

  1. Người dùng truy cập vào trang web tham gia.
  2. Phiên đấu giá có lập trình được chạy bởi một người bán khác để tìm quảng cáo theo bối cảnh cho một vùng 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 ngữ 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ể triển khai một phiên đấu giá để bán không gian quảng cáo.

Ví dụ:

  • Nhà xuất bản nội dung: tự thực hiện việc 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: hành động cho một nhà xuất bản để cho phép tham gia vào các phiên đấu giá quảng cáo.

Với Protected Audience API, người bán có 3 công việc:

  • 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 phiên đấu giá: JavaScript chạy trong worklet để tính toán điểm mong muốn cho mỗi giá thầu.
  • Báo cáo kết quả phiên đấu giá.

Các công việc này được thực hiện theo lập trình, trong mã do người bán cung cấp khi 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 một 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 tới một URN (urn:uuid:<something>) biểu thị kết quả đấu giá quảng cáo. Trình duyệt chỉ có thể giải mã quảng cáo này khi được chuyển vào khung bảo vệ để hiển thị: trang nhà xuất bản không thể kiểm tra quảng cáo giành 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, lần lượt từng quảng cáo, sau đó gán điểm số mong muốn cho quảng cáo đó.

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 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 mối quan tâm đượ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 mối quan tâm đặt giá thầu. Sau đó, quảng cáo được chấp nhận hoặc từ chối dựa trên các tiêu chí khác ngoài việc chọn chủ sở hữu nhóm mối quan tâm. 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 của 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 ngữ 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) tập lệnh generateBid() của người mua cụ thể.
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à thuộc tính của đối tượng định cấu hình phiên đấu giá, được truyền đến runAdAuction(). URL này phải bao gồm 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 khả năng mong muốn 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 thông tin mà trình duyệt biết và tập lệnh đấ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() nhận các đối số sau:

Đối số Role
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 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

Người chiến thắng trong phiên đấu giá được quyết định như thế nào và ai sẽ chọn?

Người bán cung cấp logic tính điểm để xác định điểm số mong muốn của mỗi quảng cáo và trình duyệt chọn điểm 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 sẽ thực thi hàm này trong một worklet có giao tiếp hạn chế với mã bên ngoài hàm. Trình duyệt không tự tính điểm quảng cáo. Trình duyệt tự chịu trách nhiệm về việc thực thi logic tính điểm và chọn giá thầu có điểm số cao nhất.

Tất cả tài liệu tham khảo 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.