เรียกใช้ 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 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 sharedStorage.set('frequency-count', count + 1);
return 1;
}
}
// Register the operation as 'creative-selection-by-frequency'.
register('creative-selection-by-frequency', CreativeSelectionByFrequencyOperation);
กรณีการใช้งาน
ตัวอย่างเหล่านี้เป็นเพียงส่วนหนึ่งของกรณีการใช้งานที่เป็นไปได้สำหรับพื้นที่เก็บข้อมูลที่แชร์ เราจะเพิ่มตัวอย่างอย่างต่อเนื่องเมื่อได้รับความคิดเห็นและค้นพบกรณีการใช้งานใหม่ๆ
การเลือกเนื้อหา
เลือกและแสดงเนื้อหาที่แตกต่างกันในเว็บไซต์ต่างๆ ในเฟรมที่มีการกำหนดเขตตามข้อมูลที่รวบรวมไว้ในพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน เกตเอาต์พุตสำหรับกรณีการใช้งานเหล่านี้คือการเลือก URL
- การหมุนเวียนครีเอทีฟโฆษณา:เก็บข้อมูล เช่น รหัสครีเอทีฟโฆษณา จํานวนการดู และการโต้ตอบของผู้ใช้ เพื่อระบุครีเอทีฟโฆษณาที่ผู้ใช้เห็นในเว็บไซต์ต่างๆ
- การทดสอบ A/B: คุณสามารถกําหนดผู้ใช้ให้อยู่ในกลุ่มทดสอบ จากนั้นจัดเก็บกลุ่มนั้นไว้ในพื้นที่เก็บข้อมูลร่วมกันเพื่อให้เข้าถึงได้ข้ามเว็บไซต์
- ประสบการณ์การใช้งานที่กําหนดเอง: แชร์เนื้อหาและคำกระตุ้นให้ดำเนินการ (Call-To-Action) ที่กําหนดเองตามสถานะการลงทะเบียนของผู้ใช้หรือสถานะอื่นๆ ของผู้ใช้
สร้างรายงานสรุป
รวบรวมข้อมูลด้วยพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน และสร้างรายงานสรุปแบบรวมที่กระจัดกระจาย เกตเอาต์พุตสําหรับ Use Case เหล่านี้คือ Private Aggregation API
- การวัด Unique Reach: ผู้ผลิตเนื้อหาและผู้ลงโฆษณาจํานวนมากต้องการทราบว่ามีคนที่ไม่ซ้ำกันกี่คนที่เห็นเนื้อหาของตน ใช้พื้นที่เก็บข้อมูลที่ใช้ร่วมกันเพื่อบันทึกครั้งแรกที่ผู้ใช้เห็นโฆษณา วิดีโอที่ฝัง หรือสิ่งพิมพ์ของคุณ และป้องกันการนับผู้ใช้รายเดียวกันซ้ำในเว็บไซต์ต่างๆ จากนั้นคุณจะใช้ Private Aggregation API เพื่อแสดงผลรายงานสรุปสำหรับการเข้าถึงได้
- การวัดข้อมูลประชากร: ผู้ผลิตเนื้อหามักต้องการทำความเข้าใจข้อมูลประชากรของกลุ่มเป้าหมาย คุณสามารถใช้พื้นที่เก็บข้อมูลที่ใช้ร่วมกันเพื่อบันทึกข้อมูลประชากรของผู้ใช้ในบริบทที่คุณมี เช่น เว็บไซต์ของบุคคลที่หนึ่ง และใช้การรายงานแบบรวมเพื่อรายงานข้อมูลดังกล่าวในเว็บไซต์อื่นๆ อีกมากมาย เช่น เนื้อหาที่ฝัง
- การวัดความถี่ K+: บางครั้งเรียกว่า "ความถี่ที่มีประสิทธิภาพ" ซึ่งมักจะมีจำนวนการดูขั้นต่ำก่อนที่ผู้ใช้จะจดจำหรือนึกถึงเนื้อหาบางอย่างได้ (มักอยู่ในบริบทของการดูโฆษณา) คุณสามารถใช้พื้นที่เก็บข้อมูลที่ใช้ร่วมกันเพื่อสร้างรายงานเกี่ยวกับผู้ใช้ที่ไม่ซ้ำกันซึ่งเห็นเนื้อหาอย่างน้อย K ครั้ง
มีส่วนร่วมและแชร์ความคิดเห็น
โปรดทราบว่าข้อเสนอ Shared Storage API อยู่ระหว่างการพูดคุยและการพัฒนาอย่างต่อเนื่อง จึงอาจมีการเปลี่ยนแปลง
เรายินดีรับฟังความคิดเห็นของคุณเกี่ยวกับ Shared Storage API
- ข้อเสนอ: ตรวจสอบข้อเสนอโดยละเอียด
- การสนทนา: เข้าร่วมการสนทนาอย่างต่อเนื่องเพื่อถามคำถามและแชร์ข้อมูลเชิงลึก
ติดตามข้อมูลอยู่เสมอ
- รายชื่ออีเมล: สมัครรับอีเมลจากรายชื่ออีเมลของเราเพื่อรับข้อมูลอัปเดตและประกาศล่าสุดเกี่ยวกับ Shared Storage API
หากต้องการความช่วยเหลือ
- การสนับสนุนนักพัฒนาแอป: เชื่อมต่อกับนักพัฒนาแอปคนอื่นๆ และรับคำตอบสำหรับคำถามของคุณในที่เก็บข้อมูลการสนับสนุนนักพัฒนาแอป Privacy Sandbox