เรียกใช้ Worklet พื้นที่เก็บข้อมูลที่ใช้ร่วมกันเพื่อเลือก URL และแสดงผลในเฟรมที่มีการปิดกั้น
Shared Storage API เป็นนโยบายความเป็นส่วนตัว ข้อเสนอแซนด์บ็อกซ์สำหรับจุดประสงค์ทั่วไป พื้นที่เก็บข้อมูลข้ามเว็บไซต์ ซึ่งสนับสนุน Use Case ที่เป็นไปได้ ตัวอย่างหนึ่งคือการควบคุมความถี่ ซึ่งมี ใน Chrome เบต้า 104.0.5086.0 ขึ้นไป
เรียกใช้สคริปต์ Worklet เพื่อเลือก URL จากรายการที่มีให้ โดยอิงตาม URL ที่จัดเก็บไว้ ข้อมูล แล้วแสดงผล URL นั้นในเฟรมที่มีการปิดกั้น การตั้งค่านี้สามารถใช้เพื่อเลือก โฆษณาใหม่หรือเนื้อหาอื่นเมื่อถึงขีดจำกัดความถี่แล้ว
ทดสอบการเลือกครีเอทีฟโฆษณาตามความถี่
หากต้องการทดสอบการเลือกครีเอทีฟโฆษณาตามความถี่ในพื้นที่เก็บข้อมูลที่ใช้ร่วมกันและเฟรมที่มีการปิดกั้น ให้ยืนยันว่าคุณ
ใช้ Chrome 104.0.5086.0 ขึ้นไป เปิดใช้ API ความเป็นส่วนตัวเกี่ยวกับโฆษณาทั้งหมดใน chrome://settings/adPrivacy
นอกจากนี้คุณยังเปิดใช้พื้นที่เก็บข้อมูลที่ใช้ร่วมกันได้ด้วยแฟล็ก --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames
ในบรรทัดคำสั่ง
การทดสอบกับตัวอย่างโค้ด
หากต้องการเลือกและสร้าง URL ที่คลุมเครือ ให้ลงทะเบียนโมดูล Worklet เพื่ออ่าน "แชร์" ข้อมูลพื้นที่เก็บข้อมูล คลาส Worklet จะได้รับรายการ URL สูงสุด 8 รายการ จากนั้น จะแสดงดัชนีของ URL ที่เลือก
เมื่อลูกค้าโทรหา sharedStorage.selectURL()
Worklet
ดำเนินการและแสดงผล URL ที่คลุมเครือเพื่อแสดงผลเป็นเฟรมที่มีการปิดกั้น
สมมติว่าคุณต้องการเลือกโฆษณาหรือเนื้อหาอื่นที่จะแสดงโดยอิงตามความถี่ที่ผู้ใช้เห็นก่อนหน้านี้ โดยคุณสามารถนับจำนวนครั้งที่ผู้ใช้ดูเนื้อหาและจัดเก็บค่าดังกล่าวไว้ในพื้นที่เก็บข้อมูลที่ใช้ร่วมกันได้ เมื่อจัดเก็บแล้ว ค่าในพื้นที่เก็บข้อมูลที่ใช้ร่วมกันจะพร้อมใช้งานในต้นทางต่างๆ
จากนั้นเวิร์กเล็ตพื้นที่เก็บข้อมูลที่ใช้ร่วมกันจะอ่านค่าในพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน แล้วเพิ่มจำนวนตัวนับด้วยมุมมองเพิ่มเติมแต่ละรายการ หากจำนวนยังไม่ถึงขีดจำกัดที่กำหนดไว้ล่วงหน้า เนื้อหาที่คุณต้องการแสดงผลจะถูกส่งคืน (ดัชนี 1
) หากไม่เป็นเช่นนั้น URL เริ่มต้นจะส่งกลับ (ดัชนี 0
)
ในตัวอย่างนี้
creative-selection-by-frequencyjs
โหลดผ่าน iframe ของผู้ผลิตเนื้อหาหรือผู้ลงโฆษณา และเป็นผู้รับผิดชอบ สำหรับโหลดเวิร์กเล็ตพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน และการแสดงผลความทึบแสงที่แสดงผล ลงในเฟรมที่มีการปิดกั้น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: อ่าน ข้อเสนอ เข้าถึงสมุดปกขาว นำเสนอคำถามและเข้าร่วมการสนทนา
- ประกาศเกี่ยวกับ Storage API ที่แชร์: เข้าร่วมหรือดูประกาศที่ผ่านมาในรายชื่ออีเมลของเรา
- การสนับสนุนนักพัฒนาแอป: ถามคำถามและเข้าร่วมการสนทนาใน ที่เก็บการสนับสนุนนักพัฒนาซอฟต์แวร์ของ Privacy Sandbox