ผสานรวมกับ B&A ในฐานะผู้ซื้อ

บริการเสนอราคาและประมูล (B&A) คือชุดบริการสําหรับผู้ซื้อและผู้ขายโฆษณาที่ทํางานในสภาพแวดล้อมการดําเนินการที่เชื่อถือได้ (TEE) เพื่ออำนวยความสะดวกในการประมูล Protected Audience (PA) คู่มือสําหรับนักพัฒนาซอฟต์แวร์นี้จะอธิบายวิธีที่ผู้ซื้อผสานรวมกับการประมูล PA ของ B&A สําหรับ Chrome

ภาพรวม

หากต้องการเข้าร่วมการประมูล Protected Audience ด้วยบริการ B&A ผู้ซื้อต้องอัปเดตกลุ่มความสนใจ (IG) เพื่อเพิ่มประสิทธิภาพเพย์โหลดเพื่อลดเวลาในการตอบสนองในการประมูล

ผู้ซื้อต้องทํางานการเพิ่มประสิทธิภาพเพย์โหลดต่อไปนี้

กลุ่มความสนใจสําหรับ B&A

ต่อไปนี้คือตัวอย่างการกําหนดค่ากลุ่มความสนใจสําหรับการประมูล PA ของ B&A ที่มีการใช้การเพิ่มประสิทธิภาพเพย์โหลด

navigator.joinAdInterestGroup({
  name: 'example-ig',
  owner: 'https://dsp.example',

  // An ID is mapped to each render URL
  ads: [
    {
      renderURL: 'https://dsp.example/ad.html',
      adRenderId: '12345678' // 12 characters max,
      buyerReportingId: 'brid123', // Optional
      buyerAndSellerReportingId: 'bsrid123', // Optional
      selectableBuyerAndSellerReportingId: ['sbsrid123', 'sbsrid456'], // Optional
    },
  ],
  adComponents: [
    {
      renderURL: 'https://dsp.example/ad-component.html',
      adRenderId: 'abcdefgh'
    },
  ],

  // Flags are set to omit data in the B&A auction payload
  auctionServerRequestFlags: ['omit-ads', 'omit-user-bidding-signals'],

  // Data not included in the B&A auction payload can be fetched as trusted signals
  // The following is an example of how the keys could look, but the actual
  // implementation is up to the ad tech
  trustedBiddingSignalsKeys: [
    'exampleUserBiddingSignalsKey',
    'exampleAdRenderIdKey',
    'exampleAdMetadataKey',
    'exampleAdReportingIdKey',
  ],

  // Optionally, interest groups can be prioritized
  priority: 0.0,
});

ความแตกต่างระหว่างการทดสอบ B&A กับการกำหนดค่ากลุ่มความสนใจในอุปกรณ์มีดังนี้

ฟิลด์ B&A IG IG ในอุปกรณ์ รวมอยู่ในเพย์โหลดการประมูล B&A
auctionServerRequestFlags ใช้แล้ว ไม่ได้ใช้ ไม่
userBiddingSignals ไม่แนะนำ ใช้แล้ว ไม่ หากตั้งค่า Flag omit-user-bidding-signals
adRenderId ใน ads และ adComponents ใช้แล้ว ไม่ได้ใช้ หากตั้งค่า Flag omit-ads ไว้ adRenderId ใน ads จะพร้อมใช้งานใน browserSignals.prevWins ของเพย์โหลดเท่านั้น adRenderId ที่กําหนดใน adComponents ไม่ได้รวมอยู่ในเพย์โหลด

หากไม่ได้ตั้งค่า Flag omit-ads ไว้ ฟีเจอร์นี้จะพร้อมใช้งานใน browserSignals.prevWins, interestGroup.adRenderIds และ interestGroup.adComponentRenderIds

renderURL ใน ads และ adComponents ใช้แล้ว ใช้แล้ว ไม่
metadata ใน ads และ adComponents ไม่ได้ใช้ ใช้แล้ว ไม่
รหัสการรายงานใน ads ใช้แล้ว ใช้แล้ว ไม่
  • ช่อง auctionServerRequestFlags อนุญาตให้ตั้งค่า Flag ที่บอกให้เบราว์เซอร์ละเว้นข้อมูลบางอย่างในเพย์โหลดการประมูล B&A
  • คุณกําหนดค่า userBiddingSignals ในกลุ่มความสนใจได้ แต่เราขอแนะนําให้ละเว้นค่าดังกล่าวโดยใช้ Flag omit-user-bidding-signals คุณสามารถระบุสัญญาณที่ละเว้นได้โดยใช้บริการ K/V
  • ระบบจะตั้งค่าช่อง adRenderId พร้อมกับ renderURL ที่เชื่อมโยงกัน แต่มีเพียง adRenderId เท่านั้นที่จะเป็นส่วนหนึ่งของเพย์โหลดการประมูล B&A URL การนําเสนอผลที่แสดงผลจาก generateBid() ในภายหลังระหว่างช่วงเวลาการประมูลต้องตรงกับ URL การนําเสนอผลที่กําหนดไว้ใน IG
  • รหัสการรายงานจะกําหนดไว้ใน IG ของ B&A แต่จะไม่รวมอยู่ในเพย์โหลดการประมูล B&A รหัสการรายงานที่แสดงผลจาก generateBid() ในภายหลังระหว่างช่วงเวลาการประมูลต้องตรงกับ URL การนําเสนอที่กําหนดไว้ใน IG
  • ad.metadata และรหัสการรายงานจะไม่รวมอยู่ในเพย์โหลดการประมูล B&A แต่ข้อมูลดังกล่าวจะพร้อมใช้งานผ่านการใช้งานบริการคีย์/ค่าที่เชื่อถือได้แทน

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

งาน joinAdInterestGroup() รายการ

คุณต้องทํางานต่อไปนี้สําหรับการเรียก joinAdInterestGroup()

ตั้งค่า Flag คำขอเซิร์ฟเวอร์

ฟิลด์ auctionServerRequestFlags ของjoinAdInterestGroup() config ยอมรับ Flag ต่อไปนี้

แจ้ง คำอธิบาย
omit-user-bidding-signals Flag omit-user-bidding-signals จะละเว้นออบเจ็กต์ userBiddingSignals ในเพย์โหลดการประมูล

หากไม่ได้ตั้งค่า Flag ค่า userBiddingSignals ที่กําหนดไว้ในกลุ่มความสนใจจะปรากฏใน generateBid() ของบริการเสนอราคา

omit-ads Flag omit-ads บอกให้เบราว์เซอร์ละเว้นออบเจ็กต์ ads และ adComponents ในเพย์โหลดการประมูล

adRenderId จะอยู่ในพร็อพเพอร์ตี้ prevWins ของ browserSignals

หากไม่ได้ตั้งค่า Flag ไว้ ฟิลด์ adRenderIds และ adComponentRenderIds ในอาร์กิวเมนต์ interestGroup ของ generateBid() จะมีรหัสการแสดงโฆษณาที่เกี่ยวข้อง

เราขอแนะนําอย่างยิ่งให้ผู้ซื้อเลือกใช้การแจ้งว่าไม่เหมาะสม omit-ads ในอนาคต เราอาจเลิกใช้งานการส่งรหัสการแสดงผลและรหัสการแสดงผลของคอมโพเนนต์โฆษณาจากไคลเอ็นต์เพื่อเพิ่มประสิทธิภาพเพย์โหลดต่อไป

ระบบจะจัดการข้อมูลที่ละเว้นโดยแสดงข้อมูลที่เกี่ยวข้องใน trustedBiddingSignals คุณใช้ Flag แต่ละรายการแยกกันได้และไม่จำเป็นต้องใช้ร่วมกัน

ตัวอย่างการใช้งาน

navigator.joinAdInterestGroup({
  auctionServerRequestFlags: ['omit-user-bidding-signals', 'omit-ads'],
});

ตั้งค่ารหัสการแสดงโฆษณา

ระบบจะละเว้นออบเจ็กต์ ads และ adComponents ของกลุ่มความสนใจเพื่อลดขนาดของเพย์โหลดการประมูล B&A ซึ่งทำให้ออบเจ็กต์เหล่านี้ไม่พร้อมใช้งานภายในฟังก์ชัน generateBid() ที่ทำงานในบริการเสนอราคา

ผู้ซื้อจะจัดการตัวระบุ (adRenderId และ adComponentRenderId) ที่เชื่อมโยงกับโฆษณาแต่ละรายการในการกําหนดค่ากลุ่มความสนใจเพื่อจัดการกับข้อมูลโฆษณาที่ขาดหายไป ตัวระบุต้องเป็น DOMString ที่มีความยาวไม่เกิน 12 ไบต์ หากตัวระบุเข้ารหัส Base64 ความยาวต้องไม่เกิน 12 ไบต์

ตัวอย่างกลุ่มความสนใจที่มีรหัสการแสดงโฆษณา

navigator.joinAdInterestGroup({
  ads: [
    {
      renderURL: 'https://dsp.example/ad.html',
      adRenderId: '12345678' // 12 characters max
    },
  ],
  adComponents: [
    {
      renderURL: 'https://dsp.example/ad-component.html',
      adComponentRenderId: 'abcdefgh'
    },
  ],
});

adRenderId ที่เชื่อมโยงกับโฆษณาจะพร้อมใช้งานใน prevWins.browserSignals ของ generateBid()

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

ตั้งค่าลําดับความสําคัญของกลุ่มความสนใจ

Chrome ช่วยให้ผู้ซื้อจัดลําดับความสําคัญของกลุ่มความสนใจได้ หากถึงขีดจํากัดขนาดเพย์โหลดต่อผู้ซื้อที่ผู้ขายกําหนดไว้ ระบบจะใช้ค่าลําดับความสําคัญของกลุ่มความสนใจเพื่อทิ้งกลุ่มความสนใจที่มีลําดับความสําคัญต่ำกว่าสําหรับผู้ซื้อรายเดียวเมื่อสร้างเพย์โหลดการประมูล B&A สำหรับผู้ขาย สําหรับการเลือกกลุ่มความสนใจระหว่างผู้ซื้อรายต่างๆ เบราว์เซอร์จะตัดสินใจตามขนาดของเพย์โหลดที่แปลงเป็นอนุกรม โดยค่าเริ่มต้น ผู้ซื้อแต่ละรายจะได้รับขนาดเท่าๆ กัน โปรดทราบว่าการจัดลําดับความสําคัญจริงจะเกิดขึ้นในเซิร์ฟเวอร์ B&A ไม่ใช่เมื่อสร้างเพย์โหลดคําขอ

ระบบจะคํานวณลําดับความสําคัญ ณ เวลาประมูลโดยใช้เวกเตอร์ลําดับความสําคัญของผู้ซื้อ (priorityVector) และสัญญาณลําดับความสําคัญของผู้ขาย (prioritySignals) ผู้ซื้อสามารถลบล้างสัญญาณลําดับความสําคัญของผู้ขายได้

พร็อพเพอร์ตี้ คำอธิบาย
เวกเตอร์ลําดับความสําคัญ ผู้ซื้อระบุเวกเตอร์เป็นค่าของคีย์ priorityVector จากบริการ K/V
สัญญาณสำคัญ ผู้ขายระบุสัญญาณโดยการตั้งค่า priority_signals ของการกำหนดค่าการประมูล
การลบล้างสัญญาณลําดับความสําคัญ ผู้ซื้อระบุการลบล้างในช่อง priority_signals_overrides ของ PerBuyerConfig ในการกำหนดค่าการประมูล

ในระหว่างการประมูล เบราว์เซอร์จะคํานวณผลคูณจุดแบบเบาบางของคีย์ที่ตรงกันใน priorityVector และ prioritySignals เพื่อหาลําดับความสําคัญ ในแผนภาพต่อไปนี้ ลำดับความสำคัญจะคํานวณโดย (4 * 2) + (3 * -1) ซึ่งลดลงเป็น 8 + -3 ดังนั้นลําดับความสําคัญของกลุ่มความสนใจนี้ ณ เวลาประมูลจึงเป็น 5

คีย์แต่ละรายการในเวกเตอร์ลําดับความสําคัญและออบเจ็กต์สัญญาณลําดับความสําคัญจะคูณกัน จากนั้นจะรวมผลลัพธ์เข้าด้วยกันเพื่อคํานวณลําดับความสําคัญ
รูปที่ 1: การคํานวณลําดับความสําคัญโดยใช้เวกเตอร์ของผู้ซื้อและสัญญาณของผู้ขาย

นอกจากนี้ คุณยังใช้สัญญาณเพิ่มเติมเพื่อจัดลําดับความสําคัญใน B&A ได้ด้วย

สัญญาณ คำอธิบาย
deviceSignals.one ค่าจะเป็น 1 เสมอ และมีประโยชน์สําหรับการเพิ่มค่าคงที่ไปยังผลคูณจุด
deviceSignals.ageInMinutes ค่านี้จะอธิบายอายุของกลุ่มความสนใจ (เวลาที่ผ่านไปนับตั้งแต่มีการเข้าร่วมกลุ่มความสนใจครั้งล่าสุด) เป็นจำนวนเต็มระหว่าง 0 ถึง 43,200 นาที
deviceSignals.ageInMinutesMax60 ค่านี้อธิบายเหมือนกับสัญญาณ ageInMinutes แต่มีค่าสูงสุดที่ 60 หากกลุ่มมีอายุมากกว่า 1 ชั่วโมง ระบบจะแสดงผล 60
deviceSignals.ageInHoursMax24 ค่านี้จะอธิบายอายุของกลุ่มความสนใจเป็นชั่วโมง โดยไม่เกิน 24 ชั่วโมง หากกลุ่มมีอายุมากกว่า 1 วัน ระบบจะแสดงผล 24
deviceSignals.ageInDaysMax30 ค่านี้จะอธิบายอายุของกลุ่มความสนใจเป็นจำนวนวัน โดยสูงสุดไม่เกิน 30 วัน หากกลุ่มมีอายุมากกว่า 30 วัน ระบบจะแสดงผล 30

ดูข้อมูลเพิ่มเติมได้ที่คำอธิบายบน GitHub

ตั้งค่าสัญญาณการเสนอราคาที่เชื่อถือได้

เนื่องจากระบบจะละเว้นข้อมูลบางอย่างจากเพย์โหลดการประมูล B&A คุณจึงสามารถใช้บริการคีย์/ค่าเพื่อระบุข้อมูลที่ละเว้นเป็นสัญญาณการเสนอราคาที่เชื่อถือได้ให้กับฟังก์ชัน generateBid()

บริการ K/V สามารถระบุข้อมูลที่ละเว้นต่อไปนี้ได้

  • userBiddingSignals หากผู้ซื้อใช้
  • metadata ที่เชื่อมโยงกับโฆษณาแต่ละรายการ
  • adRenderId ที่เชื่อมโยงกับโฆษณาแต่ละรายการ
  • รหัสการรายงาน
ระบบสามารถส่งข้อมูลที่ละเว้นจากกลุ่มความสนใจไปยังเซิร์ฟเวอร์การเก็บรวบรวมของผู้ซื้อได้ เซิร์ฟเวอร์การเก็บรวบรวมจะพุชข้อมูลไปยังบริการคีย์/ค่า และภายหลังเบราว์เซอร์จะโหลดข้อมูลเหล่านั้นจากบริการคีย์/ค่า
รูปที่ 2: ตัวอย่างการตั้งค่าสัญญาณที่เชื่อถือได้

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

ตัวอย่างต่อไปนี้อธิบายแนวทางหนึ่งที่นําไปใช้ได้

const ad1RenderURL = 'https://dsp.example/ad-1.html';
const ad2RenderURL = 'https://dsp.example/ad-2.html';
const ad1RenderId = 'render-id-1';
const ad2RenderId = 'render-id-2';
const ad1ReportingId = 'reporting-id-1';
const ad2ReportingId = 'reporting-id-2';

// Generate a unique identifier
const id = crypto.randomUUID();

// Define the keys with the unique ID
const trustedSignalsKeyForIG = `interest-group-${id}`

// Set the keys in the interest group
navigator.joinAdInterestGroup({
  // …
  ads: [
    {
      renderURL: ad1RenderURL,
      adRenderId: ad1RenderId,
      buyerReportingId: ad1ReportingId
    },
    {
      renderURL: ad2RenderURL,
      adRenderId: ad2RenderId,
      buyerReportingId: ad2ReportingId
    },
  ],
  trustedBiddingSignalsKeys: [
    trustedSignalsKeyForIG
  ]
});

// Send the associated data to your server to be loaded into the Key/Value Service
fetch('https://dsp.example/kv/load', {
  method: 'POST',
  body: JSON.stringify({
    id,
    [trustedSignalsKeyForIG]: {
      userBiddingSignals: {
        favoriteColor: 'blue'
      },
      ads: [
        {
          renderURL: ad1RenderURL,
          adRenderId: ad1RenderId,
          buyerReportingId: ad1ReportingId,
          metadata: {
            color: 'red'
          }   
        },
        {
          renderURL: ad2RenderURL,
          adRenderId: ad2RenderId,
          buyerReportingId: ad2ReportingId,
          metadata: {
            color: 'blue'
          }   
        },
      ]
    }
  })
});

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

แสดงสัญญาณการอัปเดตกลุ่มความสนใจจาก K/V หากจําเป็น

ระบบจะใช้คีย์ updateIfOlderThanMs สำหรับสัญญาณที่เชื่อถือได้เพื่ออัปเดตกลุ่มความสนใจก่อนช่วงเวลาตามปกติในแต่ละวัน หากกลุ่มความสนใจไม่ได้เข้าร่วมหรืออัปเดตเป็นระยะเวลานานกว่าค่ามิลลิวินาทีที่แสดงผลสําหรับคีย์ updateIfOlderThanMs ระบบจะอัปเดตกลุ่มความสนใจด้วยกลไก updateURL โปรดทราบว่า Chrome จะไม่อัปเดตกลุ่มความสนใจบ่อยกว่า 1 ครั้งในทุกๆ 10 นาที

หากการประมูล B&A แสดงโฆษณาที่ชนะซึ่งไม่ตรงกับโฆษณาใดโฆษณาหนึ่งในกลุ่มความสนใจที่จัดเก็บไว้ในเบราว์เซอร์ เบราว์เซอร์จะประมูลไม่สําเร็จ กลไก updateIfOlderThanMs อาจมีประโยชน์ในการช่วยให้มั่นใจว่าเบราว์เซอร์และการประมูล B&A ตกลงกันเรื่องชุดโฆษณาในกลุ่มความสนใจ

โปรดไปที่คำอธิบายเพื่อดูข้อมูลเพิ่มเติม

งาน generateBid() รายการ

คุณต้องทํางานต่อไปนี้สําหรับการเรียก generateBid()

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

ออบเจ็กต์ browserSignals ที่ส่งไปยังการเรียกใช้ B&A generateBid() มีลักษณะดังต่อไปนี้

{
  topWindowHostname: 'advertiser.example',
  seller: 'https://ssp.example',
  topLevelSeller: 'https://ssp-top.example',
  joinCount: 5,
  bidCount: 24,
  recency: 1684134092,

  // prevWins is [timeInSeconds, adRenderId]
  prevWins: [
    [9342, 'render-id-1'],
    [1314521, 'render-id-2']
  ],

  // Compiled WebAssembly code
  wasmHelper: WebAssembly.Module

  // Data-Version value from K/V response, if available
  dataVersion: 1,
}

พร็อพเพอร์ตี้ที่แก้ไขหรือใหม่ต่อไปนี้พร้อมใช้งานใน browserSignals

พร็อพเพอร์ตี้ คำอธิบาย
prevWins prevWins คืออาร์เรย์ของทูเพลตเวลาและโฆษณา เวลาแสดงถึงจำนวนวินาทีที่ผ่านไปนับตั้งแต่โฆษณาที่เกี่ยวข้องได้ช่วงพักโฆษณาก่อนหน้าในช่วง 30 วันที่ผ่านมา

มีการแก้ไขให้แสดง adRenderId แทนออบเจ็กต์ ad

wasmHelper ออบเจ็กต์ที่คอมไพล์แล้วของโค้ดที่มาจาก biddingWasmHelperURL
dataVersion เซิร์ฟเวอร์ที่เชื่อถือได้อาจระบุส่วนหัวการตอบกลับ Data-Version แบบตัวเลขซึ่งจะพร้อมใช้งานใน generateBid()

อ่านคำอธิบายใน GitHub เพื่อดูข้อมูลเพิ่มเติม

แสดง URL การนําเสนอจาก generateBid()

เนื่องจากไม่มีออบเจ็กต์ ads ในเพย์โหลดการประมูล B&A จึงต้องสร้าง URL การนําเสนอผลที่แสดงผลจาก generateBid() ขึ้นมาใหม่ วิธีการสร้าง URL การนําเสนออีกครั้งจะขึ้นอยู่กับการติดตั้งใช้งานของคุณ และ URL ที่แสดงผลต้องตรงกับ URL การนําเสนอที่กําหนดไว้ในกลุ่มความสนใจ

แนวทางหนึ่งที่อาจทำได้คือ ดูแลรักษา URL หลัก และป้อนข้อมูลจาก interestGroup และ trustedBiddingSignals ลงในเทมเพลต

ในตัวอย่างนี้ เรากําหนดโฆษณา 4 รายการตามสีและผลิตภัณฑ์ ดังนี้

await navigator.joinAdInterestGroup({
  ads: [
    { renderURL: 'https://dsp.example/red-shirt-ad.html', adRenderId: 'arid1'},
    { renderURL: 'https://dsp.example/blue-shirt-ad.html', adRenderId: 'arid2'},
    { renderURL: 'https://dsp.example/red-pants-ad.html', adRenderId: 'arid3'},
    { renderURL: 'https://dsp.example/blue-pants-ad.html', adRenderId: 'arid4'},
  ],
  trustedBiddingSignalKeys: [
    'userBiddingSignals-someUniqueId',
    // ...and more
  ]
})

จากนั้นเราจะส่งสีและข้อมูลผลิตภัณฑ์ที่ผู้ใช้ชื่นชอบเพื่อโหลดลงในบริการคีย์/ค่า

fetch('https://dsp.example/kv/load', {
  body: JSON.stringify({
    'userBiddingSignals-someUniqueId': {
      favoriteColor: 'blue',
      favoriteProduct: 'shirt'
    }
  })
})

ในภายหลังเมื่อการประมูลเริ่มขึ้น สัญญาณการเสนอราคาที่เชื่อถือได้จะพร้อมใช้งานใน generateBid() และสามารถใช้ข้อมูลดังกล่าวเพื่อสร้าง URL ขึ้นมาใหม่ได้ ดังนี้

function generateBid(..., trustedBiddingSignals, browserSignals) {
  const { userBiddingSignals } = trustedBiddingSignals
  const { favoriteColor, favoriteProduct } = userBiddingSignals

  return {
    bid: 1,
    render: `https://dsp.example/${favoriteColor}-${favoriteProduct}-ad.html`
  }
}

แสดงรหัสการรายงานจาก generateBid()

เนื่องจากรหัสการรายงานไม่ได้รวมอยู่ในเพย์โหลดการประมูล B&A generateBid() จึงจะใช้รหัสได้ผ่านสัญญาณการเสนอราคาที่เชื่อถือได้ เมื่อระบุรหัสการรายงานที่จะใช้แล้ว ระบบจะแสดงรหัสการรายงานที่เลือกจาก generateBid() รหัสที่แสดงผลต้องตรงกับรหัสที่กําหนดไว้ในกลุ่มความสนใจ

ในตัวอย่างนี้ ระบบเลือกโฆษณา 1 และแสดงรหัสการแสดงผลที่เกี่ยวข้องจาก generateBid()

generateBid(..., trustedBiddingSignals, ) {
  const { ad1ReportingId, ad2reportingId } = trustedBiddingSignals;
  // ...
  return {
    bid: 1,
    render: 'https://dsp.example/ad-1.html'
    buyerReportingId: ad1reportingId
  }
}

รหัสการรายงานที่ส่งคืนจะพร้อมใช้งานใน reportWin() ถึง buyerReportingSignals

reportWin(..., buyerReportingSignals) {
  const { buyerReportingId } = buyerReportingSignals;
}

หาก buyerReportingId ไม่ได้แสดงผลจาก generateBid() ค่า interestGroupName จะแสดงใน buyerReportingSignals แทน buyerReportingId

ดูข้อมูลเพิ่มเติมได้ที่คู่มือเกี่ยวกับรหัสการรายงาน

ขั้นตอนถัดไป

แหล่งข้อมูลต่อไปนี้มีให้คุณ

ดูข้อมูลเพิ่มเติม

หากมีคำถาม