รหัสการรายงาน

ดูวิธีการทำงานของรหัสการรายงานในการประมูลที่ใช้ Protected Audience

ภาพรวม

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

รหัสการรายงานช่วยให้คุณรายงานตัวระบุของโฆษณาได้ และยังเปิดใช้ Use Case เช่น ดีล

รหัสการรายงานจะพร้อมใช้งานสำหรับฟังก์ชันผู้ซื้อและผู้ขายของ Protected Audience
ความพร้อมใช้งานของรหัสการรายงาน

รหัสการรายงานมี 3 ประเภท ได้แก่

  • รหัสการรายงานที่เลือกไม่ได้
    • buyerReportingId (สตริง)
    • buyerAndSellerReportingId (สตริง)
  • รหัสการรายงานที่เลือกได้
    • selectableBuyerAndSellerReportingIds (อาร์เรย์สตริง)

รหัสการรายงานจะทํางานแตกต่างกันไป ขึ้นอยู่กับว่ามีการใช้รหัสการรายงานที่เลือกได้หรือไม่ เมื่อใช้รหัสการรายงานที่เลือกไม่ได้เท่านั้น รหัสเหล่านั้นจะใช้งานได้ภายในฟังก์ชันการรายงานเท่านั้น เมื่อใช้รหัสการรายงานที่เลือกได้ พร้อมกับรหัสการรายงานที่เลือกไม่ได้ (หากจําเป็น) รหัสทั้งหมดที่กําหนดจะพร้อมใช้งานใน generateBid() และ scoreAd() ด้วย

รหัสการรายงานที่เลือกไม่ได้

รหัสการรายงานจะพร้อมใช้งานสําหรับฟังก์ชันผู้ซื้อและผู้ขาย Protected Audience
ความพร้อมใช้งานของรหัสการรายงานที่เลือกได้

buyerReportingId และ buyerAndSellerReportingId คือรหัสการรายงานที่เลือกไม่ได้ซึ่งกำหนดไว้ในการกำหนดค่ากลุ่มความสนใจที่จะพร้อมใช้งานในฟังก์ชันการรายงานสำหรับผู้ซื้อและผู้ขาย ฟังก์ชันการรายงานของผู้ซื้อและผู้ขายจะทํางานสําหรับโฆษณาที่ชนะเท่านั้น และฟังก์ชันดังกล่าวจะได้รับรหัสการรายงานที่กําหนดไว้สําหรับโฆษณาที่ชนะ

เมื่อใช้โดยไม่เลือกรหัสการรายงาน ฟังก์ชันการรายงานของผู้ซื้อจะได้รับ buyerReportingId หรือ buyerAndSellerReportingId โดยขึ้นอยู่กับลักษณะการเขียนทับ และฟังก์ชันการรายงานของผู้ขายจะได้รับ buyerAndSellerReportingId หากไม่มีการกำหนด buyerReportingId หรือ buyerAndSellerReportingId ในการกำหนดค่ากลุ่มความสนใจ ฟังก์ชัน reportWin() จะได้รับชื่อกลุ่มความสนใจ (interestGroupName) ของราคาเสนอที่ชนะ

รหัสที่เลือกไม่ได้จะไม่ปรากฏใน generateBid() และ scoreAd() หากไม่ได้ใช้ร่วมกับรหัสการรายงานที่เลือกได้

รหัสการรายงานในกลุ่มความสนใจ

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

navigator.joinAdInterestGroup({
  owner: 'https://buyer.example',
  name: 'example-interest-group',
  ads: [{
    renderUrl: `https://buyer.example/ad.html`,
    // buyerAndSellerReportingId goes to the buyer and seller reporting functions
    buyerAndSellerReportingId: 'bsrid123',
    // buyerReportingId is defined here as an example, but
    // is not used due to the overwrite rules described later
    buyerReportingId: 'brid123',
  }]
});

การรายงานสำหรับผู้ขาย

ในระหว่างระยะการรายงานของผู้ขาย ค่า buyerAndSellerReportingId จะพร้อมใช้งานสำหรับ reportResult() ดังนี้

function reportResult(..., browserSignals, ...) {
  const {
    buyerAndSellerReportingId // 'bsrid123'
  } = browserSignals;

  sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}

ก่อนที่จะมีการใช้รหัสภายใน reportResult() ระบบจะตรวจสอบรหัสเพื่อหาความไม่เป็นระบุตัวบุคคลระดับ k กับเจ้าของกลุ่มความสนใจ, URL สคริปต์การเสนอราคา, URL การนําเสนอ และขนาดโฆษณา (ขนาดโฆษณาจะยกเว้นจากการตรวจสอบนี้จนถึงไตรมาสที่ 1 ปี 2025 เป็นอย่างน้อย) หากไม่ใช่แบบไม่ระบุตัวตนตาม k ฟังก์ชัน reportResult() จะยังคงทํางาน แต่ค่ารหัสการรายงานจะใช้งานไม่ได้ภายในฟังก์ชัน

การรายงานของผู้ซื้อ

reportWin() จะใช้รหัสการรายงานได้ 1 รหัสในช่วงการรายงานสำหรับผู้ซื้อของการประมูล หากมีการกําหนดรหัสการรายงานมากกว่า 1 รายการในกลุ่มความสนใจ ระบบจะใช้กฎการเขียนทับโดยที่ buyerAndSellerReportingId จะเขียนทับ buyerReportingId ดังนี้

  • หากมีการกําหนดทั้ง buyerAndSellerReportingId และ buyerReportingId ระบบจะเขียนทับ buyerReportingId ด้วย buyerAndSellerReportingId และ buyerAndSellerReportingId จะใช้งานได้ภายใน reportWin()
  • หากมีการกําหนดเฉพาะ buyerReportingId ไว้ buyerReportingId จะใช้งานได้
  • หากไม่ได้กำหนด buyerAndSellerReportingId หรือ buyerReportingId ไว้ interestGroupName จะพร้อมใช้งาน
function reportWin(..., browserSignals, ...) {
  const {
    buyerAndSellerReportingId // 'bsrid123'
  } = browserSignals;

  sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}

ระบบจะตรวจสอบรหัสการรายงานที่พร้อมใช้งานภายใน reportWin() เพื่อหาความไม่เป็นส่วนตัวแบบ k-anonymity กับเจ้าของกลุ่มความสนใจ, URL สคริปต์การเสนอราคา, URL การนําเสนอ และขนาดโฆษณา (ระบบจะไม่รวมขนาดโฆษณาในการตรวจสอบนี้จนกว่าจะถึงไตรมาสที่ 1 ปี 2025 เป็นอย่างน้อย) หากไม่ผ่านการตรวจสอบการลบข้อมูลระบุตัวบุคคลแบบ k reportWin() จะยังคงทํางาน แต่ค่ารหัสการรายงานจะใช้งานไม่ได้ภายในฟังก์ชัน

มีเพียง buyerReportingId เท่านั้นที่กำหนด

หากมีเพียง buyerReportingId ที่กำหนดไว้ในการกำหนดค่ากลุ่มความสนใจ ให้ทำดังนี้

navigator.joinAdInterestGroup({
  owner: 'https://buyer.example',
  name: 'example-interest-group',
  ads: [{
    renderUrl: `https://buyer.example/ad.html`,
    buyerReportingId: 'brid123',
  }]
});

จากนั้น buyerReportingId จะพร้อมใช้งานภายใน reportWin() ดังนี้

function reportWin(..., browserSignals, ...) {
  const {
    buyerReportingId, // 'brid123'
  } = browserSignals;
}

ก่อนที่จะพร้อมให้บริการแก่ reportWin() ระบบจะตรวจสอบ buyerReportingId ว่ามีความเป็นส่วนตัวแบบ k-anonymity กับเจ้าของกลุ่มความสนใจ, URL สคริปต์การเสนอราคา, URL การนําเสนอผล และขนาดโฆษณา (ระบบจะไม่รวมขนาดโฆษณาในการตรวจสอบนี้จนกว่าจะถึงไตรมาสที่ 1 ปี 2025 เป็นอย่างน้อย)

มีการกำหนดเฉพาะ buyerAndSellerReportingId

หากมีเพียง buyerAndSellerReportingId ที่กำหนดไว้ในการกำหนดค่ากลุ่มความสนใจ ให้ทำดังนี้

navigator.joinAdInterestGroup({
  owner: 'https://buyer.example',
  name: 'example-interest-group',
  ads: [{
    renderUrl: `https://buyer.example/ad.html`,
    buyerAndSellerReportingId: 'bsrid123',
  }]
});

จากนั้น buyerAndSellerReportingId จะพร้อมใช้งานภายใน reportWin()

function reportWin(..., browserSignals, ...) {
  const {
    buyerAndSellerReportingId, // 'bsrid123'
  } = browserSignals;
}

ก่อนที่จะพร้อมให้บริการแก่ reportWin() ระบบจะตรวจสอบ buyerAndSellerReportingId ว่ามีความเป็นส่วนตัวแบบ k-anonymity กับเจ้าของกลุ่มความสนใจ, URL สคริปต์การเสนอราคา, URL การนําเสนอผล และขนาดโฆษณา (ระบบจะไม่รวมขนาดโฆษณาในการตรวจสอบนี้จนกว่าจะถึงไตรมาสที่ 1 ปี 2025 เป็นอย่างน้อย)

มีการกําหนดทั้ง buyerAndSellerReportingId และ buyerReportingId

หากมีการกําหนดทั้ง buyerAndSellerReportingId และ buyerReportingId ในการกําหนดค่ากลุ่มความสนใจ

navigator.joinAdInterestGroup({
  owner: 'https://buyer.example',
  name: 'example-interest-group',
  ads: [{
    renderUrl: `https://buyer.example/ad.html`,
    buyerReportingId: 'brid123',
    buyerAndSellerReportingId: 'bsrid123',
  }]
});

จากนั้นจะมีเพียง buyerAndSellerReportingId เท่านั้นที่ใช้ได้ภายใน reportWin() เนื่องจากลักษณะการเขียนทับ

function reportWin(..., browserSignals, ...) {
  const {
    buyerAndSellerReportingId, // 'bsrid123'
  } = browserSignals;
}

ก่อนที่จะพร้อมให้บริการแก่ reportWin() ระบบจะตรวจสอบ buyerAndSellerReportingId ว่ามีความเป็นส่วนตัวแบบ k-anonymity กับเจ้าของกลุ่มความสนใจ, URL สคริปต์การเสนอราคา, URL การนําเสนอผล และขนาดโฆษณา (ระบบจะไม่รวมขนาดโฆษณาในการตรวจสอบนี้จนกว่าจะถึงไตรมาสที่ 1 ปี 2025 เป็นอย่างน้อย)

ไม่ได้กำหนด buyerAndSellerReportingId หรือ buyerReportingId

หากไม่ได้กําหนดรหัสการรายงานในการกําหนดค่ากลุ่มความสนใจ ให้ทําดังนี้

navigator.joinAdInterestGroup({
  owner: 'https://buyer.example',
  name: 'example-interest-group',
  ads: [{
    renderUrl: `https://buyer.example/ad.html`,
  }]
});

จากนั้นกลุ่มความสนใจ name จะปรากฏใน reportWin()

function reportWin(..., browserSignals, ...) {
  const {
    interestGroupName, // 'example-interest-group'
  } = browserSignals;
}

ก่อนที่จะพร้อมให้บริการแก่ reportWin() ระบบจะตรวจสอบชื่อกลุ่มความสนใจ (interestGroupName) ว่าเป็นไปตามการลบข้อมูลระบุตัวบุคคลแบบ k-anonymity หรือไม่ โดยเจ้าของกลุ่มความสนใจ, URL สคริปต์การเสนอราคา, URL การนําเสนอผล และขนาดโฆษณา (ระบบจะไม่รวมขนาดโฆษณาไว้ในการตรวจสอบนี้จนกว่าจะถึงไตรมาสที่ 1 ปี 2025 เป็นอย่างน้อย)

รหัสการรายงานที่เลือกได้

รหัสการรายงานจะพร้อมใช้งานสําหรับฟังก์ชันผู้ซื้อและผู้ขาย Protected Audience
ความพร้อมใช้งานของรหัสการรายงานที่มีรหัสการรายงานที่เลือกได้

รหัสการรายงานที่เลือกได้ช่วยให้ผู้ซื้อเลือกรหัสระหว่างการสร้างราคาเสนอได้ และเบราว์เซอร์จะทําให้ค่าที่เลือกพร้อมใช้งานสําหรับ scoreAd() และฟังก์ชันการรายงาน ระบบจะส่งค่า selectableBuyerAndSellerReportingIds ซึ่งเป็นอาร์เรย์สตริงไปยัง generateBid() และผู้ซื้อจะส่งกลับรหัสที่เลือก 1 รายการเป็น selectedBuyerAndSellerReportingId ได้

ฟังก์ชัน generateBid() และ scoreAd() จะทํางานสําหรับโฆษณาแต่ละรายการที่กําหนดไว้ในการกําหนดค่ากลุ่มความสนใจ และรับรหัสการรายงานสําหรับโฆษณาแต่ละรายการ ฟังก์ชันการรายงานของผู้ซื้อและผู้ขายจะทํางานสําหรับโฆษณาที่ชนะเท่านั้น และฟังก์ชันดังกล่าวจะได้รับรหัสการรายงานที่กําหนดไว้สําหรับโฆษณาที่ชนะ

เมื่อใช้รหัสการรายงานที่เลือกไม่ได้ร่วมกับรหัสการรายงานที่เลือกได้ ลักษณะการทํางานของรหัสจะเปลี่ยนไปจากเวิร์กโฟลว์ที่อธิบายไว้ในส่วนก่อนหน้า ซึ่งแตกต่างจากลักษณะการทํางานเริ่มต้นของรหัสการรายงานที่เลือกไม่ได้ซึ่งใช้ได้เฉพาะภายในฟังก์ชันการรายงานเท่านั้น รหัสการรายงานที่เลือกได้จะช่วยให้รหัสการรายงานที่เลือกไม่ได้ใช้งานได้ภายใน generateBid() และ scoreAd() ด้วย

กลุ่มความสนใจ

ช่องรหัสการรายงานที่เลือกได้ - selectableBuyerAndSellerReportingIds - คืออาร์เรย์สตริงที่ผู้ซื้อกําหนดไว้ในกลุ่มความสนใจสําหรับโฆษณา คุณยังกําหนดรหัสการรายงานที่เลือกไม่ได้ควบคู่ไปกับรหัสการรายงานที่เลือกได้ด้วย โดยทําดังนี้

navigator.joinAdInterestGroup({
  owner: 'https://buyer.example',
  name: 'example-interest-group',
  ads: [{
    renderUrl: `https://buyer.example/ad.html`,
    buyerReportingId: 'brid123',
    buyerAndSellerReportingId: 'bsrid123',
    selectableBuyerAndSellerReportingIds: ['sbsrid1', 'sbsrid2', 'sbsrid3']
  }]
});

การสร้างราคาเสนอของผู้ซื้อ

หากมีการกําหนด selectableBuyerAndSellerReportingIds ในการกำหนดค่ากลุ่มความสนใจ selectableBuyerAndSellerReportingIds จะพร้อมใช้งานภายใน generateBid() พร้อมกับรหัสการรายงานอื่นๆ ที่กำหนดไว้

function generateBid(interestGroup, ...) {
  const [{
    buyerReportingId, // 'brid123'
    buyerAndSellerReportingId, // 'bsrid123'
    selectableBuyerAndSellerReportingIds // ['sbsrid1', 'sbsrid2', 'sbsrid3']
  }] = interestGroup.ads;

  return {
    bid: 1,
    render: 'https://buyer.example/ad.html',
    selectedBuyerAndSellerReportingId: 'sbsrid2' // Buyer returns the selected ID
  };
}

ผู้ซื้อสามารถเลือกรหัสใดรหัสหนึ่งจากอาร์เรย์ selectableBuyerAndSellerReportingIds ใน generateBid() และแสดงรหัสที่เลือกเป็น selectedBuyerAndSellerReportingId ระบบจะปฏิเสธราคาเสนอหากค่าที่เลือกไม่ได้อยู่ในอาร์เรย์ selectableBuyerAndSellerReportingIds หากมีการกําหนด selectableBuyerAndSellerReportingIds ในการกำหนดค่ากลุ่มความสนใจ และผู้ซื้อไม่ได้แสดงผล selectedBuyerAndSellerReportingId จาก generateBid() รหัสการรายงานจะเปลี่ยนกลับไปเป็นแบบที่อธิบายไว้สําหรับรหัสการรายงานที่เลือกไม่ได้

ราคาเสนอที่มีค่าที่แสดงผลสําหรับ selectedbuyerAndSellerReportingId จะชนะการประมูลได้ก็ต่อเมื่อselectedbuyerAndSellerReportingIdเป็นค่าที่ไม่ระบุตัวบุคคลแบบ K ร่วมกันกับ buyerAndSellerReportingId (หากมี) buyerReportingId (หากมี) เจ้าของกลุ่มความสนใจ, URL สคริปต์การเสนอราคา, URL การนําเสนอผล และขนาดโฆษณา (ระบบจะไม่รวมขนาดโฆษณาในการตรวจสอบนี้จนกว่าจะถึงไตรมาสที่ 1 ปี 2025 เป็นอย่างน้อย)

การให้คะแนนโฆษณาของผู้ขาย

สําหรับผู้ขาย selectedBuyerAndSellerReportingId ที่ผู้ซื้อส่งคืนจาก generateBid() จะพร้อมใช้งานใน scoreAd() พร้อมกับ buyerAndSellerReportingId หากมีการกําหนดไว้ในการกําหนดค่ากลุ่มความสนใจ

function scoreAd(..., browserSignals, ...) {
  const {
    buyerAndSellerReportingId, // 'bsrid123'
    selectedBuyerAndSellerReportingId, // 'sbsrid2'
  } = browserSignals;

  // ...
}

การรายงานสำหรับผู้ขาย

สําหรับการรายงานของผู้ขาย selectedBuyerAndSellerReportingId ที่ผู้ซื้อส่งคืนจาก generateBid() จะพร้อมใช้งานใน reportResult() พร้อมกับ buyerAndSellerReportingId หากมีการกําหนดไว้ในกลุ่มความสนใจ

function reportResult(..., browserSignals, ...) {
  const {
    buyerAndSellerReportingId, // 'bsrid123'
    selectedBuyerAndSellerReportingId // 'sbsrid2'
  } = browserSignals;
  
  // ...
}

หากมีการกําหนด selectableBuyerAndSellerReportingIds ในการกำหนดค่ากลุ่มความสนใจ และระบบแสดงผล selectedBuyerAndSellerReportingId จาก generateBid() selectedBuyerAndSellerReportingId จะไม่สามารถชนะการประมูลได้ เว้นแต่ selectedBuyerAndSellerReportingId และ buyerAndSellerReportingId (หากมี) จะเป็นไปตามข้อกำหนดของ k-anonymous กับเจ้าของกลุ่มความสนใจ, URL สคริปต์การเสนอราคา, URL การนําเสนอผล และขนาดโฆษณา (ระบบจะไม่รวมขนาดโฆษณาในการตรวจสอบนี้จนกว่าจะถึงไตรมาสที่ 1 ปี 2025 เป็นอย่างน้อย) และระบบจะไม่เรียกใช้ reportResult() สําหรับราคาเสนอนั้น ดังนั้น หากเรียกใช้ reportResult() ด้วยค่าสําหรับ selectedBuyerAndSellerReportingId หมายความว่ารหัสการรายงานผ่านการตรวจสอบการลบข้อมูลระบุตัวบุคคลแบบ k และรหัสการรายงานทั้งหมดที่กําหนดไว้จะพร้อมใช้งานภายใน reportResult()

การรายงานผู้ซื้อ

หากมีการกําหนด selectableBuyerAndSellerReportingIds ในการกำหนดค่ากลุ่มความสนใจ และระบบแสดงผล selectedBuyerAndSellerReportingId จาก generateBid() รหัสการรายงานทั้งหมดที่กําหนดไว้ในการกำหนดค่ากลุ่มความสนใจจะพร้อมใช้งาน โปรดทราบว่ารหัสการรายงานที่ไม่ใช่แบบไม่ระบุตัวตนตาม k จะไม่สามารถชนะการประมูลและ reportWin() จะไม่ทํางานกับราคาเสนอนั้น เช่นเดียวกับการรายงานผู้ขาย

function reportWin(..., browserSignals, ...) {
  const {
    buyerReportingId, // 'brid123'
    buyerAndSellerReportingId, // 'bsrid123'
    selectedBuyerAndSellerReportingId // 'sbsrid2'
  } = browserSignals;

  // ...
}

เขียนทับกฎ

ต่อไปนี้เป็นสรุปกฎการเขียนทับสําหรับทั้งรหัสการรายงานที่เลือกไม่ได้และรหัสการรายงานที่เลือกได้ เบราว์เซอร์จะกำหนดว่าจะใช้ selectableBuyerAndSellerReportingIds, buyerAndSellerReportingId, buyerReportingId หรือชื่อกลุ่มความสนใจใดส่งไปยัง reportWin() โดยพิจารณาจากตรรกะต่อไปนี้

  • หากระบบแสดงผล selectedBuyerAndSellerReportingId จากราคาเสนอ selectedBuyerAndSellerReportingId, buyerAndSellerReportingId (หากกําหนดไว้ในกลุ่มความสนใจ) และ buyerReportingId (หากกําหนดไว้ในกลุ่มความสนใจ) ทั้งหมดจะใช้ได้สําหรับการรายงาน
  • หรือหากมีการกําหนด buyerAndSellerReportingId ไว้ในกลุ่มความสนใจ ก็จะมีเฉพาะ buyerAndSellerReportingId เท่านั้นที่พร้อมสําหรับการรายงาน
  • หรือหากมีการกําหนด buyerReportingId ไว้ในกลุ่มความสนใจ ก็จะมีเฉพาะ buyerReportingId เท่านั้นที่พร้อมสําหรับการรายงาน
  • มิฉะนั้น จะมีเพียงกลุ่มความสนใจ name เท่านั้นที่ใช้รายงานได้

ตารางต่อไปนี้อธิบายลักษณะการเขียนทับ

รหัสการรายงานได้รับการกําหนดไว้ในการกําหนดค่ากลุ่มความสนใจใช่ไหม รหัสการรายงานที่ใช้ได้
selectableBuyerAnd
SellerReportingIds
buyerAndSeller
ReportingId
buyerReportingId reportWin() reportResult()
ใช่ และเลือก
ใน generateBid()
ไม่บังคับ ไม่บังคับ 1) selectedBuyerAnd
SellerReportingIds


2) buyerAndSeller
ReportingId
(หากมีการกำหนด)

3) buyerReportingId (หากมีการกำหนด)
1) selectedBuyerAnd
SellerReportingIds


2) buyerAndSeller
ReportingId
(หากกําหนดไว้)

ไม่ หรือไม่ได้เลือก
ใน generateBid()
มี ละเว้นแล้ว buyerAndSeller
ReportingId
buyerAndSeller
ReportingId
ไม่ หรือไม่ได้เลือก
ใน generateBid()
ไม่ มี buyerReportingId ไม่มี
ไม่ หรือไม่ได้เลือก
ใน generateBid()
ไม่ ไม่ interestGroupName ไม่มี

มีส่วนร่วมและแชร์ความคิดเห็น