พื้นฐาน Private Aggregation API

แนวคิดสําคัญของ Private Aggregation API

เอกสารนี้มีไว้สำหรับใคร

Private Aggregation API ช่วยในการรวบรวมข้อมูลรวมจากชิ้นงานที่มีสิทธิ์เข้าถึงข้อมูลข้ามเว็บไซต์ แนวคิดที่แชร์ที่นี่มีความสำคัญต่อนักพัฒนาซอฟต์แวร์ที่สร้างฟังก์ชันการรายงานภายใน Shared Storage และ Protected Audience API

  • หากคุณเป็นนักพัฒนาซอฟต์แวร์ที่สร้างระบบการรายงานสําหรับการวัดผลข้ามเว็บไซต์
  • หากคุณเป็นนักการตลาด นักวิทยาศาสตร์ข้อมูล หรือผู้ใช้รายงานสรุปรายอื่นๆ การทำความเข้าใจกลไกเหล่านี้จะช่วยให้คุณตัดสินใจเกี่ยวกับการออกแบบเพื่อเรียกดูรายงานสรุปที่เพิ่มประสิทธิภาพได้

คำสำคัญ

ก่อนอ่านเอกสารนี้ คุณควรทำความคุ้นเคยกับคำศัพท์และแนวคิดสำคัญ เราจะอธิบายแต่ละข้อกำหนดเหล่านี้อย่างละเอียดที่นี่

  • คีย์การรวม (หรือที่เรียกว่าที่เก็บข้อมูล) คือชุดจุดข้อมูลที่กําหนดไว้ล่วงหน้า เช่น คุณอาจต้องการรวบรวมที่เก็บข้อมูลตําแหน่งซึ่งเบราว์เซอร์รายงานชื่อประเทศ คีย์การรวมอาจมีมิติข้อมูลมากกว่า 1 รายการ (เช่น ประเทศและรหัสวิดเจ็ตเนื้อหา)
  • ค่าที่รวบรวมได้คือจุดข้อมูลแต่ละจุดที่รวบรวมไว้ในคีย์การรวม หากต้องการวัดจํานวนผู้ใช้จากฝรั่งเศสที่เห็นเนื้อหาของคุณ France จะเป็นมิติข้อมูลในคีย์การรวม และ viewCount ของ 1 คือค่าที่รวบรวมได้
  • ระบบจะสร้างและเข้ารหัสรายงานที่รวบรวมได้ภายในเบราว์เซอร์ สําหรับ Private Aggregation API ข้อมูลนี้จะประกอบด้วยข้อมูลเกี่ยวกับเหตุการณ์เดียว
  • บริการรวบรวมข้อมูลจะประมวลผลข้อมูลจากรายงานที่รวบรวมได้เพื่อสร้างรายงานสรุป
  • รายงานสรุปคือเอาต์พุตสุดท้ายของบริการรวบรวมข้อมูล และประกอบด้วยข้อมูลผู้ใช้แบบรวมที่มีสัญญาณรบกวน และข้อมูล Conversion โดยละเอียด
  • เวิร์กเลตคือโครงสร้างพื้นฐานที่ช่วยให้คุณเรียกใช้ฟังก์ชัน JavaScript ที่เฉพาะเจาะจงและแสดงผลข้อมูลกลับไปยังผู้ขอ ในเวิร์กเลต คุณจะเรียกใช้ JavaScript ได้ แต่จะโต้ตอบหรือสื่อสารกับหน้าเว็บภายนอกไม่ได้

เวิร์กโฟลว์การรวมข้อมูลส่วนตัว

เมื่อคุณเรียกใช้ Private Aggregation API ด้วยคีย์การรวมข้อมูลและค่าที่รวมได้ เบราว์เซอร์จะสร้างรายงานที่รวมได้ ระบบจะส่งรายงานไปยังเซิร์ฟเวอร์ของคุณซึ่งจะจัดกลุ่มรายงาน บริการรวบรวมข้อมูลจะประมวลผลรายงานกลุ่มในภายหลัง และสร้างรายงานสรุป

ข้อมูลจะไหลจากไคลเอ็นต์ไปยังเครื่องมือรวบรวมข้อมูล จากนั้นไปยังบริการรวบรวมข้อมูลเพื่อสร้างรายงานสรุป
  1. เมื่อคุณเรียก Private Aggregation API ไคลเอ็นต์ (เบราว์เซอร์) จะสร้างและส่งรายงานที่รวบรวมได้ไปยังเซิร์ฟเวอร์เพื่อรวบรวม
  2. เซิร์ฟเวอร์จะรวบรวมรายงานจากไคลเอ็นต์และจัดกลุ่มเพื่อส่งไปยังบริการรวบรวมข้อมูล
  3. เมื่อรวบรวมรายงานได้เพียงพอแล้ว ให้จัดกลุ่มและส่งไปยังบริการรวบรวมข้อมูลซึ่งทํางานในสภาพแวดล้อมการดําเนินการที่เชื่อถือได้เพื่อสร้างรายงานสรุป

เวิร์กโฟลว์ที่อธิบายในส่วนนี้คล้ายกับ 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

สําหรับวัตถุประสงค์การทดสอบ คุณสามารถใช้ปุ่ม "ส่งรายงานที่เลือก" เพื่อส่งรายงานไปยังเซิร์ฟเวอร์ได้ทันที

รวบรวมและจัดกลุ่มรายงานที่รวบรวมข้อมูลได้

เบราว์เซอร์จะส่งรายงานที่รวบรวมข้อมูลได้ไปยังต้นทางของชิ้นงานซึ่งมีคําเรียก Private Aggregation API โดยใช้เส้นทางที่รู้จักซึ่งระบุไว้ดังต่อไปนี้

  • สำหรับพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน: /.well-known/private-aggregation/report-shared-storage
  • สําหรับกลุ่มเป้าหมายที่ได้รับการปกป้อง /.well-known/private-aggregation/report-protected-audience

คุณจะต้องใช้งานเซิร์ฟเวอร์ที่ทำหน้าที่เป็นผู้รวบรวมซึ่งรับรายงานที่รวบรวมได้ซึ่งส่งมาจากไคลเอ็นต์

จากนั้นเซิร์ฟเวอร์ควรจัดกลุ่มรายงานและส่งกลุ่มไปยังบริการรวบรวมข้อมูล สร้างกลุ่มตามข้อมูลที่อยู่ในเพย์โหลดที่ไม่ได้เข้ารหัสของรายงานที่รวบรวมได้ เช่น ช่อง shared_info โดยควรมีรายงานอย่างน้อย 100 รายการต่อกลุ่ม

คุณอาจเลือกส่งเป็นกลุ่มรายวันหรือรายสัปดาห์ก็ได้ กลยุทธ์นี้มีความยืดหยุ่น และคุณสามารถเปลี่ยนกลยุทธ์การแบ่งกลุ่มสําหรับกิจกรรมที่เฉพาะเจาะจงซึ่งคาดว่าจะมีปริมาณมากขึ้น เช่น วันของปีที่มีการคาดการณ์ว่าจะมีการแสดงผลมากขึ้น กลุ่มควรมีรายงานจาก API เวอร์ชันเดียวกัน ต้นทางการรายงาน และเวลารายงานที่กำหนดเวลาไว้

การกรองรหัส

Private Aggregation API และบริการการรวมข้อมูลอนุญาตให้ใช้การกรองรหัสเพื่อประมวลผลการวัดผลในระดับที่ละเอียดยิ่งขึ้น เช่น ตามแคมเปญโฆษณา แทนที่จะประมวลผลผลลัพธ์ในการค้นหาที่ใหญ่ขึ้น

แผนภาพ SS ของ PAA

หากต้องการเริ่มใช้ฟีเจอร์นี้ในวันนี้ โปรดดูขั้นตอนคร่าวๆ ต่อไปนี้เพื่อนำไปใช้กับการใช้งานปัจจุบัน

ขั้นตอนสำหรับพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน

หากคุณใช้ Shared Storage API ในขั้นตอน ให้ทำดังนี้

  1. กำหนดตำแหน่งที่จะประกาศและเรียกใช้โมดูลพื้นที่เก็บข้อมูลที่ใช้ร่วมกันใหม่ ในตัวอย่างนี้ เราได้ตั้งชื่อไฟล์โมดูลเป็น 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 ค่าเริ่มต้นนี้มีไว้เพื่อป้องกันไม่ให้ขนาดของเพย์โหลดเพิ่มขึ้นโดยไม่จำเป็น ซึ่งจะส่งผลให้มีค่าใช้จ่ายในการจัดเก็บและประมวลผล อ่านเพิ่มเติมในคำอธิบายการมีส่วนร่วมแบบยืดหยุ่น

  2. ในไฟล์ที่คุณใช้ด้านบน ซึ่งในกรณีนี้คือ 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);
    
  3. ระบบจะส่งรายงานที่รวบรวมข้อมูลได้ไปยังปลายทางที่คุณกำหนดไว้ /.well-known/private-aggregation/report-shared-storage ไปที่คู่มือการกรองรหัสเพื่อดูข้อมูลเกี่ยวกับการเปลี่ยนแปลงที่จำเป็นในพารามิเตอร์งานของบริการรวบรวมข้อมูล

หลังจากการแบ่งกลุ่มเสร็จสมบูรณ์และส่งไปยังบริการรวบรวมข้อมูลที่คุณติดตั้งใช้งานแล้ว ผลลัพธ์ที่กรองควรแสดงในรายงานสรุปขั้นสุดท้าย

ขั้นตอนของ Protected Audience

หากคุณใช้ Protected Audience API ในขั้นตอน ให้ทำดังนี้

  1. ในการนํากลุ่มเป้าหมายที่ได้รับการคุ้มครองมาใช้ในปัจจุบัน คุณสามารถตั้งค่าต่อไปนี้เพื่อเชื่อมต่อกับการรวบรวมข้อมูลส่วนตัว ต่างจากพื้นที่เก็บข้อมูลที่ใช้ร่วมกันตรงที่ยังไม่มีการกำหนดค่าขนาดสูงสุดของรหัสการกรอง โดยค่าเริ่มต้น ขนาดสูงสุดของรหัสการกรองคือ 1 ไบต์และจะตั้งค่าเป็น 0n โปรดทราบว่าการตั้งค่าเหล่านี้จะอยู่ในฟังก์ชันการรายงานกลุ่มเป้าหมายที่ได้รับการคุ้มครอง (เช่น reportResult() หรือ generateBid())

    const contribution = {
        ...
        filteringId: 0n
    };
    
    privateAggregation.contributeToHistogram(contribution);
    
  2. ระบบจะส่งรายงานที่รวบรวมข้อมูลได้ไปยังปลายทางที่คุณกำหนดไว้ /.well-known/private-aggregation/report-protected-audience หลังจากการแบ่งกลุ่มเสร็จสมบูรณ์และส่งไปยังบริการรวบรวมข้อมูลที่คุณติดตั้งใช้งานแล้ว ผลลัพธ์ที่กรองควรแสดงในรายงานสรุปขั้นสุดท้าย คําอธิบาย Attribution Reporting API และ Private Aggregation API พร้อมใช้งาน รวมถึงข้อเสนอเริ่มต้น

ไปที่คู่มือการกรองรหัสในบริการรวบรวมข้อมูล หรือไปที่ส่วน Attribution Reporting API เพื่ออ่านรายละเอียดเพิ่มเติม

บริการรวมข้อมูล

บริการจะทํางานใน TEE, ถอดรหัสรายงานที่รวบรวมได้ และเพิ่มสัญญาณรบกวนเพื่อสร้างรายงานสรุปขั้นสุดท้าย

บริการรวบรวมข้อมูลจะรับรายงานแบบรวมที่เข้ารหัสจากผู้รวบรวมข้อมูลและสร้างรายงานสรุป ดูกลยุทธ์เพิ่มเติมเกี่ยวกับวิธีจัดกลุ่มรายงานที่รวบรวมข้อมูลได้ในตัวรวบรวมได้ที่คู่มือการทํางานแบบเป็นกลุ่ม

บริการนี้ทำงานในสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (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 นี้แล้วและมีข้อเสนอแนะ เรายินดีรับฟัง