1. ข้อกำหนดเบื้องต้น
จำเป็นต้องมีข้อกำหนดเบื้องต้น 2-3 อย่างเพื่อดำเนินการ Codelab ระบบจะทำเครื่องหมายข้อกำหนดแต่ละข้อว่าจำเป็นสำหรับ "การทดสอบในพื้นที่" หรือไม่ หรือ "บริการรวบรวมข้อมูล"
1.1 ดาวน์โหลดเครื่องมือทดสอบในพื้นที่ (การทดสอบในพื้นที่)
การทดสอบในพื้นที่จะต้องดาวน์โหลดเครื่องมือทดสอบในพื้นที่ เครื่องมือจะสร้างรายงานสรุปจากรายงานการแก้ไขข้อบกพร่องที่ไม่ได้เข้ารหัส
ดาวน์โหลดเครื่องมือทดสอบในเครื่องได้ที่ที่เก็บถาวรของ Lambda JAR ใน GitHub ควรตั้งชื่อว่า LocalTestingTool_{version}.jar
1.2 ตรวจสอบว่าติดตั้ง JAVA JRE แล้ว (บริการทดสอบและรวบรวมข้อมูลในพื้นที่)
เปิด "Terminal" และใช้ java --version
เพื่อตรวจสอบว่าเครื่องมีการติดตั้ง Java หรือ openJDK หรือไม่
หากยังไม่ได้ติดตั้ง คุณจะดาวน์โหลดและติดตั้งได้จากเว็บไซต์ Java หรือเว็บไซต์ OpenJDK
1.3 ดาวน์โหลดตัวแปลงรายงานที่รวบรวมได้ (การทดสอบในเครื่องและบริการรวบรวมข้อมูล)
คุณดาวน์โหลดสำเนาเครื่องมือแปลงรายงานที่รวบรวมได้จากที่เก็บ GitHub แบบ Privacy Sandbox ของ Privacy Sandbox
1.4 เปิดใช้ Ad Privacy API (การทดสอบและบริการรวมข้อมูลในพื้นที่)
ในเบราว์เซอร์ ให้ไปที่ chrome://settings/adPrivacy
แล้วเปิดใช้ Ad Privacy API ทั้งหมด
ตรวจสอบว่าเปิดใช้คุกกี้ของบุคคลที่สามแล้ว
ในเบราว์เซอร์ ให้ไปที่ chrome://settings/cookies
แล้วเลือก "บล็อกคุกกี้ของบุคคลที่สามในโหมดไม่ระบุตัวตน"
1.5. การลงทะเบียนเว็บและ Android (บริการรวบรวมข้อมูล)
หากต้องการใช้ Privacy Sandbox API ในสภาพแวดล้อมการใช้งานจริง โปรดตรวจสอบว่าคุณได้ลงทะเบียนและเอกสารรับรองสำหรับทั้ง Chrome และ Android แล้ว
สำหรับการทดสอบในเครื่อง คุณปิดการลงทะเบียนได้โดยใช้ธง Chrome และสวิตช์ CLI
หากต้องการใช้ธง Chrome สำหรับการสาธิตของเรา ให้ไปที่ chrome://flags/#privacy-sandbox-enrollment-overrides
แล้วอัปเดตการลบล้างกับเว็บไซต์ของคุณ หรือหากคุณจะใช้เว็บไซต์สาธิตของเรา ก็ไม่จำเป็นต้องอัปเดต
1.6. การเริ่มต้นใช้งานบริการรวมข้อมูล (บริการรวบรวมข้อมูล)
บริการรวมข้อมูลต้องมีการเริ่มต้นใช้งานกับผู้ประสานงานจึงจะใช้บริการได้ กรอกแบบฟอร์มเริ่มต้นใช้งานบริการรวบรวมข้อมูลโดยระบุที่อยู่เว็บไซต์ในการรายงาน รหัสบัญชี AWS และข้อมูลอื่นๆ
1.7 ผู้ให้บริการระบบคลาวด์ (บริการรวมข้อมูล)
บริการรวมข้อมูลต้องใช้สภาพแวดล้อมการดำเนินการที่เชื่อถือได้ซึ่งใช้สภาพแวดล้อมระบบคลาวด์ บริการรวมข้อมูลใช้ได้กับ Amazon Web Services (AWS) และ Google Cloud (GCP) Codelab นี้จะครอบคลุมเฉพาะการผสานรวม AWS เท่านั้น
AWS มอบสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ที่เรียกว่า Nitro Enclaves ตรวจสอบว่าคุณมีบัญชี AWS แล้วและปฏิบัติตามคำแนะนำในการติดตั้งและอัปเดต AWS CLI เพื่อตั้งค่าสภาพแวดล้อม AWS CLI
หาก AWS CLI เป็นเครื่องใหม่ คุณสามารถกำหนดค่า AWS CLI โดยใช้วิธีการกำหนดค่า CLI
1.7.1. สร้างที่เก็บข้อมูล AWS S3
สร้างที่เก็บข้อมูล AWS S3 เพื่อจัดเก็บสถานะ Terraform และสร้างที่เก็บข้อมูล S3 อีกรายการเพื่อจัดเก็บรายงานและรายงานสรุป คุณสามารถใช้คำสั่ง CLI ที่ให้ไว้ได้ แทนที่ช่องใน <>
เป็นตัวแปรที่เหมาะสม
aws s3api create-bucket --bucket <tf_bucket_name> --region us-east-1
aws s3api create-bucket --bucket <report_bucket_name> --region us-east-1
1.7.2. สร้างคีย์การเข้าถึงของผู้ใช้
สร้างคีย์การเข้าถึงของผู้ใช้โดยใช้ AWS guide ซึ่งจะใช้เรียกปลายทาง API createJob
และ getJob
ที่สร้างขึ้นบน AWS
1.7.3. สิทธิ์ของผู้ใช้และกลุ่ม AWS
หากต้องการทำให้ Aggregation Service ใช้งานได้บน AWS คุณจะต้องให้สิทธิ์บางอย่างแก่ผู้ใช้ที่ใช้ในการทำให้บริการใช้งานได้ สําหรับ Codelab นี้ โปรดตรวจสอบว่าผู้ใช้มีสิทธิ์เข้าถึงระดับผู้ดูแลระบบเพื่อให้มั่นใจว่ามีสิทธิ์เต็มรูปแบบในการทำให้ใช้งานได้
1.8 terform (บริการรวบรวม)
Codelab นี้ใช้ terform เพื่อทำให้บริการ Aggregation ใช้งานได้ ตรวจสอบว่าได้ติดตั้งไบนารี terform ในสภาพแวดล้อมในเครื่องของคุณแล้ว
ดาวน์โหลดไบนารี terform ในสภาพแวดล้อมในเครื่องของคุณ
เมื่อดาวน์โหลดไบนารี terform แล้ว ให้แตกไฟล์และย้ายไบนารี terform ไปยัง /usr/local/bin
cp <directory>/terraform /usr/local/bin
ตรวจสอบว่า Terraform พร้อมใช้งานใน classpath แล้ว
terraform -v
1.9 Postman (สำหรับ AWS บริการรวมข้อมูล)
สำหรับ Codelab นี้ ให้ใช้ Postman เพื่อจัดการคำขอ
สร้างพื้นที่ทำงานโดยไปที่ "พื้นที่ทำงาน" รายการการนําทางด้านบนและเลือก "สร้างพื้นที่ทำงาน"
เลือก "พื้นที่ทํางานว่าง" แล้วคลิกถัดไปและตั้งชื่อว่า "Privacy Sandbox" เลือก "ส่วนตัว" และคลิก "สร้าง"
ดาวน์โหลดไฟล์การกำหนดค่า JSON และสภาพแวดล้อมทั่วโลกของพื้นที่ทำงานที่กำหนดค่าล่วงหน้า
นําเข้าไฟล์ JSON ไปยัง "พื้นที่ทํางานของฉัน" โดยใช้ "นำเข้า"
การดำเนินการนี้จะสร้างคอลเล็กชัน Privacy Sandbox ให้คุณพร้อมกับคำขอ HTTP createJob
และ getJob
อัปเดต "คีย์การเข้าถึง" AWS และ "คีย์ลับ" ผ่าน "การดูสภาพแวดล้อมอย่างรวดเร็ว"
คลิก "แก้ไข" และอัปเดต "มูลค่าปัจจุบัน" ของทั้ง "access_key" และ "secret_key" โปรดทราบว่า frontend_api_id
จะมีให้ในส่วนที่ 3.1.4 ของเอกสารนี้ และเราแนะนำให้ใช้ภูมิภาค us-east-1 อย่างไรก็ตาม หากต้องการติดตั้งใช้งานในภูมิภาคอื่น โปรดคัดลอก AMI ที่เผยแพร่ลงในบัญชี หรือสร้างด้วยตนเองโดยใช้สคริปต์ที่มีให้
2. Codelab การทดสอบในเครื่อง
คุณสามารถใช้เครื่องมือทดสอบในเครื่องเพื่อรวบรวมข้อมูลและสร้างรายงานสรุปโดยใช้รายงานการแก้ไขข้อบกพร่องที่ไม่เข้ารหัส
ขั้นตอน Codelab
ขั้นตอนที่ 2.1 ทริกเกอร์รายงาน: ทริกเกอร์การรายงานการรวมข้อมูลส่วนตัวเพื่อให้รวบรวมรายงานได้
ขั้นตอนที่ 2.2 สร้างรายงานแบบรวมสำหรับการแก้ไขข้อบกพร่อง: แปลงรายงาน JSON ที่เก็บรวบรวมไว้เป็นรายงานในรูปแบบ AVRO
ขั้นตอนนี้จะคล้ายกับเวลาที่เทคโนโลยีโฆษณารวบรวมรายงานจากอุปกรณ์ปลายทางการรายงาน API และแปลงรายงาน JSON เป็นรายงานที่มีรูปแบบ AVRO
ขั้นตอนที่ 2.3 แยกวิเคราะห์คีย์ที่เก็บข้อมูลจากรายงานการแก้ไขข้อบกพร่อง: คีย์ที่เก็บข้อมูลออกแบบโดยเทคโนโลยีโฆษณา ใน Codelab นี้ สืบเนื่องจากที่เก็บข้อมูลได้รับการกำหนดไว้ล่วงหน้า ให้เรียกคีย์ที่เก็บข้อมูลตามที่ให้ไว้
ขั้นตอนที่ 2.4 สร้าง AVRO โดเมนเอาต์พุต: เมื่อเรียกข้อมูลคีย์ที่เก็บข้อมูลแล้ว ให้สร้างไฟล์ AVRO โดเมนเอาต์พุต
ขั้นตอนที่ 2.5 สร้างรายงานสรุปโดยใช้เครื่องมือทดสอบในพื้นที่: ใช้เครื่องมือทดสอบในพื้นที่เพื่อสร้างรายงานสรุปในสภาพแวดล้อมในพื้นที่
ขั้นตอนที่ 2.6 ตรวจสอบรายงานสรุป: ตรวจสอบรายงานสรุปที่สร้างโดยเครื่องมือทดสอบในพื้นที่
2.1 ทริกเกอร์รายงาน
ไปที่เว็บไซต์การสาธิตเกี่ยวกับ Privacy Sandbox การดำเนินการนี้จะเรียกใช้รายงานการรวมข้อมูลส่วนตัว คุณดูรายงานนี้ได้ที่ chrome://private-aggregation-internals
หากรายงานมีสถานะ "รอดำเนินการ" คุณสามารถเลือกรายงานและคลิก "ส่งรายงานที่เลือก"
2.2 สร้างรายงานที่รวบรวมข้อมูลได้เพื่อแก้ไขข้อบกพร่อง
ใน chrome://private-aggregation-internals
ให้คัดลอก "เนื้อความของรายงาน" ที่ได้รับในปลายทาง [reporting-origin]/.well-known/private-aggregation/report-shared-storage
ตรวจสอบว่าใน "Report Body" aggregation_coordinator_origin
มี https://publickeyservice.msmt.aws.privacysandboxservices.com
ซึ่งหมายความว่ารายงานดังกล่าวเป็นรายงาน AWS ที่รวบรวมได้
วาง "รายงานส่วนเนื้อหา" ในรูปแบบ JSON ในไฟล์ JSON ในตัวอย่างนี้ คุณสามารถใช้ vim แต่คุณสามารถใช้เครื่องมือแก้ไขข้อความใดก็ได้
vim report.json
วางรายงานใน report.json
แล้วบันทึกไฟล์
เมื่อได้รับแล้ว ให้ไปที่โฟลเดอร์รายงาน แล้วใช้ aggregatable_report_converter.jar
ช่วยสร้างรายงานที่รวบรวมการแก้ไขข้อบกพร่องได้ การดำเนินการนี้จะสร้างรายงานที่รวบรวมได้ชื่อ report.avro
ในไดเรกทอรีปัจจุบันของคุณ
java -jar aggregatable_report_converter.jar \
--request_type convertToAvro \
--input_file report.json \
--debug
2.3 แยกวิเคราะห์คีย์ที่เก็บข้อมูลจากรายงานการแก้ไขข้อบกพร่อง
บริการรวมข้อมูลต้องใช้ 2 ไฟล์เมื่อจัดกลุ่ม รายงานที่รวบรวมได้และไฟล์โดเมนเอาต์พุต ไฟล์โดเมนเอาต์พุตจะมีคีย์ที่คุณต้องการเรียกจากรายงานที่รวบรวมได้ หากต้องการสร้างไฟล์ output_domain.avro
คุณต้องมีคีย์ที่เก็บข้อมูลที่ดึงมาจากรายงานได้
คีย์ที่เก็บข้อมูลได้รับการออกแบบโดยผู้เรียกใช้ API และการสาธิตจะมีตัวอย่างคีย์ที่เก็บข้อมูลที่สร้างขึ้นล่วงหน้า เนื่องจากเดโมได้เปิดใช้โหมดแก้ไขข้อบกพร่องสำหรับการรวมข้อมูลแบบส่วนตัว คุณจึงแยกวิเคราะห์เพย์โหลดข้อความที่ชัดเจนในการแก้ไขข้อบกพร่องได้จาก "เนื้อความของรายงาน" เพื่อเรียกข้อมูลคีย์ที่เก็บข้อมูล อย่างไรก็ตาม ในกรณีนี้ การสาธิตแซนด์บ็อกซ์ความเป็นส่วนตัวของเว็บไซต์จะสร้างคีย์ที่เก็บข้อมูล เนื่องจากการรวมข้อมูลส่วนตัวสำหรับเว็บไซต์นี้อยู่ในโหมดแก้ไขข้อบกพร่อง คุณใช้ debug_cleartext_payload
จาก "รายงานส่วนเนื้อหา" ได้ เพื่อรับคีย์ที่เก็บข้อมูล
คัดลอก debug_cleartext_payload
จากเนื้อหารายงาน
เปิดเครื่องมือ Debug payload decoder for Private Aggregation แล้ววาง debug_cleartext_payload
ใน "INPUT" แล้วคลิก "ถอดรหัส"
หน้านี้จะแสดงค่าทศนิยมของคีย์ที่เก็บข้อมูล ตัวอย่างคีย์ที่เก็บข้อมูลมีดังนี้
2.4 สร้าง AVRO โดเมนเอาต์พุต
ตอนนี้เรามีคีย์ที่เก็บข้อมูลแล้ว ต่อไปก็คัดลอกค่าทศนิยมของคีย์ที่เก็บข้อมูลได้เลย ดำเนินการต่อเพื่อสร้าง output_domain.avro
โดยใช้คีย์ที่เก็บข้อมูล ตรวจสอบว่าคุณได้แทนที่
ด้วยคีย์ที่เก็บข้อมูลที่ดึงมา
java -jar aggregatable_report_converter.jar \
--request_type createDomainAvro \
--bucket_key <bucket key>
สคริปต์จะสร้างไฟล์ output_domain.avro
ในโฟลเดอร์ปัจจุบัน
2.5 สร้างรายงานสรุปโดยใช้เครื่องมือทดสอบในพื้นที่
เราจะใช้ LocalTestingTool_{version}.jar
ที่ดาวน์โหลดในส่วน 1.1 ในการสร้างรายงานสรุป ใช้คำสั่งต่อไปนี้ คุณควรแทนที่ LocalTestingTool_{version}.jar
ด้วยเวอร์ชันที่ดาวน์โหลดสำหรับ LocalTestingTool
เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างรายงานสรุปในสภาพแวดล้อมการพัฒนาภายในของคุณ
java -jar LocalTestingTool_{version}.jar \
--input_data_avro_file report.avro \
--domain_avro_file output_domain.avro \
--output_directory .
คุณจะเห็นสิ่งที่คล้ายกับรูปภาพต่อไปนี้เมื่อเรียกใช้คำสั่งแล้ว ระบบจะสร้างรายงาน output.avro
เมื่อการดำเนินการนี้เสร็จสมบูรณ์
2.6 ตรวจสอบรายงานสรุป
รายงานสรุปที่สร้างจะอยู่ในรูปแบบ AVRO คุณต้องแปลง AVRO เป็นรูปแบบ JSON จึงจะอ่านได้ โดยหลักการแล้ว เทคโนโลยีโฆษณาควรเขียนโค้ดเพื่อแปลงรายงาน AVRO กลับไปเป็น JSON
สำหรับ Codelab เราจะใช้เครื่องมือ aggregatable_report_converter.jar
ที่ให้มาเพื่อแปลงรายงาน AVRO กลับเป็น JSON
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file output.avro
ซึ่งจะแสดงรายงานที่คล้ายกับรูปภาพต่อไปนี้ พร้อมด้วยรายงาน output.json
ที่สร้างขึ้นในไดเรกทอรีเดียวกัน
เปิดไฟล์ JSON ในตัวแก้ไขที่ต้องการเพื่อตรวจสอบรายงานสรุป
3. การทำให้บริการรวบรวมข้อมูลใช้งานได้
หากต้องการทำให้บริการรวมใช้งานได้ ให้ทำตามขั้นตอนต่อไปนี้
ขั้นตอนที่ 3 การทำให้บริการรวมข้อมูลใช้งานได้: ทำให้บริการรวมข้อมูลบน AWS ใช้งานได้
ขั้นตอนที่ 3.1 โคลนที่เก็บบริการรวม
ขั้นตอนที่ 3.2 ดาวน์โหลดทรัพยากร Dependency ที่สร้างไว้ล่วงหน้า
ขั้นตอนที่ 3.3 สร้างสภาพแวดล้อมในการพัฒนาซอฟต์แวร์
ขั้นตอนที่ 3.4 ทำให้บริการรวมข้อมูลใช้งานได้
3.1 โคลนที่เก็บ Aggregation Service
โคลนที่เก็บ GitHub ของบริการรวบรวมในสภาพแวดล้อมในเครื่องของคุณ
git clone https://github.com/privacysandbox/aggregation-service.git
3.2 ดาวน์โหลดทรัพยากร Dependency ที่สร้างไว้ล่วงหน้า
เมื่อโคลนที่เก็บ Aggregation Service แล้ว ให้ไปที่โฟลเดอร์ Terraform ของที่เก็บและโฟลเดอร์ระบบคลาวด์ที่เกี่ยวข้อง หาก cloud_provider ของคุณเป็น AWS คุณดำเนินการต่อที่
cd <repository_root>/terraform/aws
ใน
ให้เรียกใช้ download_prebuilt_dependencies.sh
bash download_prebuilt_dependencies.sh
3.3. สร้างสภาพแวดล้อมในการพัฒนาซอฟต์แวร์
สร้างสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ใน
สร้างโฟลเดอร์ชื่อ dev
mkdir dev
คัดลอกเนื้อหาของโฟลเดอร์ demo
ลงในโฟลเดอร์ dev
cp -R demo/* dev
ย้ายไปที่โฟลเดอร์ dev
cd dev
อัปเดตไฟล์ main.tf
แล้วกด i
เป็นเวลา input
เพื่อแก้ไขไฟล์
vim main.tf
Uncomment โค้ดในช่องสีแดงโดยนำ # ออกและอัปเดตที่เก็บข้อมูลและชื่อคีย์
สำหรับ AWS main.tf
โค้ดที่ไม่ใช่ความคิดเห็นควรมีลักษณะดังต่อไปนี้
backend "s3" {
bucket = "<tf_state_bucket_name>"
key = "<environment_name>.tfstate"
region = "us-east-1"
}
เมื่อการอัปเดตเสร็จสมบูรณ์ ให้บันทึกการอัปเดตและออกจากเครื่องมือแก้ไขโดยกด esc
-> :wq!
การดำเนินการนี้จะบันทึกการอัปเดตใน main.tf
จากนั้นเปลี่ยนชื่อ example.auto.tfvars
เป็น dev.auto.tfvars
mv example.auto.tfvars dev.auto.tfvars
อัปเดต dev.auto.tfvars
และกด i
เพื่อ input
เพื่อแก้ไขไฟล์
vim dev.auto.tfvars
อัปเดตฟิลด์ในช่องสีแดงตามรูปภาพด้านล่างด้วยพารามิเตอร์ AWS ARN ที่ถูกต้องซึ่งระบุไว้ในขั้นตอนการเริ่มต้นใช้งาน Aggregation Service, สภาพแวดล้อม และอีเมลแจ้งเตือน
เมื่ออัปเดตเสร็จแล้ว ให้กด esc
-> :wq!
การดำเนินการนี้จะบันทึกไฟล์ dev.auto.tfvars
และควรมีลักษณะคล้ายกับรูปภาพต่อไปนี้
3.4. ทำให้บริการรวมข้อมูลใช้งานได้
หากต้องการทำให้ Aggregation Service ใช้งานได้ ให้เริ่มต้น Terraform ในโฟลเดอร์เดียวกันที่ชื่อ
terraform init
ซึ่งควรให้ผลลัพธ์ที่คล้ายกับรูปภาพต่อไปนี้
เมื่อเริ่มต้น Terraform แล้ว ให้สร้างแผนการดำเนินการของ Terraform ซึ่งจะแสดงจำนวนทรัพยากรที่จะเพิ่มและข้อมูลเพิ่มเติมอื่นๆ ที่คล้ายกับรูปภาพต่อไปนี้
terraform plan
คุณสามารถดูได้ใน "แผน" ต่อไปนี้ สรุป หากเป็นการติดตั้งใช้งานใหม่ คุณควรจะเห็นจำนวนทรัพยากรที่จะเพิ่มด้วย 0 เพื่อเปลี่ยน และ 0 เพื่อทำลาย
เมื่อดำเนินการเสร็จแล้ว คุณจะสามารถใช้ Terraform ได้
terraform apply
เมื่อได้รับข้อความแจ้งให้ยืนยันการทำงานของ Terraform ให้ป้อน yes
ลงในค่า
เมื่อ terraform apply
เสร็จสิ้น ระบบจะแสดงผลปลายทางต่อไปนี้สำหรับ createJob
และ getJob
frontend_api_id
ที่คุณต้องการอัปเดตใน Postman ในส่วนที่ 1.9 จะแสดงผลด้วย
4. การสร้างอินพุตบริการการรวม
ดำเนินการต่อเพื่อสร้างรายงาน AVRO แบบกลุ่มในบริการรวมข้อมูล
ขั้นตอนที่ 4 การสร้างอินพุตบริการการรวม: สร้างรายงานบริการรวบรวมข้อมูลที่จัดกลุ่มสำหรับบริการรวมข้อมูล
ขั้นตอนที่ 4.1 รายงานทริกเกอร์
ขั้นตอนที่ 4.2 รวบรวมรายงานที่รวบรวมได้
ขั้นตอนที่ 4.3 แปลงรายงานเป็น AVRO
ขั้นตอนที่ 4.4 สร้าง AVRO โดเมนเอาต์พุต
4.1 ทริกเกอร์รายงาน
ไปที่เว็บไซต์การสาธิต Privacy Sandbox การดำเนินการนี้จะเรียกใช้รายงานการรวมข้อมูลส่วนตัว คุณดูรายงานนี้ได้ที่ chrome://private-aggregation-internals
หากรายงานมีสถานะ "รอดำเนินการ" คุณสามารถเลือกรายงานและคลิก "ส่งรายงานที่เลือก"
4.2 รวบรวมรายงานที่รวบรวมได้
รวบรวมรายงานที่รวบรวมได้จากปลายทาง .well-known
ของ API ที่เกี่ยวข้อง
- การรวมข้อมูลส่วนตัว
[reporting-origin] /.well-known/private-aggregation/report-shared-storage
- การรายงานการระบุแหล่งที่มา - รายงานสรุป
[reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution
สำหรับ Codelab นี้ คุณจะต้องดำเนินการรวบรวมรายงานด้วยตนเอง ในเวอร์ชันที่ใช้งานจริง คาดว่าเทคโนโลยีโฆษณาจะรวบรวมและแปลงรายงานแบบเป็นโปรแกรม
ใน chrome://private-aggregation-internals
ให้คัดลอก "เนื้อความของรายงาน" ที่ได้รับในปลายทาง [reporting-origin]/.well-known/private-aggregation/report-shared-storage
ตรวจสอบว่าใน "Report Body" aggregation_coordinator_origin
มี https://publickeyservice.msmt.aws.privacysandboxservices.com
ซึ่งหมายความว่ารายงานดังกล่าวเป็นรายงาน AWS ที่รวบรวมได้
วาง "รายงานส่วนเนื้อหา" ในรูปแบบ JSON ในไฟล์ JSON ในตัวอย่างนี้ คุณสามารถใช้ vim แต่คุณสามารถใช้เครื่องมือแก้ไขข้อความใดก็ได้
vim report.json
วางรายงานใน report.json
แล้วบันทึกไฟล์
4.3 แปลงรายงานเป็น AVRO
รายงานที่ได้รับจากปลายทาง .well-known
อยู่ในรูปแบบ JSON และจำเป็นต้องแปลงเป็นรูปแบบรายงาน AVRO เมื่อมีรายงาน JSON แล้ว ให้ไปที่โฟลเดอร์รายงานและใช้ aggregatable_report_converter.jar
เพื่อช่วยสร้างรายงานแบบรวมการแก้ไขข้อบกพร่อง การดำเนินการนี้จะสร้างรายงานที่รวบรวมได้ชื่อ report.avro
ในไดเรกทอรีปัจจุบันของคุณ
java -jar aggregatable_report_converter.jar \
--request_type convertToAvro \
--input_file report.json
4.4 สร้าง AVRO โดเมนเอาต์พุต
หากต้องการสร้างไฟล์ output_domain.avro
คุณต้องมีคีย์ที่เก็บข้อมูลที่ดึงมาจากรายงานได้
คีย์ที่เก็บข้อมูลออกแบบโดยเทคโนโลยีโฆษณา อย่างไรก็ตาม ในกรณีนี้ เว็บไซต์การสาธิต Privacy Sandbox จะสร้างคีย์ที่เก็บข้อมูล เนื่องจากการรวมข้อมูลส่วนตัวสำหรับเว็บไซต์นี้อยู่ในโหมดแก้ไขข้อบกพร่อง คุณใช้ debug_cleartext_payload
จาก "รายงานส่วนเนื้อหา" ได้ เพื่อรับคีย์ที่เก็บข้อมูล
คัดลอก debug_cleartext_payload
จากเนื้อความของรายงานได้เลย
เปิด goo.gle/ags-payload-decoder แล้ววาง debug_cleartext_payload
ใน "INPUT" แล้วคลิก "ถอดรหัส"
หน้านี้จะแสดงค่าทศนิยมของคีย์ที่เก็บข้อมูล ตัวอย่างคีย์ที่เก็บข้อมูลมีดังนี้
ตอนนี้เรามีคีย์ที่เก็บข้อมูลแล้ว ต่อไปก็สร้างคีย์ output_domain.avro
ได้เลย ตรวจสอบว่าคุณได้แทนที่
ด้วยคีย์ที่เก็บข้อมูลที่ดึงมา
java -jar aggregatable_report_converter.jar \
--request_type createDomainAvro \
--bucket_key <bucket key>
สคริปต์จะสร้างไฟล์ output_domain.avro
ในโฟลเดอร์ปัจจุบัน
4.5 ย้ายรายงานไปยังที่เก็บข้อมูล AWS
เมื่อสร้างรายงาน AVRO (จากส่วน 3.2.3) และโดเมนเอาต์พุต (จากส่วน 3.2.4) แล้ว โปรดย้ายโดเมนรายงานและโดเมนเอาต์พุตไปยังที่เก็บข้อมูล S3 การรายงาน
หากคุณตั้งค่า AWS CLI บนสภาพแวดล้อมในเครื่อง ให้ใช้คำสั่งต่อไปนี้เพื่อคัดลอกรายงานไปยังที่เก็บข้อมูล S3 และโฟลเดอร์รายงานที่เกี่ยวข้อง
aws s3 cp report.avro s3://<report_bucket_name>/<report_folder>/
aws s3 cp output_domain.avro s3://<report_bucket_name>/<output_domain_folder>/
5. การใช้บริการรวมข้อมูล
จาก terraform apply
คุณจะได้รับ create_job_endpoint
, get_job_endpoint
และ frontend_api_id
คัดลอก frontend_api_id
แล้ววางลงในตัวแปรร่วมของ Postman frontend_api_id
ที่คุณตั้งค่าในส่วนที่ต้องมีเบื้องต้น 1.9
ขั้นตอนที่ 5 การใช้บริการรวบรวมข้อมูล: ใช้ Aggregation Service API เพื่อสร้างรายงานสรุปและตรวจสอบรายงานสรุป
ขั้นตอนที่ 5.1 การใช้ createJob Endpoint เพื่อรวมกลุ่ม
ขั้นตอนที่ 5.2 การใช้ getJob Endpoint เพื่อเรียกข้อมูลสถานะกลุ่ม
ขั้นตอนที่ 5.3 การตรวจสอบรายงานสรุป
5.1 กำลังใช้ปลายทาง createJob
เพื่อจัดกลุ่ม
เปิด "Privacy Sandbox" ใน Postman แล้วเลือก "createJob"
เลือก "เนื้อหา" และเลือก "raw" เพื่อวางเพย์โหลดคำขอ
สคีมาเพย์โหลด createJob
มีอยู่ใน github และมีลักษณะคล้ายกับรายการต่อไปนี้ แทนที่ <>
ด้วยช่องที่เหมาะสม
{
"job_request_id": "<job_request_id>",
"input_data_blob_prefix": "<report_folder>/<report_name>.avro",
"input_data_bucket_name": "<bucket_name>",
"output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
"output_data_bucket_name": "<bucket_name>",
"job_parameters": {
"output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
"output_domain_bucket_name": "<bucket_name>",
"attribution_report_to": "<reporting origin of report>",
"reporting_site": "<domain of reporting origin(s) of report>", // Only one of attribution_report_to or reporting_site is required as of v2.7.0
"report_error_threshold_percentage": "10",
"debug_run": "true"
}
}
เมื่อคุณคลิก "ส่ง" จะเป็นการสร้างงานด้วย job_request_id
คุณควรได้รับการตอบกลับ HTTP 202 เมื่อบริการรวบรวมข้อมูลยอมรับคำขอแล้ว ดูโค้ดตอบกลับอื่นๆ ที่เป็นไปได้ในโค้ดตอบกลับ HTTP
5.2 การใช้ getJob Endpoint เพื่อเรียกข้อมูลสถานะแบบกลุ่ม
หากต้องการตรวจสอบสถานะของคำของาน คุณสามารถใช้ปลายทาง getJob
ได้ เลือก "getJob" ใน "Privacy Sandbox" คอลเล็กชัน
ใน "Params" ให้อัปเดตค่าjob_request_id เป็น job_request_id
ที่ส่งไปในคำขอ createJob
ผลลัพธ์ของ getJob
ควรแสดงสถานะคำของานด้วยสถานะ HTTP 200 คำขอ "Body" มีข้อมูลที่จำเป็น เช่น job_status
, return_message
และ error_messages
(หากงานมีข้อผิดพลาด)
เนื่องจากเว็บไซต์การรายงานของรายงานเดโมที่สร้างขึ้นแตกต่างจากเว็บไซต์ที่คุณเริ่มต้นใช้งานบนรหัส AWS ของคุณ คุณจึงอาจได้รับการตอบกลับด้วยรหัส Return_code ของ PRIVACY_BUDGET_AUTHORIZATION_ERROR
ซึ่งเป็นเรื่องปกติเนื่องจากรายงาน เว็บไซต์ของต้นทางการรายงานไม่ตรงกับเว็บไซต์การรายงานที่เริ่มต้นใช้งานสำหรับรหัส AWS
{
"job_status": "FINISHED",
"request_received_at": "2023-12-07T22:50:58.830956Z",
"request_updated_at": "2023-12-07T22:51:10.526326456Z",
"job_request_id": "<job_request_id>",
"input_data_blob_prefix": "<report_folder>/<report_name>.avro",
"input_data_bucket_name": "<input_bucket_name>",
"output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
"output_data_bucket_name": "<output_bucket_name>",
"postback_url": "",
"result_info": {
"return_code": "PRIVACY_BUDGET_AUTHORIZATION_ERROR",
"return_message": "Aggregation job successfully processed",
"error_summary": {
"error_counts": [],
"error_messages": []
},
"finished_at": "2023-12-07T22:51:10.517730898Z"
},
"job_parameters": {
"debug_run": "true",
"output_domain_bucket_name": "<output_domain_bucket_name>",
"output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
"attribution_report_to": "https://privacy-sandbox-demos-dsp.dev",
"reporting_site": "<domain of reporting origin(s) of report>", // Only one of attribution_report_to or reporting_site is required as of v2.7.0
},
"request_processing_started_at": "2023-12-07T22:51:06.034472697Z"
}
5.3 การตรวจสอบรายงานสรุป
เมื่อได้รับรายงานสรุปในที่เก็บข้อมูลเอาต์พุต S3 แล้ว คุณจะดาวน์โหลดรายงานนี้ลงในสภาพแวดล้อมในเครื่องได้ รายงานสรุปอยู่ในรูปแบบ AAVRO และแปลงกลับเป็น JSON ได้ คุณใช้ aggregatable_report_converter.jar
เพื่ออ่านรายงานโดยใช้คำสั่งต่อไปนี้ได้
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file <summary_report_avro>
ซึ่งจะแสดงผลเป็น JSON ของค่ารวมของคีย์ที่เก็บข้อมูลแต่ละคีย์ซึ่งมีลักษณะคล้ายกับรูปภาพต่อไปนี้
หากคำขอ createJob
มี debug_run
เป็น true
คุณจะได้รับรายงานสรุปในโฟลเดอร์แก้ไขข้อบกพร่องที่อยู่ใน output_data_blob_prefix
รายงานอยู่ในรูปแบบ AVRO และแปลงได้โดยใช้คำสั่งก่อนหน้าเป็น JSON
รายงานจะประกอบด้วยคีย์ที่เก็บข้อมูล เมตริกที่ไม่มีสัญญาณรบกวน และเสียงที่เพิ่มลงในเมตริกที่ไม่มีสัญญาณรบกวนเพื่อสร้างรายงานสรุป รายงานจะคล้ายกับรูปภาพต่อไปนี้
คำอธิบายประกอบยังมี in_reports
และ in_domain
ซึ่งหมายความว่า
- in_reports - คีย์ที่เก็บข้อมูลจะอยู่ในรายงานที่รวบรวมได้
- in_domain - คีย์ที่เก็บข้อมูลมีอยู่ในไฟล์ AVRO ของ exit_domain