เอกสารนี้เป็นคู่มือเริ่มใช้งานฉบับย่อสำหรับการใช้พื้นที่เก็บข้อมูลที่ใช้ร่วมกันและแบบส่วนตัว การรวม คุณจะต้องเข้าใจเกี่ยวกับ API ทั้ง 2 รายการเนื่องจากพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน และจัดเก็บค่าดังกล่าว และ Private Aggregation จะสร้างรายงานที่รวบรวมได้
กลุ่มเป้าหมาย: ผู้ให้บริการเทคโนโลยีโฆษณาและผู้ให้บริการการวัดผล
ลองใช้
ลองใช้การสาธิตแบบสด ทำตามขั้นตอน ในวิธีการสาธิตเพื่อเปิดใช้ Privacy Sandbox API กำลังเปิด Chrome เครื่องมือสำหรับนักพัฒนาเว็บช่วยให้คุณเห็นภาพผลลัพธ์ของกรณีการใช้งานต่างๆ Use Case ในการสาธิต
- การรวมข้อมูลส่วนบุคคล
- การวัด Unique Reach
- การวัดข้อมูลประชากร
- การวัดความถี่ K+
- การใช้งานทั่วไป
- วัดเหตุการณ์การวางเมาส์เหนือภายในเฟรมที่มีการปิดกั้น
- การนำทางระดับบนสุด
- การควบคุมตำแหน่งที่บุคคลที่สามสามารถเขียนได้
วิธีดูพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน
หากต้องการดูข้อมูลที่จัดเก็บไว้ในพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน ให้ใช้ Chrome DevTools ข้อมูลที่จัดเก็บสามารถ
ใน Application -> Shared Storage
ดูรายงานสำหรับการรวมข้อมูลแบบส่วนตัว
หากต้องการดูรายงานที่รวบรวมได้ที่ส่งไป ให้ไปที่
chrome://private-aggregation-internals
เมื่อเปิดใช้โหมดแก้ไขข้อบกพร่อง รายงาน
ทันที (ไม่ล่าช้า) ไปยัง
[[YOUR_ORIGIN]]/.well-known/private-aggregation/debug/report-shared-storage
พร้อมด้วยรายงานแบบล่าช้าที่จะส่งไปยัง
[[YOUR_ORIGIN]]/.well-known/private-aggregation/report-shared-storage
หากต้องการเปิดใช้การแก้ไขข้อบกพร่อง โปรดทำตามวิธีการในการแก้ไขข้อบกพร่อง
Shared Storage API
เพื่อป้องกันการติดตามข้ามเว็บไซต์ เบราว์เซอร์ได้เริ่มแบ่งพาร์ติชันโฆษณาทุกรูปแบบ พื้นที่เก็บข้อมูล รวมถึงที่จัดเก็บในตัวเครื่อง คุกกี้ และอื่นๆ แต่ก็มีกรณีการใช้งาน เมื่อต้องใช้พื้นที่เก็บข้อมูลที่ไม่ได้แบ่งพาร์ติชัน Shared Storage API มี สิทธิ์การเขียนแบบไม่จำกัดในเว็บไซต์ระดับบนสุดต่างๆ พร้อมการรักษาความเป็นส่วนตัว สิทธิ์การอ่าน
พื้นที่เก็บข้อมูลที่ใช้ร่วมกันจำกัดเฉพาะต้นทางบริบท (การเรียก
sharedStorage
)
พื้นที่เก็บข้อมูลที่ใช้ร่วมกันมีขีดจำกัดความจุต่อต้นทาง โดยแต่ละรายการจำกัดไว้ที่ จำนวนอักขระสูงสุด หากถึงขีดจำกัดแล้ว จะป้อนข้อมูลเพิ่มเติมไม่ได้ ที่จัดเก็บไว้ ขีดจำกัดของพื้นที่เก็บข้อมูลระบุไว้ในพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน คำอธิบาย
การเรียกใช้พื้นที่เก็บข้อมูลที่ใช้ร่วมกัน
เทคโนโลยีโฆษณาสามารถเขียนไปยังพื้นที่เก็บข้อมูลที่ใช้ร่วมกันโดยใช้ JavaScript หรือส่วนหัวการตอบกลับ การอ่านจากพื้นที่เก็บข้อมูลที่ใช้ร่วมกันจะเกิดขึ้นภายใน JavaScript ที่แยกต่างหากเท่านั้น ที่เรียกว่าเวิร์กเล็ต
การใช้ JavaScript เทคโนโลยีโฆษณาจะใช้ฟังก์ชันที่เจาะจงของพื้นที่เก็บข้อมูลที่ใช้ร่วมกันได้ เช่น การตั้งค่า การเพิ่ม และลบค่านอก JavaScript Worklet อย่างไรก็ตาม ฟังก์ชันต่างๆ เช่น การอ่านพื้นที่เก็บข้อมูลที่ใช้ร่วมกันและการดำเนินการ การรวมแบบส่วนตัวต้องทำผ่านเวิร์กเล็ต JavaScript สามารถดูเมธอดที่ใช้ได้นอกเวิร์กเล็ต JavaScript ได้ใน แพลตฟอร์ม API ที่เสนอ - ภายนอก Worklet
ดูวิธีการที่ใช้ใน Worklet ระหว่างการดำเนินการได้ใน แพลตฟอร์มของ API ที่เสนอ - ใน Worklet
การใช้ส่วนหัวการตอบกลับ
เช่นเดียวกับ JavaScript มีเฉพาะฟังก์ชันเฉพาะ เช่น การตั้งค่า การเพิ่มต่อท้าย และลบค่าในพื้นที่เก็บข้อมูลที่ใช้ร่วมกันได้โดยใช้ส่วนหัวการตอบกลับ ถึง ทำงานกับพื้นที่เก็บข้อมูลที่ใช้ร่วมกันในส่วนหัวการตอบกลับ
Shared-Storage-Writable: ?1
จะต้องรวมอยู่ในส่วนหัวของคำขอด้วยหากต้องการเริ่มคำขอจากไคลเอ็นต์ ให้เรียกใช้โค้ดต่อไปนี้ โดยขึ้นอยู่กับ วิธีการที่คุณเลือก:
- กำลังใช้
fetch()
fetch("https://a.example/path/for/updates", {sharedStorageWritable: true});
- การใช้แท็ก
iframe
หรือimg
<iframe src="https://a.example/path/for/updates" sharedstoragewritable></iframe>
- การใช้แอตทริบิวต์ IDL กับแท็ก
iframe
หรือimg
let iframe = document.getElementById("my-iframe"); iframe.sharedStorageWritable = true; iframe.src = "https://a.example/path/for/updates";
- กำลังใช้
ดูข้อมูลเพิ่มเติมได้ในพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน: การตอบกลับ ส่วนหัว
กำลังเขียนไปยังพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน
หากต้องการเขียนไปยังพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน ให้เรียกใช้ sharedStorage.set()
จากภายในหรือภายนอก
Worklet JavaScript หากเรียกใช้จากภายนอก Worklet จะมีการเขียนข้อมูลไปยัง
ต้นทางของบริบทการท่องเว็บที่มีการเรียก หากโทรจาก
ภายในเวิร์กเล็ต ข้อมูลจะถูกเขียนไปยังต้นทางของบริบทในการเรียกดู
ที่โหลด Worklet คีย์ที่ตั้งค่ามีวันที่หมดอายุที่ 30
วันนับจากการอัปเดตล่าสุด
ช่อง ignoreIfPresent
ไม่บังคับ หากมีและตั้งค่าเป็น true
คีย์
จะไม่อัปเดตหากมีอยู่แล้ว คีย์หมดอายุเป็น 30 วันนับจาก
จะเรียก set()
แม้ว่าคีย์จะไม่อัปเดตก็ตาม
หากมีการเข้าถึงพื้นที่เก็บข้อมูลที่ใช้ร่วมกันหลายครั้งในการโหลดหน้าเดียวกันโดยใช้
ระบบจะเขียนทับค่าของคีย์ เป็นความคิดที่ดีที่จะใช้
sharedStorage.append()
หากคีย์ต้องคงค่าก่อนหน้าไว้
การใช้ JavaScript
ภายนอก Worklet:
window.sharedStorage.set('myKey', 'myValue1', { ignoreIfPresent: true }); // Shared Storage: {'myKey': 'myValue1'} window.sharedStorage.set('myKey', 'myValue2', { ignoreIfPresent: true }); // Shared Storage: {'myKey': 'myValue1'} window.sharedStorage.set('myKey', 'myValue2', { ignoreIfPresent: false }); // Shared Storage: {'myKey': 'myValue2'}
ในทำนองเดียวกัน ภายใน Worklet
sharedStorage.set('myKey', 'myValue1', { ignoreIfPresent: true });
การใช้ส่วนหัวการตอบกลับ
นอกจากนี้คุณยังเขียนไปยังพื้นที่เก็บข้อมูลที่ใช้ร่วมกันได้โดยใช้ส่วนหัวการตอบกลับ โดยใช้
Shared-Storage-Write
ในส่วนหัวการตอบกลับพร้อมด้วยข้อมูลต่อไปนี้ คำสั่ง:Shared-Storage-Write : set;key="myKey";value="myValue";ignore_if_present
Shared-Storage-Write : set;key="myKey";value="myValue";ignore_if_present=?0
โดยคั่นแต่ละรายการด้วยคอมมาและรวม
set
,append
เข้าด้วยกันได้delete
และclear
Shared-Storage-Write : set;key="hello";value="world";ignore_if_present, set;key="good";value="bye"
การใส่ค่าต่อท้าย
คุณเพิ่มค่าต่อท้ายคีย์ที่มีอยู่ได้โดยใช้วิธีการต่อท้าย หากคีย์
ไม่มีอยู่ การเรียกใช้ append()
จะสร้างคีย์และตั้งค่า สิ่งนี้สามารถ
ได้โดยใช้ JavaScript หรือส่วนหัวการตอบกลับ
การใช้ JavaScript
หากต้องการอัปเดตค่าของคีย์ที่มีอยู่ ให้ใช้
sharedStorage.append()
จาก ทั้งภายในและภายนอก Workletwindow.sharedStorage.append('myKey', 'myValue1'); // Shared Storage: {'myKey': 'myValue1'} window.sharedStorage.append('myKey', 'myValue2'); // Shared Storage: {'myKey': 'myValue1myValue2'} window.sharedStorage.append('anotherKey', 'hello'); // Shared Storage: {'myKey': 'myValue1myValue2', 'anotherKey': 'hello'}
วิธีการต่อท้ายภายในเวิร์กเล็ต
sharedStorage.append('myKey', 'myValue1');
การใช้ส่วนหัวการตอบกลับ
เช่นเดียวกับการตั้งค่าในพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน คุณสามารถใช้
Shared-Storage-Write
ในส่วนหัวการตอบกลับเพื่อส่งในคู่คีย์-ค่าShared-Storage-Write : append;key="myKey";value="myValue2"
กำลังอ่านจากพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน
คุณจะอ่านจากพื้นที่เก็บข้อมูลที่ใช้ร่วมกันได้จากใน Worklet เท่านั้น
await sharedStorage.get('mykey');
ต้นทางของบริบทการท่องเว็บที่โหลดโมดูล Worklet กำหนดว่าจะอ่านพื้นที่เก็บข้อมูลที่ใช้ร่วมกันของใคร
กำลังลบจากพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน
คุณสามารถลบออกจากพื้นที่เก็บข้อมูลที่ใช้ร่วมกันได้โดยใช้ JavaScript จากภายใน
หรือนอก Worklet หรือใช้ส่วนหัวการตอบกลับกับ delete()
เพื่อลบ
ทุกคีย์พร้อมกัน ให้ใช้ clear()
จากคีย์ใดคีย์หนึ่ง
การใช้ JavaScript
หากต้องการลบพื้นที่เก็บข้อมูลที่ใช้ร่วมกันจากภายนอก Worklet ให้ทำดังนี้
window.sharedStorage.delete('myKey');
หากต้องการลบพื้นที่เก็บข้อมูลที่ใช้ร่วมกันจากภายใน Worklet ให้ทำดังนี้
sharedStorage.delete('myKey');
หากต้องการลบคีย์ทั้งหมดพร้อมกันจากภายนอก Worklet ให้ทำดังนี้
window.sharedStorage.clear();
หากต้องการลบคีย์ทั้งหมดพร้อมกันจากภายใน Worklet ให้ทำดังนี้
sharedStorage.clear();
การใช้ส่วนหัวการตอบกลับ
หากต้องการลบค่าโดยใช้ส่วนหัวการตอบกลับ คุณยังใช้
Shared-Storage-Write
ในส่วนหัวการตอบกลับเพื่อส่งคีย์ที่จะลบdelete;key="myKey"
วิธีลบคีย์ทั้งหมดที่ใช้ส่วนหัวการตอบกลับ
clear;
การเปลี่ยนบริบท
ระบบจะเขียนข้อมูลพื้นที่เก็บข้อมูลที่ใช้ร่วมกันไปยัง ต้นทาง (เช่น https://example.adtech.com) ของบริบทการท่องเว็บที่การเรียกใช้ มาจากที่ใดบ้าง
เมื่อคุณโหลดโค้ดของบุคคลที่สามโดยใช้แท็ก <script>
ระบบจะเรียกใช้โค้ด
ในบริบทการเรียกดูของเครื่องมือฝัง ดังนั้นเมื่อโค้ดบุคคลที่สาม
เรียก sharedStorage.set()
ข้อมูลจะถูกเขียนไปยังส่วน "แชร์ร่วมกัน"
พื้นที่เก็บข้อมูล เมื่อคุณโหลดโค้ดของบุคคลที่สามใน iframe โค้ดจะได้รับ
บริบทในการท่องเว็บแบบใหม่ และต้นทางของบริบทคือจุดเริ่มต้นของ iframe ดังนั้น
การเรียก sharedStorage.set()
จาก iframe จะเก็บข้อมูลไว้ใน
พื้นที่เก็บข้อมูลที่ใช้ร่วมกันของต้นทาง iframe
บริบทของบุคคลที่หนึ่ง
หากหน้าเว็บของบุคคลที่หนึ่งฝังโค้ด JavaScript ของบุคคลที่สามซึ่งเรียกใช้
sharedStorage.set()
หรือ sharedStorage.delete()
ระบบจะจัดเก็บคู่คีย์-ค่า
ในบริบทของบุคคลที่หนึ่ง
บริบทของบุคคลที่สาม
คุณจัดเก็บคู่คีย์-ค่าไว้ในเทคโนโลยีโฆษณาหรือบริบทของบุคคลที่สามได้โดย
สร้าง iframe และเรียก set()
หรือ delete()
ในโค้ด JavaScript จาก
ใน iframe
Private Aggregation API
หากต้องการวัดข้อมูลที่รวบรวมไว้ได้ซึ่งจัดเก็บไว้ในพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน คุณสามารถใช้ Aggregation API
หากต้องการสร้างรายงาน ให้เรียก contributeToHistogram()
ภายใน Worklet ที่มี
กลุ่มและค่า ที่เก็บข้อมูลจะแสดงด้วยจำนวนเต็ม 128 บิตที่ไม่มีเครื่องหมาย ซึ่ง
ต้องส่งผ่านไปยังฟังก์ชันในฐานะ BigInt
ค่านี้ต้องเป็นจำนวนเต็มบวก
เพื่อปกป้องความเป็นส่วนตัว จะมีเพย์โหลดของรายงาน ซึ่งมีที่เก็บข้อมูลและค่า ในระหว่างการส่ง และจะถอดรหัสและรวมได้โดยใช้ บริการรวมข้อมูล
เบราว์เซอร์จะจำกัดการมีส่วนร่วมที่เว็บไซต์สามารถทำกับเอาต์พุตได้ด้วย คำถาม โดยเฉพาะอย่างยิ่ง การสนับสนุน งบประมาณ จำกัดจำนวนรวมของรายงานทั้งหมดจากเว็บไซต์เดียวสำหรับเบราว์เซอร์หนึ่งๆ ใน ตามกรอบเวลาในที่เก็บข้อมูลทั้งหมด หากเกินงบประมาณปัจจุบัน จะไม่มีการสร้างรายงาน
privateAggregation.contributeToHistogram({
bucket: BigInt(myBucket),
value: parseInt(myBucketValue)
});
การดำเนินการใช้พื้นที่เก็บข้อมูลที่แชร์และการรวมข้อมูลส่วนตัว
การใช้ iframe แบบข้ามต้นทาง
ต้องมี iframe เพื่อเรียกใช้เวิร์กเล็ตพื้นที่เก็บข้อมูลที่แชร์
ใน iframe ของโฆษณา ให้โหลดโมดูล Worklet โดยเรียกใช้ addModule()
หากต้องการเรียกใช้ฟังก์ชัน
ที่ลงทะเบียนในไฟล์ Worklet sharedStorageWorklet.js
ใน
iframe JavaScript ของโฆษณาเดียวกันเรียก sharedStorage.run()
await window.sharedStorage.worklet.addModule('modules/sharedStorageWorklet.js');
await window.sharedStorage.worklet.run('shared-storage-report', {
data: { campaignId: '1234' },
});
คุณจะต้องสร้างชั้นเรียนด้วย run
แบบไม่พร้อมกันในสคริปต์ Worklet
และ register
คลาสนี้ให้ทำงานใน iframe ของโฆษณา ภายใน
sharedStorageWorklet.js
:
class SharedStorageReportOperation {
async run(data) {
// Other code goes here.
bucket = getBucket(...);
value = getValue(...);
privateAggregation.contributeToHistogram({
bucket: bucket,
value: value
});
}
}
register('shared-storage-report',
SharedStorageReportOperation);
การใช้คำขอข้ามต้นทาง
พื้นที่เก็บข้อมูลที่ใช้ร่วมกันและการรวมข้อมูลส่วนตัวอนุญาตให้สร้างเวิร์กเล็ตแบบข้ามต้นทาง โดยไม่ต้องใช้ iframe แบบข้ามต้นทาง
หน้าของบุคคลที่หนึ่งสามารถเรียกใช้ createWorklet()
การเรียกไปยังแบบข้ามต้นทางได้
ปลายทาง JavaScript
async function crossOriginCall() {
let privateAggregationWorklet = await sharedStorage.createWorklet(
'https://cross-origin.dev/js/worklet.js',
);
await privateAggregationWorklet.run('pa-worklet');
}
crossOriginCall();
ปลายทาง JavaScript แบบข้ามต้นทางจะต้องตอบกลับด้วยส่วนหัว
Shared-Storage-Cross-Origin-Worklet-Allowed
และอนุญาตแบบข้ามต้นทางโดยใช้
Access-Control-Allow-Origin
Shared-Storage-Cross-Origin-Worklet-Allowed : ?1
Access-Control-Allow-Origin : https://first-party.dev
Worklet ที่สร้างโดยใช้ createWorklet()
จะมี selectURL
และ run()
addModule()
ไม่พร้อมใช้งานสำหรับกรณีนี้
class CrossOriginWorklet {
async run(data){
// Other code goes here.
bucket = getBucket(...);
value = getValue(...);
privateAggregation.contributeToHistogram({
bucket: bucket,
value: value
});
}
}
การแก้ไขข้อบกพร่อง
หากต้องการเปิดใช้การแก้ไขข้อบกพร่อง ให้เรียกเมธอด JavaScript enableDebugMode()
ใน
ที่มีการใช้พื้นที่เก็บข้อมูลที่ใช้ร่วมกันและการรวมข้อมูลส่วนตัว นี่จะเป็น
ที่ใช้กับรายงานในอนาคตในบริบทเดียวกัน
privateAggregation.enableDebugMode();
หากต้องการเชื่อมโยงรายงานกับบริบทที่เรียกให้แสดง คุณสามารถตั้งค่า
คีย์การแก้ไขข้อบกพร่องของจำนวนเต็มที่ไม่ลงชื่อเข้าใช้ 64 บิต ซึ่งส่งผ่านไปยังการเรียกใช้ JavaScript
debugKey
เป็นBigInt
privateAggregation.enableDebugMode({debugKey: 1234});
การแก้ไขข้อบกพร่องของพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน
พื้นที่เก็บข้อมูลที่ใช้ร่วมกันจะแสดงข้อความแสดงข้อผิดพลาดทั่วไป ดังนี้
Promise is rejected without and explicit error message
คุณสามารถแก้ไขข้อบกพร่องของพื้นที่เก็บข้อมูลที่ใช้ร่วมกันได้โดยการรวมการโทรด้วย ลองตรวจจับ บล็อก
try {
privateAggregation.contributeToHistogram({bucket, value});
} catch (e){
console.log(e);
}
การแก้ไขข้อบกพร่องการรวมข้อมูลส่วนบุคคล
ส่งรายงานไปที่ /.well-known/private-aggregation/report-shared-storage
และ
/.well-known/private-aggregation/debug/report-shared-storage
รายงานแก้ไขข้อบกพร่อง
ได้รับเพย์โหลดที่คล้ายกับ JSON ต่อไปนี้ เพย์โหลดนี้กำหนด api
เป็น "shared-storage"
{
"aggregation_coordinator_origin": "https://publickeyservice.msmt.gcp.privacysandboxservices.com",
"aggregation_service_payloads": [ {
"debug_cleartext_payload": "omRkYXRhlKJldmFsdWVEAAAAgGZidWNrZXRQAAAAAAAAAAAAAAAAB1vNFaJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAKJldmFsdWVEAAAAAGZidWNrZXRQAAAAAAAAAAAAAAAAAAAAAGlvcGVyYXRpb25paGlzdG9ncmFt",
"key_id": "1569ab37-da44-4a26-80d9-5ed6524ab2a7",
"payload": "/9nHrWn1MnJWRxFvanbubciWE9mPyIij6uYLi5k351eQCd3/TZpe2knaatUNcniq4a4e61tmKebv50OmMRZFnnCfcAwIdIgLHu1a3en97PojqWJBfO52RiVMIcP7KQTLzMxq2LhvPSdV4zjXo1Teu/JuIK3LIyis3vUMpS+tUAX0QV+I6X5SVmZFiNW9aMb8DwLOtqrBy5JJ/EkOIY0G+1Fi1/3R7UtKsqM1o71A/OzdmlNkwO7EV/VUNinGvWnd19FvDHe/kqkNdTHKbhAnMmbZzHW9bsEQS81leElCla6BTdbdbeeFU/jbTj0AOaoNOIe5r7FU5NG6nW4ULXTCbLLjTQ1mtl3id3IP41Zin1JvABCDC/HUSgLFz8EUqkmbMIOlMfNYA79aURq6FqE0GO0HtICYf0GPNdVv7p4jY3FNn6+JS4l5F3t+3lP9ceo4IpCE+31jzMtYJ+19xFh6C5ufteBR/iknZFcc1w3caQBhgRl5jt8DbaOzYcW4690H8Ul4Oh2wRO+6/njifk+pExLay/O5swLi2lUUph5OUEaaztwwzh2mnhwIBxMkPnfsGihiF+5KDEajVfMZ3NLsIDoZO+l4RTZrkqE+jVkAqaZGBiCIx42Edp/JV0DXfrryypCdQBZr8iEbSzCM9hKsMfLN7S/VkPe5rDwOZbhKCn5XXgfGz5tSx/KbZgsQf4OCEhwAyNPHAh3MHU7xmkQ3pKg4EIUC/WOtKAlVDOtDMmPPoQY1eAwJhw9SxZaYF1kHjUkTm3EnGhgXgOwCRWqeboNenSFaCyp6DbFNI3+ImONMi2oswrrZO+54Tyhca5mnLIiInI+C3SlP4Sv1jFECIUdf/mifJRM5hMj6OChzHf4sEifjqtD4A30c4OzGexWarie2xakdQej9Go4Lm0GZEDBfcAdWLT9HwmpeI2u4HDAblXDvLN8jYFDOOtzOl90oU7AwdhkumUCFLRadXAccXW9SvLfDswRkXMffMJLFqkRKVE1GPonFFtlzaRqp7IgE8L6AOtz6NDcxAjHnEuzDPPMcWMl1AFH0gq7h"
} ],
"debug_key": "1234",
"shared_info": "{\"api\":\"shared-storage\",\"debug_mode\":\"enabled\",\"report_id\":\"80d93c0a-a94e-4ab7-aeb5-a4ecd4bfc598\",\"reporting_origin\":\"https://privacy-sandbox-demos-dsp.dev\",\"scheduled_report_time\":\"1717784740\",\"version\":\"0.1\"}"
}
แก้ไขข้อบกพร่องเพย์โหลด cleartext
debug_cleartext_payload
คือ
Base64
เข้ารหัส CBOR คุณสามารถดูที่เก็บข้อมูลและ
โดยใช้ตัวถอดรหัสหรือใช้
โค้ด JavaScript ที่พบในพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน
ตัวถอดรหัส
ขั้นตอนถัดไป
หน้าต่อไปนี้จะอธิบายแง่มุมที่สำคัญของพื้นที่เก็บข้อมูลที่ใช้ร่วมกันและแบบส่วนตัว API การรวม
- ข้อมูลเบื้องต้นเกี่ยวกับพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน (Chrome สำหรับนักพัฒนาซอฟต์แวร์)
- กรณีการใช้งานพื้นที่เก็บข้อมูลที่แชร์ (Chrome สำหรับนักพัฒนาซอฟต์แวร์)
- ข้อมูลเบื้องต้นเกี่ยวกับการรวมข้อมูลส่วนตัว (Chrome สำหรับนักพัฒนาซอฟต์แวร์)
- คำอธิบายพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน (GitHub)
- คำอธิบายการรวมข้อมูลแบบส่วนตัว (GitHub)
- พื้นที่เก็บข้อมูลที่แชร์และการสาธิตการรวบรวมข้อมูลแบบส่วนตัว
เมื่อคุ้นเคยกับ API แล้ว คุณจะเริ่มรวบรวมรายงานได้ ซึ่งจะส่งเป็นคำขอ POST ไปยังปลายทางต่อไปนี้ในรูปแบบ JSON ใน เนื้อความของคำขอ
- รายงานแก้ไขข้อบกพร่อง -
context-origin/.well-known/private-aggregation/debug/report-shared-storage
- รายงาน -
context-origin/.well-known/private-aggregation/report-shared-storage
เมื่อรวบรวมรายงานแล้ว คุณสามารถทดสอบโดยใช้การทดสอบในท้องถิ่น เครื่องมือ หรือตั้งค่า สภาพแวดล้อมการดำเนินการที่เชื่อถือได้สำหรับการรวมข้อมูล บริการ เพื่อดูรายงานรวม
แชร์ความคิดเห็น
คุณแชร์ความคิดเห็นเกี่ยวกับ API และเอกสารประกอบบน GitHub ได้