แนวคิดสําคัญของ Private Aggregation API
เอกสารนี้มีไว้สำหรับใคร
Private Aggregation API ช่วยในการรวบรวมข้อมูลรวมจากชิ้นงานที่มีสิทธิ์เข้าถึงข้อมูลข้ามเว็บไซต์ แนวคิดที่แชร์ที่นี่มีความสำคัญต่อนักพัฒนาซอฟต์แวร์ที่สร้างฟังก์ชันการรายงานภายใน Shared Storage และ Protected Audience API
- หากคุณเป็นนักพัฒนาซอฟต์แวร์ที่สร้างระบบการรายงานสําหรับการวัดผลข้ามเว็บไซต์
- หากคุณเป็นนักการตลาด นักวิทยาศาสตร์ข้อมูล หรือผู้ใช้รายงานสรุปรายอื่นๆ การทำความเข้าใจกลไกเหล่านี้จะช่วยให้คุณตัดสินใจเกี่ยวกับการออกแบบเพื่อเรียกดูรายงานสรุปที่เพิ่มประสิทธิภาพได้
คำสำคัญ
ก่อนอ่านเอกสารนี้ คุณควรทำความคุ้นเคยกับคำศัพท์และแนวคิดสำคัญ เราจะอธิบายแต่ละข้อกำหนดเหล่านี้อย่างละเอียดที่นี่
- คีย์การรวม (หรือที่เรียกว่าที่เก็บข้อมูล) คือชุดจุดข้อมูลที่กําหนดไว้ล่วงหน้า เช่น คุณอาจต้องการรวบรวมที่เก็บข้อมูลตําแหน่งซึ่งเบราว์เซอร์รายงานชื่อประเทศ คีย์การรวมอาจมีมิติข้อมูลมากกว่า 1 รายการ (เช่น ประเทศและรหัสวิดเจ็ตเนื้อหา)
- ค่าที่รวบรวมได้คือจุดข้อมูลแต่ละจุดที่รวบรวมไว้ในคีย์การรวม หากต้องการวัดจํานวนผู้ใช้จากฝรั่งเศสที่เห็นเนื้อหาของคุณ
France
จะเป็นมิติข้อมูลในคีย์การรวม และviewCount
ของ1
คือค่าที่รวบรวมได้ - ระบบจะสร้างและเข้ารหัสรายงานที่รวบรวมได้ภายในเบราว์เซอร์ สําหรับ Private Aggregation API ข้อมูลนี้จะประกอบด้วยข้อมูลเกี่ยวกับเหตุการณ์เดียว
- บริการรวบรวมข้อมูลจะประมวลผลข้อมูลจากรายงานที่รวบรวมได้เพื่อสร้างรายงานสรุป
- รายงานสรุปคือเอาต์พุตสุดท้ายของบริการรวบรวมข้อมูล และประกอบด้วยข้อมูลผู้ใช้แบบรวมที่มีสัญญาณรบกวน และข้อมูล Conversion โดยละเอียด
- เวิร์กเลตคือโครงสร้างพื้นฐานที่ช่วยให้คุณเรียกใช้ฟังก์ชัน JavaScript ที่เฉพาะเจาะจงและแสดงผลข้อมูลกลับไปยังผู้ขอ ในเวิร์กเลต คุณจะเรียกใช้ JavaScript ได้ แต่จะโต้ตอบหรือสื่อสารกับหน้าเว็บภายนอกไม่ได้
เวิร์กโฟลว์การรวมข้อมูลส่วนตัว
เมื่อคุณเรียกใช้ Private Aggregation API ด้วยคีย์การรวมข้อมูลและค่าที่รวมได้ เบราว์เซอร์จะสร้างรายงานที่รวมได้ ระบบจะส่งรายงานไปยังเซิร์ฟเวอร์ของคุณซึ่งจะจัดกลุ่มรายงาน บริการรวบรวมข้อมูลจะประมวลผลรายงานกลุ่มในภายหลัง และสร้างรายงานสรุป
- เมื่อคุณเรียก Private Aggregation API ไคลเอ็นต์ (เบราว์เซอร์) จะสร้างและส่งรายงานที่รวบรวมได้ไปยังเซิร์ฟเวอร์เพื่อรวบรวม
- เซิร์ฟเวอร์จะรวบรวมรายงานจากไคลเอ็นต์และจัดกลุ่มเพื่อส่งไปยังบริการรวบรวมข้อมูล
- เมื่อรวบรวมรายงานได้เพียงพอแล้ว ให้จัดกลุ่มและส่งไปยังบริการรวบรวมข้อมูลซึ่งทํางานในสภาพแวดล้อมการดําเนินการที่เชื่อถือได้เพื่อสร้างรายงานสรุป
เวิร์กโฟลว์ที่อธิบายในส่วนนี้คล้ายกับ Attribution Reporting API อย่างไรก็ตาม การรายงานการระบุแหล่งที่มาจะเชื่อมโยงข้อมูลที่รวบรวมจากเหตุการณ์การแสดงผลและเหตุการณ์ Conversion ซึ่งเกิดขึ้นในเวลาที่ต่างกัน การรวมข้อมูลส่วนตัวจะวัดเหตุการณ์เดียวข้ามเว็บไซต์
คีย์การรวม
คีย์การรวม ("คีย์" สั้นๆ) แสดงถึงที่เก็บข้อมูลที่จะรวบรวมค่าที่รวบรวมได้ คุณสามารถเข้ารหัสมิติข้อมูลอย่างน้อย 1 รายการลงในคีย์ได้ มิติข้อมูลแสดงแง่มุมบางอย่างที่คุณต้องการรับข้อมูลเชิงลึกเพิ่มเติม เช่น กลุ่มอายุของผู้ใช้หรือจํานวนการแสดงผลของแคมเปญโฆษณา
เช่น คุณอาจมีวิดเจ็ตที่ฝังอยู่ในหลายเว็บไซต์และต้องการวิเคราะห์ประเทศของผู้ใช้ที่เห็นวิดเจ็ต คุณกําลังมองหาคําตอบสําหรับคําถาม เช่น "ผู้ใช้ที่เห็นวิดเจ็ตของฉันมาจากประเทศ X จํานวนเท่าใด" หากต้องการรายงานเกี่ยวกับคําถามนี้ คุณสามารถตั้งค่าคีย์การรวมข้อมูลซึ่งเข้ารหัสมิติข้อมูล 2 รายการ ได้แก่ รหัสวิดเจ็ตและรหัสประเทศ
คีย์ที่ส่งไปยัง Private Aggregation API คือ BigInt ซึ่งประกอบด้วยมิติข้อมูลหลายรายการ ในตัวอย่างนี้ มิติข้อมูลคือรหัสวิดเจ็ตและรหัสประเทศ สมมติว่ารหัสวิดเจ็ตมีความยาวได้สูงสุด 4 หลัก เช่น 1234
และแต่ละประเทศจะเชื่อมโยงกับตัวเลขตามลําดับตัวอักษร เช่น อัฟกานิสถานคือ 1
ฝรั่งเศสคือ 61
และซิมบับเวคือ 195
ดังนั้น คีย์ที่รวบรวมข้อมูลได้จะมีความยาว 7 หลัก โดยอักขระ 4 ตัวแรกสงวนไว้สําหรับ WidgetID
และอักขระ 3 ตัวสุดท้ายสงวนไว้สําหรับ CountryID
สมมติว่าคีย์แสดงจํานวนผู้ใช้จากฝรั่งเศส (รหัสประเทศ 061
) ที่ได้เห็นรหัสวิดเจ็ต 3276
คีย์การรวมข้อมูลคือ 3276061
คีย์การรวม | |
รหัสวิดเจ็ต | รหัสประเทศ |
3276 | 061 |
คุณยังสร้างคีย์การรวมได้ด้วยกลไกการแฮช เช่น SHA-256 เช่น สตริง {"WidgetId":3276,"CountryID":67}
สามารถแฮชแล้วแปลงเป็นค่า BigInt
ของ 42943797454801331377966796057547478208888578253058197330928948081739249096287n
หากค่าแฮชมีมากกว่า 128 บิต คุณสามารถตัดให้สั้นลงเพื่อให้ค่าไม่เกินค่าสูงสุดที่อนุญาตของที่เก็บข้อมูลซึ่งเท่ากับ 2^128−1
ในเวิร์กเลตพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน คุณจะเข้าถึงข้อบังคับ crypto
และ TextEncoder
ได้ ซึ่งจะช่วยสร้างแฮชได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างแฮชได้ที่ SubtleCrypto.digest()
ใน MDN
ตัวอย่างต่อไปนี้อธิบายวิธีสร้างคีย์ที่เก็บข้อมูลจากค่าที่ผ่านการแฮช
async function convertToBucket(data) {
// Encode as UTF-8 Uint8Array
const encodedData = new TextEncoder().encode(data);
// Generate SHA-256 hash
const hashBuffer = await crypto.subtle.digest('SHA-256', encodedData);
// Truncate the hash
const truncatedHash = Array.from(new Uint8Array(hashBuffer, 0, 16));
// Convert the byte sequence to a decimal
return truncatedHash.reduce((acc, curr) => acc * 256n + BigInt(curr), 0n);
}
const data = {
WidgetId: 3276,
CountryID: 67
};
const dataString = JSON.stringify(data);
const bucket = await convertToBucket(dataString);
console.log(bucket); // 126200478277438733997751102134640640264n
ค่าที่รวบรวมได้
ระบบจะรวมค่าที่รวบรวมได้ต่อคีย์จากผู้ใช้จํานวนมากเพื่อสร้างข้อมูลเชิงลึกแบบรวมในรูปแบบค่าสรุปในรายงานสรุป
กลับมาที่คำถามตัวอย่างที่ถามไปก่อนหน้านี้ "ผู้ใช้ที่เห็นวิดเจ็ตของฉันมาจากฝรั่งเศสกี่คน" คำตอบของคําถามนี้จะมีลักษณะดังนี้ "ผู้ใช้ประมาณ 4881 คนที่เห็นวิดเจ็ตรหัส 3276 ของฉันมาจากฝรั่งเศส" ค่าที่รวบรวมได้คือ 1 สําหรับผู้ใช้แต่ละราย และ "ผู้ใช้ 4881 คน" คือค่ารวมซึ่งเป็นผลรวมของค่าที่รวบรวมได้ทั้งหมดสําหรับคีย์การรวมนั้น
คีย์การรวม | ค่าที่รวบรวมได้ | |
รหัสวิดเจ็ต | รหัสประเทศ | จำนวนการดู |
3276 | 061 | 1 |
ในตัวอย่างนี้ เราจะเพิ่มค่าขึ้น 1 สำหรับผู้ใช้แต่ละรายที่เห็นวิดเจ็ต ในทางปฏิบัติ ค่าที่รวบรวมได้สามารถปรับขนาดเพื่อปรับปรุงอัตราส่วนสัญญาณต่อสัญญาณรบกวน
งบประมาณการมีส่วนร่วม
การเรียก Private Aggregation API แต่ละครั้งเรียกว่าการมีส่วนร่วม เราจำกัดจำนวนการมีส่วนร่วมที่รวบรวมจากบุคคลหนึ่งๆ เพื่อปกป้องความเป็นส่วนตัวของผู้ใช้
เมื่อคุณรวมค่าที่รวบรวมได้ทั้งหมดในคีย์การรวมทั้งหมด ผลรวมต้องน้อยกว่างบประมาณการมีส่วนร่วม งบประมาณจะกําหนดขอบเขตตามต้นทางของ Worklet ต่อวัน และแยกกันสําหรับ Protected Audience API และ Worklet Shared Storage ระบบจะใช้กรอบเวลาแบบเลื่อนประมาณ 24 ชั่วโมงที่ผ่านมาสำหรับ 1 วัน หากรายงานใหม่ที่รวมข้อมูลได้จะทำให้งบประมาณเกิน ระบบจะไม่สร้างรายงาน
งบประมาณการมีส่วนร่วมแสดงโดยพารามิเตอร์ L1 และตั้งค่าเป็น 216 (65,536) ต่อ 10 นาทีต่อวัน โดยมีแบ็กส top 220 (1,048,576) ดูคําอธิบายเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์เหล่านี้
ค่าของงบประมาณการมีส่วนร่วมจะกําหนดเองได้ แต่ระบบจะปรับระดับสัญญาณรบกวนตามมูลค่านั้น คุณสามารถใช้งบประมาณนี้เพื่อเพิ่มอัตราส่วนสัญญาณต่อสัญญาณรบกวนสูงสุดในค่าสรุป (ดูรายละเอียดเพิ่มเติมได้ในส่วนสัญญาณรบกวนและการขยายขนาด)
ดูข้อมูลเพิ่มเติมเกี่ยวกับงบประมาณการมีส่วนร่วมได้ที่คำอธิบาย นอกจากนี้ โปรดดูคำแนะนำเพิ่มเติมในงบประมาณการมีส่วนร่วม
ขีดจํากัดการมีส่วนร่วมต่อรายงาน
ขีดจำกัดการบริจาคอาจแตกต่างกันไปตามผู้โทร ขณะนี้รายงานที่สร้างขึ้นสำหรับผู้เรียกใช้ Shared Storage API จะจำกัดการมีส่วนร่วมไว้ที่ 20 รายการต่อรายงาน ในทางกลับกัน ผู้เรียกใช้ Protected Audience API จะมีจํานวนการมีส่วนร่วมได้สูงสุด 100 รายการต่อการรายงาน 1 ฉบับ เราเลือกขีดจํากัดเหล่านี้เพื่อรักษาสมดุลระหว่างจํานวนการมีส่วนร่วมที่ฝังได้กับขนาดของเพย์โหลด
สำหรับพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน ระบบจะรวมการมีส่วนร่วมภายในการดำเนินการ run()
หรือ selectURL()
รายการเดียวไว้ในรายงานเดียว สําหรับ Protected Audience ระบบจะจัดกลุ่มการมีส่วนร่วมจากต้นทางเดียวในการประมูลไว้ด้วยกัน
เนื้อหาที่มีระยะห่างจากขอบ
เนื้อหาที่ผู้ใช้ส่งมาจะได้รับการแก้ไขเพิ่มเติมด้วยฟีเจอร์การใส่ระยะห่าง การถ่วงน้ำหนักเพย์โหลดจะปกป้องข้อมูลเกี่ยวกับจํานวนจริงของการมีส่วนร่วมที่ฝังอยู่ในรายงานที่รวบรวมได้ การเติมค่าจะเพิ่มข้อมูลเพย์โหลดด้วย null
(นั่นคือมีค่าเป็น 0) เพื่อให้มีความยาวคงที่
รายงานที่รวมได้
เมื่อผู้ใช้เรียกใช้ Private Aggregation API เบราว์เซอร์จะสร้างรายงานที่รวบรวมได้เพื่อให้บริการรวบรวมข้อมูลประมวลผลในภายหลังทันเวลาในการสร้างรายงานสรุป รายงานที่รวบรวมได้อยู่ในรูปแบบ JSON และมีรายการการมีส่วนร่วมที่เข้ารหัส ซึ่งแต่ละรายการเป็นคู่ {aggregation key, aggregatable value}
ระบบจะส่งรายงานที่รวบรวมข้อมูลได้แบบสุ่มโดยมีความล่าช้าสูงสุด 1 ชั่วโมง
ข้อมูลมีส่วนร่วมจะได้รับการเข้ารหัสและอ่านไม่ได้จากภายนอกบริการรวบรวมข้อมูล บริการรวบรวมข้อมูลจะถอดรหัสรายงานและสร้างรายงานสรุป ผู้ประสานงานจะเป็นผู้ออกคีย์การเข้ารหัสสําหรับเบราว์เซอร์และคีย์การถอดรหัสสําหรับบริการรวบรวมข้อมูล ซึ่งทําหน้าที่เป็นบริการจัดการคีย์ ผู้ประสานงานจะเก็บรายการแฮชไบนารีของรูปภาพบริการไว้เพื่อยืนยันว่าผู้โทรได้รับอนุญาตให้รับคีย์การถอดรหัส
ตัวอย่างรายงานที่รวบรวมได้ซึ่งเปิดใช้โหมดการแก้ไขข้อบกพร่อง
"aggregation_service_payloads": [
{
"debug_cleartext_payload": "omRkYXRhgaJldmFsdWVEAAAAgGZidWNrZXRQAAAAAAAAAAAAAAAAAAAE0mlvcGVyYXRpb25paGlzdG9ncmFt",
"key_id": "2cc72b6a-b92f-4b78-b929-e3048294f4d6",
"payload": "a9Mk3XxvnfX70FsKrzcLNZPy+00kWYnoXF23ZpNXPz/Htv1KCzl/exzplqVlM/wvXdKUXCCtiGrDEL7BQ6MCbQp1NxbWzdXfdsZHGkZaLS2eF+vXw2UmLFH+BUg/zYMu13CxHtlNSFcZQQTwnCHb"
}
],
"debug_key": "777",
"shared_info": "{\"api\":\"shared-storage\",\"debug_mode\":\"enabled\",\"report_id\":\"5bc74ea5-7656-43da-9d76-5ea3ebb5fca5\",\"reporting_origin\":\"https://localhost:4437\",\"scheduled_report_time\":\"1664907229\",\"version\":\"0.1\"}"
คุณตรวจสอบรายงานที่รวบรวมข้อมูลได้ได้จากหน้าchrome://private-aggregation-internals
โดยทำดังนี้
สําหรับวัตถุประสงค์การทดสอบ คุณสามารถใช้ปุ่ม "ส่งรายงานที่เลือก" เพื่อส่งรายงานไปยังเซิร์ฟเวอร์ได้ทันที
รวบรวมและจัดกลุ่มรายงานที่รวบรวมข้อมูลได้
เบราว์เซอร์จะส่งรายงานที่รวบรวมข้อมูลได้ไปยังต้นทางของชิ้นงานซึ่งมีคําเรียก Private Aggregation API โดยใช้เส้นทางที่รู้จักซึ่งระบุไว้ดังต่อไปนี้
- สำหรับพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน:
/.well-known/private-aggregation/report-shared-storage
- สําหรับกลุ่มเป้าหมายที่ได้รับการปกป้อง
/.well-known/private-aggregation/report-protected-audience
คุณจะต้องใช้งานเซิร์ฟเวอร์ที่ทำหน้าที่เป็นผู้รวบรวมซึ่งรับรายงานที่รวบรวมได้ซึ่งส่งมาจากไคลเอ็นต์
จากนั้นเซิร์ฟเวอร์ควรจัดกลุ่มรายงานและส่งกลุ่มไปยังบริการรวบรวมข้อมูล สร้างกลุ่มตามข้อมูลที่อยู่ในเพย์โหลดที่ไม่ได้เข้ารหัสของรายงานที่รวบรวมได้ เช่น ช่อง shared_info
โดยควรมีรายงานอย่างน้อย 100 รายการต่อกลุ่ม
คุณอาจเลือกส่งเป็นกลุ่มรายวันหรือรายสัปดาห์ก็ได้ กลยุทธ์นี้มีความยืดหยุ่น และคุณสามารถเปลี่ยนกลยุทธ์การแบ่งกลุ่มสําหรับกิจกรรมที่เฉพาะเจาะจงซึ่งคาดว่าจะมีปริมาณมากขึ้น เช่น วันของปีที่มีการคาดการณ์ว่าจะมีการแสดงผลมากขึ้น กลุ่มควรมีรายงานจาก API เวอร์ชันเดียวกัน ต้นทางการรายงาน และเวลารายงานที่กำหนดเวลาไว้
การกรองรหัส
Private Aggregation API และบริการการรวมข้อมูลอนุญาตให้ใช้การกรองรหัสเพื่อประมวลผลการวัดผลในระดับที่ละเอียดยิ่งขึ้น เช่น ตามแคมเปญโฆษณา แทนที่จะประมวลผลผลลัพธ์ในการค้นหาที่ใหญ่ขึ้น
หากต้องการเริ่มใช้ฟีเจอร์นี้ในวันนี้ โปรดดูขั้นตอนคร่าวๆ ต่อไปนี้เพื่อนำไปใช้กับการใช้งานปัจจุบัน
ขั้นตอนสำหรับพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน
หากคุณใช้ Shared Storage API ในขั้นตอน ให้ทำดังนี้
กำหนดตำแหน่งที่จะประกาศและเรียกใช้โมดูลพื้นที่เก็บข้อมูลที่ใช้ร่วมกันใหม่ ในตัวอย่างนี้ เราได้ตั้งชื่อไฟล์โมดูลเป็น
filtering-worklet.js
โดยลงทะเบียนภายใต้filtering-example
(async function runFilteringIdsExample () { await window.sharedStorage.worklet.addModule('filtering-worklet.js'); await window.sharedStorage.run('filtering-example', { keepAlive: true, privateAggregationConfig: { contextId: 'example-id', filteringIdMaxBytes: 8 // optional } }}); })();
โปรดทราบว่า
filteringIdMaxBytes
กำหนดค่าได้ต่อรายงาน และหากไม่ได้ตั้งค่าไว้ ค่าเริ่มต้นจะเป็น 1 ค่าเริ่มต้นนี้มีไว้เพื่อป้องกันไม่ให้ขนาดของเพย์โหลดเพิ่มขึ้นโดยไม่จำเป็น ซึ่งจะส่งผลให้มีค่าใช้จ่ายในการจัดเก็บและประมวลผล อ่านเพิ่มเติมในคำอธิบายการมีส่วนร่วมแบบยืดหยุ่นในไฟล์ที่คุณใช้ด้านบน ซึ่งในกรณีนี้คือ
filtering-worklet.js
เมื่อคุณส่งข้อมูลไปยังprivateAggregation.contributeToHistogram(...)
ภายในเวิร์กเลตพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน คุณสามารถระบุรหัสการกรองได้// Within filtering-worklet.js class FilterOperation { async run() { let contributions = [{ bucket: 1234n, value: 56, filteringId: 3n // defaults to 0n if not assigned, type bigint }]; for (const c of contributions) { privateAggregation.contributeToHistogram(c); } … } }); register('filtering-example', FilterOperation);
ระบบจะส่งรายงานที่รวบรวมข้อมูลได้ไปยังปลายทางที่คุณกำหนดไว้
/.well-known/private-aggregation/report-shared-storage
ไปที่คู่มือการกรองรหัสเพื่อดูข้อมูลเกี่ยวกับการเปลี่ยนแปลงที่จำเป็นในพารามิเตอร์งานของบริการรวบรวมข้อมูล
หลังจากการแบ่งกลุ่มเสร็จสมบูรณ์และส่งไปยังบริการรวบรวมข้อมูลที่คุณติดตั้งใช้งานแล้ว ผลลัพธ์ที่กรองควรแสดงในรายงานสรุปขั้นสุดท้าย
ขั้นตอนของ Protected Audience
หากคุณใช้ Protected Audience API ในขั้นตอน ให้ทำดังนี้
ในการนํากลุ่มเป้าหมายที่ได้รับการคุ้มครองมาใช้ในปัจจุบัน คุณสามารถตั้งค่าต่อไปนี้เพื่อเชื่อมต่อกับการรวบรวมข้อมูลส่วนตัว ต่างจากพื้นที่เก็บข้อมูลที่ใช้ร่วมกันตรงที่ยังไม่มีการกำหนดค่าขนาดสูงสุดของรหัสการกรอง โดยค่าเริ่มต้น ขนาดสูงสุดของรหัสการกรองคือ 1 ไบต์และจะตั้งค่าเป็น
0n
โปรดทราบว่าค่าเหล่านี้จะตั้งค่าไว้ใน [ฟังก์ชันการรายงานกลุ่มเป้าหมายที่ได้รับการคุ้มครอง](ฟังก์ชันการรายงานกลุ่มเป้าหมายที่ได้รับการคุ้มครอง (เช่นreportResult()
หรือgenerateBid()
)const contribution = { ... filteringId: 0n }; privateAggregation.contributeToHistogram(contribution);
ระบบจะส่งรายงานที่รวบรวมข้อมูลได้ไปยังปลายทางที่คุณกำหนดไว้
/.well-known/private-aggregation/report-protected-audience
หลังจากการแบ่งกลุ่มเสร็จสมบูรณ์และส่งไปยังบริการรวบรวมข้อมูลที่คุณติดตั้งใช้งานแล้ว ผลลัพธ์ที่กรองควรแสดงในรายงานสรุปขั้นสุดท้าย คําอธิบาย Attribution Reporting API และ Private Aggregation API พร้อมใช้งาน รวมถึงข้อเสนอเริ่มต้น
ไปที่คู่มือการกรองรหัสในบริการรวบรวมข้อมูล หรือไปที่ส่วน Attribution Reporting API เพื่ออ่านรายละเอียดเพิ่มเติม
บริการรวมข้อมูล
บริการรวบรวมข้อมูลจะรับรายงานแบบรวมที่เข้ารหัสจากผู้รวบรวมข้อมูลและสร้างรายงานสรุป ดูกลยุทธ์เพิ่มเติมเกี่ยวกับวิธีจัดกลุ่มรายงานที่รวบรวมข้อมูลได้ในตัวรวบรวมได้ที่คู่มือการทํางานแบบเป็นกลุ่ม
บริการนี้ทำงานในสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE) ซึ่งให้ระดับการรับรองความสมบูรณ์ของข้อมูล ความลับของข้อมูล และความสมบูรณ์ของโค้ด หากต้องการดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีใช้ผู้ประสานงานร่วมกับ TEE โปรดอ่านเพิ่มเติมเกี่ยวกับบทบาทและวัตถุประสงค์
รายงานสรุป
รายงานสรุปช่วยให้คุณเห็นข้อมูลที่รวบรวมโดยมีการเพิ่มสัญญาณรบกวน คุณสามารถขอรายงานสรุปสำหรับชุดคีย์หนึ่งๆ ได้
รายงานสรุปประกอบด้วยชุดคู่คีย์-ค่าสไตล์พจนานุกรม JSON คู่ข้อมูลแต่ละคู่ประกอบด้วยข้อมูลต่อไปนี้
bucket
: คีย์การรวมข้อมูลเป็นสตริงตัวเลขฐาน 2 หากใช้คีย์การรวมข้อมูลเป็น "123" ข้อมูลดังกล่าวจะอยู่ในกลุ่ม "1111011"value
: ค่าสรุปสําหรับเป้าหมายการวัดผลหนึ่งๆ ซึ่งคํานวณจากรายงานที่รวบรวมได้ทั้งหมดที่มีพร้อมเพิ่มสัญญาณรบกวน
เช่น
[
{"bucket":` `"111001001",` `"value":` `"2558500"},
{"bucket":` `"111101001",` `"value":` `"3256211"},
{"bucket":` `"111101001",` `"value":` `"6536542"},
]
เสียงรบกวนและการปรับขนาด
บริการรวบรวมข้อมูลจะเพิ่มสัญญาณรบกวน 1 ครั้งให้กับค่าสรุปแต่ละค่าทุกครั้งที่มีคำขอรายงานสรุป เพื่อรักษาความเป็นส่วนตัวของผู้ใช้ ระบบจะดึงค่าสัญญาณรบกวนแบบสุ่มจากการแจกแจงความน่าจะเป็นแบบ Laplace แม้ว่าคุณจะไม่สามารถควบคุมวิธีเพิ่มสัญญาณรบกวนโดยตรง แต่ก็สามารถควบคุมผลกระทบของสัญญาณรบกวนต่อข้อมูลการวัดได้
การแจกแจงสัญญาณรบกวนจะเหมือนกัน ไม่ว่าผลรวมของค่าที่รวบรวมได้ทั้งหมดจะเป็นอย่างไร ดังนั้นยิ่งค่าที่รวบรวมได้สูงเท่าใด ผลกระทบจากความผันผวนก็ยิ่งมีแนวโน้มที่จะน้อยลงเท่านั้น
ตัวอย่างเช่น สมมติว่าค่าเบี่ยงเบนมาตรฐานของการกระจายสัญญาณรบกวนคือ 100 และมีค่าศูนย์กลางที่ 0 หากค่ารายงานที่รวบรวมได้ (หรือ "ค่าที่รวบรวมได้") มีเพียง 200 ค่าเบี่ยงเบนมาตรฐานของสัญญาณรบกวนจะเท่ากับ 50% ของค่าที่รวบรวม แต่หากค่าที่รวบรวมได้คือ 20,000 ค่าความเบี่ยงเบนมาตรฐานของสัญญาณรบกวนจะเท่ากับ 0.5% ของค่าที่รวบรวมเท่านั้น ดังนั้นค่าที่รวบรวมได้ 20,000 รายการจะมีอัตราส่วนสัญญาณต่อสัญญาณรบกวนสูงกว่ามาก
ดังนั้น การคูณค่าที่รวบรวมได้ด้วยปัจจัยการปรับขนาดจึงช่วยลดความผันผวนได้ ค่าตัวคูณมาตราส่วนแสดงถึงจํานวนที่คุณต้องการให้ปรับขนาดค่าที่รวบรวมได้
การปรับค่าให้สูงขึ้นโดยเลือกปัจจัยการปรับขนาดที่ใหญ่ขึ้นจะช่วยลดสัญญาณรบกวนที่เกี่ยวข้อง อย่างไรก็ตาม การดำเนินการนี้ยังทําให้ยอดรวมของผลงานทั้งหมดในบักเก็ตทั้งหมดถึงขีดจํากัดงบประมาณการมีส่วนร่วมเร็วขึ้นด้วย การลดค่าลงโดยการเลือกค่าคงที่ของปัจจัยการปรับขนาดที่เล็กลงจะเพิ่มสัญญาณรบกวนที่เกี่ยวข้อง แต่ลดความเสี่ยงที่จะถึงขีดจํากัดงบประมาณ
วิธีคำนวณปัจจัยการปรับขนาดที่เหมาะสมคือให้หารงบประมาณการมีส่วนร่วมด้วยผลรวมสูงสุดของค่าที่รวบรวมได้ของคีย์ทั้งหมด
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบเกี่ยวกับงบประมาณการมีส่วนร่วม
มีส่วนร่วมและแชร์ความคิดเห็น
Private Aggregation API อยู่ระหว่างการพูดคุยและอาจมีการเปลี่ยนแปลงในอนาคต หากคุณลองใช้ API นี้แล้วและมีข้อเสนอแนะ เรายินดีรับฟัง
- GitHub: อ่านคำอธิบาย ตั้งคำถามและเข้าร่วมการสนทนา
- การสนับสนุนนักพัฒนาแอป: ถามคําถามและเข้าร่วมการสนทนาในที่เก็บข้อมูลการสนับสนุนนักพัฒนาแอป Privacy Sandbox
- เข้าร่วมกลุ่ม Shared Storage API และกลุ่ม Protected Audience API เพื่อรับการประกาศล่าสุดเกี่ยวกับการเก็บรวบรวมข้อมูลส่วนตัว