เรียกใช้ Worklet พื้นที่เก็บข้อมูลที่ใช้ร่วมกันเพื่อเลือก URL และแสดงผลในเฟรมที่มีการปิดกั้น
Shared Storage API เป็นข้อเสนอ Privacy Sandbox สำหรับพื้นที่เก็บข้อมูลข้ามเว็บไซต์สำหรับวัตถุประสงค์ทั่วไป ซึ่งรองรับ Use Case ที่เป็นไปได้หลายกรณี เช่น การควบคุมความถี่ ซึ่งพร้อมให้ ทดสอบใน Chrome เบต้า 104.0.5086.0 ขึ้นไป
เรียกใช้สคริปต์ Worklet เพื่อเลือก URL จากรายการที่ให้ไว้โดยอิงตามข้อมูลที่จัดเก็บไว้ จากนั้นแสดงผล URL นั้นในเฟรมที่มีการปิดกั้น ซึ่งคุณสามารถใช้เพื่อเลือกโฆษณาใหม่หรือเนื้อหาอื่นๆ เมื่อถึงขีดจำกัดความถี่แล้ว
ทดสอบการเลือกครีเอทีฟโฆษณาตามความถี่
หากต้องการทดสอบการเลือกครีเอทีฟโฆษณาตามความถี่ด้วยพื้นที่เก็บข้อมูลที่ใช้ร่วมกันและเฟรมที่มีการปิดกั้น ให้ตรวจสอบว่าคุณใช้ Chrome 104.0.5086.0 ขึ้นไป จากนั้นเปิดใช้แฟล็กการทดสอบ Privacy Sandbox Ads API ที่ chrome://flags/#privacy-sandbox-ads-apis
คุณยังเปิดใช้พื้นที่เก็บข้อมูลที่ใช้ร่วมกันด้วยแฟล็ก --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames
ในบรรทัดคำสั่งได้ด้วย
การทดสอบกับตัวอย่างโค้ด
หากต้องการเลือกและสร้าง URL แบบทึบ ให้ลงทะเบียนโมดูล Worklet เพื่ออ่านข้อมูลพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน คลาส Worklet จะได้รับรายการ URL สูงสุด 8 รายการ จากนั้นจะแสดงผลดัชนีของ URL ที่เลือก
เมื่อไคลเอ็นต์เรียกใช้ sharedStorage.selectURL()
เวิร์กเลตจะดำเนินการและแสดงผล URL ที่ทึบแสงเพื่อแสดงผลในเฟรมที่มีการปิดกั้น
สมมติว่าคุณต้องการเลือกโฆษณาหรือเนื้อหาอื่นที่จะแสดงโดยพิจารณาจากความถี่ของการแสดงโฆษณาหรือเนื้อหาก่อนหน้านี้ คุณสามารถนับจำนวนครั้งที่ผู้ใช้เห็นเนื้อหา แล้วเก็บค่านั้นในพื้นที่เก็บข้อมูลที่ใช้ร่วมกันได้ เมื่อจัดเก็บแล้ว ค่าในพื้นที่เก็บข้อมูลที่ใช้ร่วมกันจะพร้อมให้คุณใช้งานในต้นทางต่างๆ
จากนั้น Worklet พื้นที่เก็บข้อมูลที่ใช้ร่วมกันจะอ่านค่าในพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน และเพิ่มตัวนับเมื่อมีมุมมองเพิ่มเติมแต่ละรายการ หากจำนวนยังไม่ถึงขีดจำกัดที่กำหนดไว้ล่วงหน้า ระบบจะแสดงผลเนื้อหาที่คุณต้องการแสดงผล (ดัชนี 1
) ไม่เช่นนั้น ระบบจะแสดงผล URL เริ่มต้น (ดัชนี 0
)
ในตัวอย่างนี้
creative-selection-by-frequencyjs
โหลดผ่าน iframe ของผู้ผลิตเนื้อหาหรือผู้ลงโฆษณา และมีหน้าที่รับผิดชอบในการโหลด Worklet พื้นที่เก็บข้อมูลที่ใช้ร่วมกัน และแสดงผลแหล่งที่มาทึบแสงที่ส่งกลับมาลงในเฟรมที่มีการปิดกั้นcreative-selection-by-frequency-worklet.js
คือเวิร์กเล็ตพื้นที่เก็บข้อมูลที่ใช้ร่วมกันที่อ่านจำนวนความถี่ เพื่อกำหนดว่า URL ใดจะแสดงสำหรับเนื้อหาหรือครีเอทีฟโฆษณา
creative-selection-by-frequency.js
// The first URL is the default content or ad to be rendered when the frequency limits reached.
const CONTENT_URLS = [
{ url: `https://${contentProducerUrl}/default-content.html` },
{ url: `https://${contentProducerUrl}/example-content.html` },
];
async function injectAd() {
// Load the worklet module.
await window.sharedStorage.worklet.addModule('creative-selection-by-frequency-worklet.js');
// Set the initial frequency count
window.sharedStorage.set('frequency-count', 0, {
ignoreIfPresent: true,
});
// Run the URL selection operation to choose an ad based on the frequency count in shared storage.
const fencedFrameConfig = await window.sharedStorage.selectURL('creative-selection-by-frequency', CONTENT_URLS, {
resolveToConfig: true
});
// Render the opaque URL into a fenced frame
document.getElementById('content-slot').config = fencedFrameConfig;
}
injectAd();
creative-selection-by-frequency-worklet.js
const FREQUENCY_LIMIT = 5;
class CreativeSelectionByFrequencyOperation {
async run(urls, data) {
// Read the current frequency limit in shared storage
const count = parseInt(await this.sharedStorage.get('frequency-count'));
// Check if the frequency limit has been reached.
if (count === FREQUENCY_LIMIT) {
console.log('Frequency limit has been reached, and the default content will be rendered.');
return 0;
}
// Set the new frequency count in shared storage
await this.sharedStorage.set('frequency-count', count + 1);
return 1;
}
}
// Register the operation as 'creative-selection-by-frequency'.
register('creative-selection-by-frequency', CreativeSelectionByFrequencyOperation);
Use Case
นี่เป็นเพียงตัวอย่างกรณีการใช้งานที่เป็นไปได้ของพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน เราจะเพิ่มตัวอย่างต่อไปเมื่อเราได้รับความคิดเห็นและพบกรณีการใช้งานใหม่ๆ
การเลือกเนื้อหา
เลือกและแสดงเนื้อหาที่แตกต่างกันบนเว็บไซต์ต่างๆ ในเฟรมที่มีการปิดกั้นโดยอิงตามข้อมูลที่รวบรวมในพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน ประตูเอาต์พุตสำหรับ Use Case เหล่านี้คือการเลือก URL
- การหมุนเวียนโฆษณา: จัดเก็บข้อมูล เช่น รหัสครีเอทีฟโฆษณา ยอดดู และการโต้ตอบของผู้ใช้ เพื่อกำหนดว่าผู้ใช้จะเห็นครีเอทีฟโฆษณาใดในเว็บไซต์ต่างๆ
- การทดสอบ A/B: คุณสามารถกำหนดผู้ใช้ให้กับกลุ่มทดสอบ แล้วจัดเก็บกลุ่มนั้นไว้ในพื้นที่เก็บข้อมูลที่ใช้ร่วมกันเพื่อให้เข้าถึงได้แบบข้ามเว็บไซต์
- ประสบการณ์ของผู้ใช้ที่กําหนดเอง: แชร์เนื้อหาที่กําหนดเองและคำกระตุ้นให้ดำเนินการ (Call-To-Action) ตามสถานะการลงทะเบียนของผู้ใช้หรือสถานะอื่นๆ ของผู้ใช้
สร้างรายงานสรุป
เก็บข้อมูลด้วยพื้นที่เก็บข้อมูลที่ใช้ร่วมกันและสร้างรายงานสรุปแบบรวมที่มีเสียงดังรบกวน ประตูเอาต์พุตสำหรับกรณีการใช้งานเหล่านี้คือ Private Aggregation API
- การวัด Unique Reach: ผู้ผลิตเนื้อหาและผู้ลงโฆษณาหลายรายต้องการทราบจำนวนคนที่ไม่ซ้ำกันที่ดูเนื้อหาของตน ใช้พื้นที่เก็บข้อมูลที่ใช้ร่วมกันเพื่อบันทึกครั้งแรกที่ผู้ใช้เห็นโฆษณา วิดีโอที่ฝัง หรือสื่อเผยแพร่ของคุณ และป้องกันการนับผู้ใช้รายเดียวกันนี้ในเว็บไซต์ต่างๆ ซ้ำ จากนั้นคุณจะใช้ Private Aggregation API เพื่อสร้างรายงานสรุปการเข้าถึงได้
- การวัดข้อมูลประชากร: ผู้ผลิตเนื้อหามักต้องการทําความเข้าใจข้อมูลประชากรของกลุ่มเป้าหมาย คุณสามารถใช้พื้นที่เก็บข้อมูลที่ใช้ร่วมกันเพื่อบันทึกข้อมูลประชากรของผู้ใช้ในบริบทที่คุณมี เช่น เว็บไซต์ของบุคคลที่หนึ่ง และใช้การรายงานแบบรวมเพื่อรายงานเกี่ยวกับข้อมูลดังกล่าวในเว็บไซต์อื่นๆ จำนวนมาก เช่น เนื้อหาที่ฝัง
- การวัดความถี่ K+: บางครั้งเรียกว่า "ความถี่ที่มีประสิทธิภาพ" มักจะมีจํานวนการดูขั้นต่ำก่อนที่ผู้ใช้จะจดจำหรือจำเนื้อหาบางอย่างได้ (มักจะอยู่ในบริบทของการดูโฆษณา) คุณสามารถใช้พื้นที่เก็บข้อมูลที่ใช้ร่วมกันเพื่อสร้างรายงาน ของผู้ใช้ที่ไม่ซ้ำที่เห็นเนื้อหาอย่างน้อย K ครั้ง
มีส่วนร่วมและแชร์ความคิดเห็น
ข้อเสนอพื้นที่เก็บข้อมูลที่ใช้ร่วมกันอยู่ระหว่างการหารือและอาจมีการเปลี่ยนแปลงในอนาคต หากคุณลองใช้ API นี้แล้วมีความคิดเห็น เรายินดีรับฟัง
- GitHub: อ่านข้อเสนอ ตั้งคำถามและร่วมอภิปราย
- ประกาศเกี่ยวกับพื้นที่เก็บข้อมูลที่ใช้ร่วมกันของ API: เข้าร่วมหรือดูประกาศที่ผ่านมาในรายชื่ออีเมล
- การสนับสนุนนักพัฒนาแอป: ถามคำถามและเข้าร่วมการสนทนาในที่เก็บการสนับสนุนนักพัฒนาแอป Privacy Sandbox