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ề Seller API 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 tài liệu tham khảo kỹ thuật về phiên đấu giá quảng cáo, được sử dụng trong phiên bản lặp lại hiện tại của Protected Audience API thử nghiệm.

Hãy đọc hướng dẫn dành 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 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ã phiên đấu giá quảng cáo của người bán và người mua đều chạy trong worklet JavaScript riêng biệt không thể giao tiếp với bên ngoài.

6 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(). Thông tin này chỉ định không gian quảng cáo nào đang được bán và ai 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 phù hợp và 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 một giá thầu 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 độ mong muốn 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 để lấy 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ị mờ, hiển thị trong một khung có hàng rào. 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 riêng lẻ hoặc cùng với 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 một trang web tham gia chương trình.
  2. Một người bán khác sẽ 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.

Những 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 không gian quảng cáo.

Ví dụ:

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

Với Protected Audience API, người bán có 3 nhiệm vụ:

  • Thực thi quy tắc của nhà xuất bản: những 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 phương thức lập trình, trong mã do người bán cung cấp khi kích hoạt phiên đấu giá quảng cáo bằng cách gọi hàm JavaScript navigator.runAdAuction().

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 URN (urn:uuid:<something>) đại diện cho kết quả phiên đấu giá quảng cáo. Trình duyệt chỉ có thể giải mã thông tin này khi được chuyển đến một khung có hàng rào để 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 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 liên quan, sau đó chỉ định cho quảng cáo đó một điểm số mong muốn dạ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 phiên đấ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 sẽ đượ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 có 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 của người bán về bối 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, tạo 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 (ms) 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 (ms) của tập lệnh generateBid() của một 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à 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 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 mức độ 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ị trí quảng cáo có sẵn. Một phần logic scoreAd() 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ố 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 dạ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ố về mức độ mong muốn của mỗi 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 đó 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 chịu trách nhiệm duy nhất trong việc 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.