การเริ่มต้นพื้นที่เก็บข้อมูลที่ใช้ร่วมกันและการใช้งานการรวมส่วนตัวอย่างรวดเร็ว

เอกสารนี้เป็นคู่มือเริ่มใช้งานฉบับย่อสำหรับการใช้พื้นที่เก็บข้อมูลที่ใช้ร่วมกันและแบบส่วนตัว การรวม คุณจะต้องเข้าใจเกี่ยวกับ API ทั้ง 2 รายการเนื่องจากพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน และจัดเก็บค่าดังกล่าว และ Private Aggregation จะสร้างรายงานที่รวบรวมได้

กลุ่มเป้าหมาย: ผู้ให้บริการเทคโนโลยีโฆษณาและผู้ให้บริการการวัดผล

ลองใช้

ลองใช้การสาธิตแบบสด ทำตามขั้นตอน ในวิธีการสาธิตเพื่อเปิดใช้ Privacy Sandbox API กำลังเปิด Chrome เครื่องมือสำหรับนักพัฒนาเว็บช่วยให้คุณเห็นภาพผลลัพธ์ของกรณีการใช้งานต่างๆ Use Case ในการสาธิต

  • การรวมข้อมูลส่วนบุคคล
    • การวัด Unique Reach
    • การวัดข้อมูลประชากร
    • การวัดความถี่ K+
  • การใช้งานทั่วไป
    • วัดเหตุการณ์การวางเมาส์เหนือภายในเฟรมที่มีการปิดกั้น
    • การนำทางระดับบนสุด
    • การควบคุมตำแหน่งที่บุคคลที่สามสามารถเขียนได้

วิธีดูพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน

หากต้องการดูข้อมูลที่จัดเก็บไว้ในพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน ให้ใช้ Chrome DevTools ข้อมูลที่จัดเก็บสามารถ ใน Application -> Shared Storage

ดูข้อมูลที่จัดเก็บไว้ในพื้นที่เก็บข้อมูลที่ใช้ร่วมกันโดยใช้เครื่องมือสำหรับนักพัฒนาเว็บใน Chrome

ดูรายงานสำหรับการรวมข้อมูลแบบส่วนตัว

หากต้องการดูรายงานที่รวบรวมได้ที่ส่งไป ให้ไปที่ chrome://private-aggregation-internals เมื่อเปิดใช้โหมดแก้ไขข้อบกพร่อง รายงาน ทันที (ไม่ล่าช้า) ไปยัง [[YOUR_ORIGIN]]/.well-known/private-aggregation/debug/report-shared-storage พร้อมด้วยรายงานแบบล่าช้าที่จะส่งไปยัง [[YOUR_ORIGIN]]/.well-known/private-aggregation/report-shared-storage

หากต้องการเปิดใช้การแก้ไขข้อบกพร่อง โปรดทำตามวิธีการในการแก้ไขข้อบกพร่อง

ดูรายงานใน chrome://private-aggregation-internals

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() จาก ทั้งภายในและภายนอก Worklet

    window.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() ระบบจะจัดเก็บคู่คีย์-ค่า ในบริบทของบุคคลที่หนึ่ง

ข้อมูลที่จัดเก็บไว้ในหน้าเว็บของบุคคลที่หนึ่งซึ่งมี JavaScript ของบุคคลที่สามฝังอยู่

บริบทของบุคคลที่สาม

คุณจัดเก็บคู่คีย์-ค่าไว้ในเทคโนโลยีโฆษณาหรือบริบทของบุคคลที่สามได้โดย สร้าง 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 การรวม

เมื่อคุ้นเคยกับ API แล้ว คุณจะเริ่มรวบรวมรายงานได้ ซึ่งจะส่งเป็นคำขอ POST ไปยังปลายทางต่อไปนี้ในรูปแบบ JSON ใน เนื้อความของคำขอ

  • รายงานแก้ไขข้อบกพร่อง - context-origin/.well-known/private-aggregation/debug/report-shared-storage
  • รายงาน - context-origin/.well-known/private-aggregation/report-shared-storage

เมื่อรวบรวมรายงานแล้ว คุณสามารถทดสอบโดยใช้การทดสอบในท้องถิ่น เครื่องมือ หรือตั้งค่า สภาพแวดล้อมการดำเนินการที่เชื่อถือได้สำหรับการรวมข้อมูล บริการ เพื่อดูรายงานรวม

แชร์ความคิดเห็น

คุณแชร์ความคิดเห็นเกี่ยวกับ API และเอกสารประกอบบน GitHub ได้