บริการเสนอราคาและประมูล (Bidding and Auction หรือ B&A) คือชุดบริการสำหรับผู้ซื้อและผู้ขายโฆษณาที่ทำงานในสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE) เพื่ออำนวยความสะดวกในการประมูล Protected Audience (PA) คู่มือสำหรับนักพัฒนาซอฟต์แวร์นี้อธิบายวิธีที่ผู้ซื้อสามารถผสานรวมกับ B&A PA Auction สำหรับ Chrome
ภาพรวม
หากต้องการเข้าร่วมการประมูลที่ใช้ Protected Audience API กับบริการ B&A ผู้ซื้อจะอัปเดตกลุ่มความสนใจ (IG) เพื่อเพิ่มประสิทธิภาพเพย์โหลดเพื่อลดเวลาในการตอบสนองของการประมูล
ผู้ซื้อกำหนดให้ต้องดำเนินการเพิ่มประสิทธิภาพเพย์โหลดต่อไปนี้
joinAdInterestGroup()งานgenerateBid()งาน
กลุ่มความสนใจสำหรับ B&A
ต่อไปนี้คือตัวอย่างการกำหนดค่ากลุ่มความสนใจสำหรับการประมูล B&A PA ที่ใช้การเพิ่มประสิทธิภาพเพย์โหลด
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 |
ไม่แนะนำ | ใช้แล้ว | ไม่ หากตั้งค่าแฟล็ก omit-user-bidding-signals |
adRenderId ใน ads และ adComponents |
ใช้แล้ว | ไม่ได้ใช้ | หากตั้งค่าสถานะ omit-ads ไว้ adRenderId ใน ads จะใช้ได้เฉพาะใน browserSignals.prevWins ของเพย์โหลด adRenderId ที่กำหนดไว้ใน adComponents จะไม่รวมอยู่ในเพย์โหลดหากไม่ได้ตั้งค่าแฟล็ก |
renderURL ใน ads และ adComponents |
ใช้แล้ว | ใช้แล้ว | ไม่ |
metadata ใน ads และ adComponents |
ไม่ได้ใช้ | ใช้แล้ว | ไม่ |
รหัสการรายงานใน ads |
ใช้แล้ว | ใช้แล้ว | ไม่ |
- ฟิลด์
auctionServerRequestFlagsช่วยให้ตั้งค่าสถานะที่บอกเบราว์เซอร์ให้ละเว้นข้อมูลบางอย่างในเพย์โหลดการประมูล B&A ได้ - คุณกำหนดค่า
userBiddingSignalsในกลุ่มความสนใจได้ แต่ขอแนะนำให้ละเว้นค่าดังกล่าวโดยใช้แฟล็ก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()
ตั้งค่าสถานะคำขอเซิร์ฟเวอร์
ฟิลด์ joinAdInterestGroup() config's auctionServerRequestFlags ยอมรับค่าสถานะต่อไปนี้
| รายงาน | คำอธิบาย |
omit-user-bidding-signals |
โดยแฟล็ก omit-user-bidding-signals จะละเว้นออบเจ็กต์ userBiddingSignals ในเพย์โหลดการประมูล
หากไม่ได้ตั้งค่าสถานะ ค่า |
omit-ads |
แฟล็ก omit-ads จะบอกให้เบราว์เซอร์ละเว้นออบเจ็กต์ ads และ adComponents ในเพย์โหลดการประมูล
หากไม่ได้ตั้งค่า Flag ฟิลด์ เราขอแนะนำอย่างยิ่งให้ผู้ซื้อเลือกใช้ |
ระบบจะจัดการข้อมูลที่ละเว้นโดยการให้ข้อมูลที่เกี่ยวข้องใน trustedBiddingSignals คุณใช้ฟีเจอร์นี้แยกกันได้ และไม่จำเป็นต้องใช้ร่วมกัน
ตัวอย่างการใช้งาน
navigator.joinAdInterestGroup({
auctionServerRequestFlags: ['omit-user-bidding-signals', 'omit-ads'],
});
ตั้งค่ารหัสการแสดงโฆษณา
เราจะละเว้นออบเจ็กต์ ads และ adComponents ของกลุ่มความสนใจเพื่อลดขนาดเพย์โหลดการประมูล B&A และออบเจ็กต์เหล่านี้จะไม่มีอยู่ในฟังก์ชัน generateBid() ที่ทำงานใน Bidding Service
ผู้ซื้อจะเก็บตัวระบุ (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
นอกจากนี้ ยังมีสัญญาณเพิ่มเติมที่ใช้ในการจัดลําดับความสําคัญใน B&A ได้ด้วย ดังนี้
| Signal | คำอธิบาย |
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ที่เชื่อมโยงกับโฆษณาแต่ละรายการ- รหัสการรายงาน
แนวทางหนึ่งที่สามารถใช้ได้คือการใส่ตัวระบุที่ไม่ซ้ำกันในคีย์สัญญาณการเสนอราคาที่เชื่อถือได้ แล้วส่งข้อมูลที่เชื่อมโยงไปยังเซิร์ฟเวอร์เพื่อให้โหลดลงในบริการคีย์/ค่าได้ อย่างไรก็ตาม การติดตั้งใช้งานจริงขึ้นอยู่กับเทคโนโลยีโฆษณา และ 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 วันที่ผ่านมาโดยมีการแก้ไขเพื่อให้แสดงออบเจ็กต์ |
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;
}
หาก generateBid() ไม่แสดงผล buyerReportingId ค่า interestGroupName จะอยู่ใน buyerReportingSignals แทน buyerReportingId
ดูข้อมูลเพิ่มเติมได้ที่คู่มือการรายงานรหัส
ขั้นตอนถัดไป
แหล่งข้อมูลต่อไปนี้พร้อมให้บริการแก่คุณ
ดูข้อมูลเพิ่มเติม
- ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าการประมูล B&A ใน Chrome
- ทดสอบ Protected Audience ด้วย B&A โดยทำตาม Codelab การทดสอบในเครื่องแบบครบวงจร
หากมีคำถาม
- หากมีคำถามเกี่ยวกับบริการการเสนอราคาและการประมูล โปรดเปิดปัญหาในที่เก็บบริการ B&A