เสนอราคาในการประมูลเพื่อซื้อพื้นที่โฆษณา

ในฐานะผู้ซื้อโฆษณา (DSP และผู้ลงโฆษณา) คุณอาจสนใจเข้าร่วมการประมูลโฆษณา Protected Audience ในเว็บไซต์ของผู้เผยแพร่โฆษณาเพื่อกำหนดเป้าหมายโฆษณาไปยังกลุ่มความสนใจที่คุณกำหนดในเว็บไซต์ของผู้ลงโฆษณา การเข้าร่วมการประมูล Protected Audience จะช่วยให้คุณเข้าถึงลูกค้าที่ระบุได้ในเว็บไซต์อื่นๆ ในลักษณะที่รักษาความเป็นส่วนตัว

ในการประมูลที่ใช้ Protected Audience API คุณจะระบุตรรกะเพื่อสร้างราคาเสนอ และเบราว์เซอร์จะคำนวณราคาเสนอโดยใช้ตรรกะนั้น ซึ่งแตกต่างจากสถาปัตยกรรมการประมูลอื่นๆ ที่คุณส่งราคาเสนอโดยตรงแทนที่จะระบุตรรกะ

คุณระบุตรรกะการสร้างราคาเสนอในฟังก์ชัน JavaScript generateBid() และไฟล์จะโฮสต์อยู่ในเซิร์ฟเวอร์ของคุณ เมื่อคุณเพิ่มผู้ใช้ลงในกลุ่มความสนใจ ระบบจะส่งตำแหน่งของไฟล์นี้ไปยังการกำหนดค่ากลุ่มความสนใจเป็น biddingLogicUrl

ในระหว่างการประมูล เบราว์เซอร์จะดึงตรรกะการเสนอราคาที่ระบุไว้ในช่อง biddingLogicUrl และเรียกใช้ฟังก์ชัน generateBid() สำหรับกลุ่มความสนใจแต่ละกลุ่มในสภาพแวดล้อมที่แยกอย่างปลอดภัยซึ่งจำกัดการสื่อสารกับบริบทภายนอก เมื่อมีการเรียกใช้ generateBid() เบราว์เซอร์จะส่งสัญญาณไปยังฟังก์ชันเป็นอาร์กิวเมนต์ สัญญาณเหล่านี้มีข้อมูลต่างๆ จากแหล่งที่มาต่างๆ เช่น ข้อมูลจากบุคคลที่หนึ่งของผู้เผยแพร่โฆษณา ข้อมูลของผู้ขาย ข้อมูลแบบเรียลไทม์ และอื่นๆ คุณใช้สัญญาณเหล่านี้เพื่อคำนวณราคาเสนอได้ และระบบจะแสดงผลค่าจากการเรียกใช้ generateBid() หลังจากส่งราคาเสนอแล้ว เบราว์เซอร์จะเรียกใช้ตรรกะการให้คะแนนของผู้ขายในราคาเสนอแต่ละรายการเพื่อคำนวณคะแนนความน่าสนใจของผู้ขาย

generateBid()

ต่อไปนี้จะอธิบายอาร์กิวเมนต์ของฟังก์ชัน generateBid() และโครงสร้างของราคาเสนอที่ส่งคืนจากฟังก์ชัน


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

อาร์กิวเมนต์

generateBid() รับอาร์กิวเมนต์ต่อไปนี้

อาร์กิวเมนต์ บทบาท

interestGroup

ออบเจ็กต์ที่ผู้ซื้อโฆษณาส่งมาให้ ระบบอาจอัปเดตกลุ่มความสนใจด้วย dailyUpdateUrl

auctionSignals

พร็อพเพอร์ตี้ของอาร์กิวเมนต์ auction config ที่ผู้ขายส่งไปยัง navigator.runAdAuction() ซึ่งให้ข้อมูลเกี่ยวกับบริบทของหน้าเว็บ (เช่น ขนาดโฆษณาและรหัสผู้เผยแพร่โฆษณา) ประเภทการประมูล (ราคาแรกหรือราคาที่สอง) และข้อมูลเมตาอื่นๆ

perBuyerSignals

พร็อพเพอร์ตี้ของอาร์กิวเมนต์ auction config ที่ผู้ขายส่ง ซึ่งอาจให้สัญญาณตามบริบทจากเซิร์ฟเวอร์ของผู้ซื้อเกี่ยวกับหน้าเว็บได้ หากผู้ขายเป็น SSP ที่ทำการเรียกใช้การเสนอราคาแบบเรียลไทม์ไปยังเซิร์ฟเวอร์ของผู้ซื้อและส่งต่อการตอบกลับ หรือหากหน้าเว็บของผู้เผยแพร่โฆษณาติดต่อเซิร์ฟเวอร์ของผู้ซื้อโดยตรง หากเป็นเช่นนั้น ผู้ซื้ออาจต้องการตรวจสอบลายเซ็นการเข้ารหัสของสัญญาณเหล่านั้นภายใน generateBid() เพื่อป้องกันการดัดแปลง

trustedBiddingSignals

ออบเจ็กต์ที่มีคีย์เป็น trustedBiddingSignalsKeys สำหรับกลุ่มความสนใจ และมีค่าที่ส่งคืนในคำขอ trustedBiddingSignals

browserSignals

ออบเจ็กต์ที่เบราว์เซอร์สร้างขึ้น ซึ่งอาจมีข้อมูลเกี่ยวกับบริบทของหน้า (เช่น hostname ของหน้าปัจจุบัน ซึ่งผู้ขายอาจปลอมแปลงได้) และข้อมูลสำหรับกลุ่มความสนใจเอง (เช่น บันทึกเวลาที่กลุ่มชนะการประมูลก่อนหน้านี้ เพื่ออนุญาตการจำกัดความถี่ในอุปกรณ์)

directFromSellerSignals

สัญญาณที่มาจากผู้ขายรายใดรายหนึ่ง ซึ่งต่างจาก auctionSignals และ sellerSignals ที่มาจากผู้เข้าร่วมทุกคนซึ่งอยู่ในบริบทที่มีการดำเนินการ runAdAuction

สัญญาณของเบราว์เซอร์

ออบเจ็กต์ browserSignals มีพร็อพเพอร์ตี้ต่อไปนี้

{
  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
}
พร็อพเพอร์ตี้ คำอธิบาย

topWindowHostname

ชื่อโฮสต์ของตำแหน่งที่โทรหา runAdAuction()

seller

ผู้ขายที่ส่งราคาเสนอให้ ในการประมูลคอมโพเนนต์ ค่านี้คือผู้ขายคอมโพเนนต์

topLevelSeller

ผู้ขายระดับบนสุดในการประมูลคอมโพเนนต์ และจะปรากฏในการประมูลคอมโพเนนต์เท่านั้น

requestedSize

พร็อพเพอร์ตี้ requestedSize แนะนำขนาดเฟรมสำหรับการประมูล ผู้ขายจะตั้งค่าขนาดที่ขอในการกำหนดค่าการประมูล และผู้เสนอราคาจะเห็นมูลค่าใน generateBid() ผู้เสนอราคาในการประมูลอาจเลือกขนาดเนื้อหาอื่นสำหรับโฆษณา และระบบจะปรับขนาดผลลัพธ์ดังกล่าวให้พอดีกับขนาดคอนเทนเนอร์ขององค์ประกอบ

joinCount

ฟิลด์ joinCount คือจำนวนครั้งที่อุปกรณ์นี้เข้าร่วมกลุ่มความสนใจนี้ในช่วง 30 วันที่ผ่านมา ขณะที่ระบบจัดเก็บกลุ่มความสนใจอย่างต่อเนื่อง (กล่าวคือ ไม่มีการเว้นช่วงในการจัดเก็บกลุ่มความสนใจในอุปกรณ์เนื่องจากออกจากกลุ่มหรือการเป็นสมาชิกหมดอายุ)

recency

ฟิลด์ recency คือระยะเวลา (เป็นนาที) ตั้งแต่เวลาที่อุปกรณ์นี้เข้าร่วมกลุ่มความสนใจนี้จนถึงปัจจุบัน

bidCount

จำนวนครั้งที่กลุ่มความสนใจส่งราคาเสนอ

prevWinsMs

ฟิลด์ prevWinMs มีโฆษณาที่ชนะของกลุ่มความสนใจและเวลาตั้งแต่โฆษณาชนะครั้งก่อนเป็นมิลลิวินาที โปรดทราบว่าออบเจ็กต์โฆษณาในที่นี้มีเฉพาะฟิลด์ renderURL และข้อมูลเมตา

wasmHelper

ออบเจ็กต์ WebAssembly.Module ตาม biddingWasmHelperURL ของกลุ่มความสนใจ

dataVersion

ค่า Data-Version จากการตอบกลับของบริการคีย์/ค่าของผู้ซื้อ

adComponentsLimit

ระบบอาจแสดงคอมโพเนนต์โฆษณาสูงสุด generateBid() รายการ

คำนวณราคาเสนอ

หากต้องการคำนวณมูลค่าราคาเสนอ โค้ดใน generateBid() สามารถใช้พร็อพเพอร์ตี้ของพารามิเตอร์ของฟังก์ชันได้

เช่น

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

ส่งคืนราคาเสนอ

generateBid() จะแสดงผลออบเจ็กต์ที่มีพร็อพเพอร์ตี้ต่อไปนี้

พร็อพเพอร์ตี้ บทบาท
ad ข้อมูลเมตาที่กำหนดเองเกี่ยวกับโฆษณา เช่น ข้อมูลที่ผู้ขายคาดว่าจะได้รับเกี่ยวกับการเสนอราคานี้หรือครีเอทีฟโฆษณานี้ ผู้ขายใช้ข้อมูลนี้ในตรรกะการประมูลและการตัดสินใจ
adCost ค่าตัวเลขที่ใช้ในการส่งต้นทุนการคลิกหรือ Conversion ของผู้ลงโฆษณาที่รายงานจาก generateBid ไปยัง reportWin ความแม่นยำของตัวเลขนี้จำกัดไว้ที่แมนทิสซา 8 บิตและเลขชี้กำลัง 8 บิต โดยจะมีการปัดเศษแบบสุ่ม
adComponents รายการคอมโพเนนต์ที่ไม่บังคับสูงสุด 20 รายการสำหรับโฆษณาที่ประกอบด้วยหลายชิ้น ซึ่งนำมาจากพร็อพเพอร์ตี้ adComponents ของอาร์กิวเมนต์กลุ่มความสนใจที่ส่งไปยัง navigator.joinAdInterestGroup()
allowComponentAuction ค่าบูลีนที่ระบุว่าจะใช้ราคาเสนอในการประมูลคอมโพเนนต์ได้หรือไม่ ค่าเริ่มต้นจะเป็น "false" หากไม่ได้ระบุไว้
bid ราคาเสนอที่เป็นตัวเลขซึ่งจะเข้าร่วมการประมูล ผู้ขายต้องสามารถเปรียบเทียบราคาเสนอจากผู้ซื้อรายต่างๆ ได้ ดังนั้นราคาเสนอจึงต้องอยู่ในหน่วยที่ผู้ขายเลือก (เช่น"USD ต่อพัน") หากราคาเสนอเป็น 0 หรือติดลบ กลุ่มความสนใจนี้จะไม่เข้าร่วมการประมูลของผู้ขายเลย กลไกนี้ช่วยให้ผู้ซื้อใช้กฎของผู้ลงโฆษณาสำหรับตำแหน่งที่โฆษณาอาจแสดงหรือไม่แสดงได้
bidCurrency สกุลเงินสำหรับการเสนอราคาที่ใช้สำหรับการตรวจสอบสกุลเงิน
render พจนานุกรมที่อธิบายครีเอทีฟโฆษณาที่ควรแสดงหากการเสนอราคานี้ชนะการประมูล ซึ่งรวมถึง
  • url: URL ของครีเอทีฟโฆษณา
  • width: ความกว้างของครีเอทีฟโฆษณา ระบบจะจับคู่ขนาดนี้กับการประกาศในกลุ่มความสนใจ และแทนที่ลงในมาโครขนาดโฆษณาที่มีอยู่ใน URL ของครีเอทีฟโฆษณา เมื่อโหลดโฆษณาในเฟรมที่จำกัด เฟรมในของเฟรมที่จำกัด (เช่น ขนาดที่ครีเอทีฟโฆษณามองเห็น) จะถูกตรึงไว้ที่ขนาดนี้ และจะมองไม่เห็นการเปลี่ยนแปลงขนาดเฟรมที่ผู้ฝังทำ
  • height: ความสูงของครีเอทีฟโฆษณา ดูรายละเอียดเพิ่มเติมได้ที่ width

modelingSignals

จำนวนเต็ม 0-4095 (12 บิต) ที่ส่งไปยัง reportWin() โดยมีการเพิ่มสัญญาณรบกวนตามที่อธิบายไว้ในรูปแบบการเพิ่มสัญญาณรบกวนและการจัดกลุ่ม ระบบจะไม่สนใจและจะไม่ส่งค่าที่ไม่ถูกต้อง เช่น ค่าติดลบ ค่าอนันต์ และค่า NaN ระบบจะส่งเฉพาะ 12 บิตล่างสุด


ผู้ซื้อสามารถใช้สัญญาณที่มีอยู่ภายในฟังก์ชัน generateBid() รวมถึงข้อมูลจากข้อมูลผู้ซื้อบุคคลที่หนึ่งที่บันทึกไว้ในเวลาที่สร้างกลุ่มความสนใจใน userBiddingSignals เพื่อหาค่าบางอย่างที่ส่งไปยังฟังก์ชันการรายงานการชนะของผู้ซื้อเพื่อเปิดใช้การฝึกโมเดล ML