1. ข้อกำหนดเบื้องต้น
หากต้องการใช้ Codelab นี้ คุณจะต้องมีคุณสมบัติเบื้องต้น 2-3 อย่าง ข้อกำหนดแต่ละข้อจะมีการทำเครื่องหมายว่าจำเป็นต่อ "การทดสอบในพื้นที่" หรือ "บริการรวบรวมข้อมูล"
1.1 ดาวน์โหลดเครื่องมือทดสอบในเครื่อง (การทดสอบในเครื่อง)
การทดสอบในเครื่องจะต้องมีการดาวน์โหลดเครื่องมือทดสอบในเครื่อง เครื่องมือจะสร้างรายงานสรุปจากรายงานการแก้ไขข้อบกพร่องที่ไม่ได้เข้ารหัส
เครื่องมือทดสอบในเครื่องมีให้ดาวน์โหลดได้ใน Lambda JAR Archive ใน GitHub ซึ่งควรตั้งชื่อเป็น LocalTestingTool_{version}.jar
1.2 ตรวจสอบว่าได้ติดตั้ง JAVA JRE (บริการทดสอบและรวบรวมข้อมูลในพื้นที่)
เปิด "Terminal" และใช้ java --version
เพื่อตรวจสอบว่าเครื่องมี Java หรือ openJDK ติดตั้งอยู่
หากยังไม่ได้ติดตั้ง คุณจะดาวน์โหลดและติดตั้งได้จากเว็บไซต์ Java หรือเว็บไซต์ openJDK
1.3 ดาวน์โหลดตัวแปลงรายงานที่รวบรวมได้ (บริการทดสอบและรวบรวมข้อมูลในพื้นที่)
คุณสามารถดาวน์โหลดสำเนาของตัวแปลงรายงานแบบรวมได้จากที่เก็บ GitHub สำหรับ Privacy Sandbox
1.4 เปิดใช้ Privacy Sandbox API (บริการทดสอบและรวบรวมข้อมูลภายในเครื่อง)
ในเบราว์เซอร์ ให้ไปที่ chrome://flags/#privacy-sandbox-ads-apis
แล้วเปิดใช้ Privacy Sandbox API
ตรวจสอบว่าได้เปิดใช้งานคุกกี้ของบุคคลที่สามแล้ว
ในเบราว์เซอร์ ให้ไปที่ chrome://settings/cookies
แล้วเลือก "บล็อกคุกกี้ของบุคคลที่สามในโหมดไม่ระบุตัวตน"
1.5. การลงทะเบียนเว็บและ Android (บริการรวบรวมข้อมูล)
หากต้องการใช้ Privacy Sandbox API ในสภาพแวดล้อมเวอร์ชันที่ใช้งานจริง โปรดตรวจสอบว่าคุณได้ลงทะเบียนและเอกสารรับรองสำหรับทั้ง Chrome และ Android เรียบร้อยแล้ว
สำหรับการทดสอบในเครื่อง คุณปิดใช้การลงทะเบียนได้โดยใช้แฟล็ก Chrome และสวิตช์ CLI
หากต้องการใช้ Chrome Flag สำหรับการสาธิต ให้ไปที่ chrome://flags/#privacy-sandbox-enrollment-overrides
และอัปเดตการลบล้างด้วยเว็บไซต์ของคุณ หรือหากคุณจะใช้เว็บไซต์เดโมของเรา ก็ไม่จําเป็นต้องอัปเดต
1.6. การเริ่มต้นใช้งานบริการรวบรวมข้อมูล (Aggregation Service)
บริการรวบรวมข้อมูลกำหนดให้ผู้ประสานงานต้องเริ่มต้นใช้งาน เพื่อให้ใช้บริการได้ กรอกแบบฟอร์มการเริ่มต้นใช้งานบริการรวบรวมข้อมูลโดยระบุที่อยู่เว็บไซต์ที่รายงาน รหัสบัญชี AWS และข้อมูลอื่นๆ
1.7 ผู้ให้บริการระบบคลาวด์ (บริการรวบรวม)
บริการรวบรวมต้องใช้สภาพแวดล้อมการดำเนินการที่เชื่อถือได้ซึ่งใช้สภาพแวดล้อมระบบคลาวด์ Amazon Web Services (AWS) และ Google Cloud (GCP) รองรับบริการรวบรวมข้อมูล Codelab นี้จะครอบคลุมเฉพาะการผสานรวม AWS เท่านั้น
AWS มีสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ที่เรียกว่า Nitro Enclave ตรวจสอบว่าคุณมีบัญชี 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 ชื่อนี้จะใช้ในการเรียกปลายทาง API ของ createJob
และ getJob
ที่สร้างขึ้นบน AWS
1.7.3. สิทธิ์ของผู้ใช้และกลุ่ม AWS
หากต้องการทำให้ Aggregation Service ใช้งานได้บน AWS คุณจะต้องให้สิทธิ์บางอย่างแก่ผู้ใช้ที่ใช้สำหรับการทำให้บริการใช้งานได้ สำหรับ Codelab นี้ โปรดตรวจสอบว่าผู้ใช้มีสิทธิ์เข้าถึงระดับผู้ดูแลระบบเพื่อให้แน่ใจว่าผู้ใช้มีสิทธิ์โดยสมบูรณ์ในการทำให้ใช้งานได้
1.8 เทอร์ราฟอร์ม (บริการรวบรวมเนื้อหา)
Codelab นี้ใช้ terform เพื่อทำให้บริการ Aggregation ใช้งานได้ ตรวจสอบว่าได้ติดตั้งไบนารี terform ในสภาพแวดล้อมภายในแล้ว
ดาวน์โหลดไบนารี Terraform ในสภาพแวดล้อมภายในของคุณ
เมื่อดาวน์โหลดไบนารี terform แล้ว ให้แตกไฟล์และย้ายไบนารี Terraform ไปยัง /usr/local/bin
cp <directory>/terraform /usr/local/bin
ตรวจสอบว่า Terraform พร้อมใช้งานใน classpath
terraform -v
1.9 Postman (สำหรับ Aggregation Service AWS)
สำหรับ Codelab นี้ ให้ใช้ Postman สำหรับการจัดการคำขอ
สร้างพื้นที่ทำงานโดยไปที่รายการการนำทางด้านบน "พื้นที่ทำงาน" แล้วเลือก "สร้างพื้นที่ทำงาน"
เลือก "พื้นที่ทํางานเปล่า" คลิกถัดไป แล้วตั้งชื่อว่า "Privacy Sandbox" เลือก "ส่วนตัว" และคลิก "สร้าง"
ดาวน์โหลดการกำหนดค่า JSON และไฟล์สภาพแวดล้อมส่วนกลางของพื้นที่ทำงานที่กำหนดค่าไว้ล่วงหน้า
นําเข้าไฟล์ JSON ไปยัง "พื้นที่ทำงานของฉัน" โดยใช้ปุ่ม "นำเข้า"
การดำเนินการนี้จะสร้างคอลเล็กชัน Privacy Sandbox ให้กับคุณ รวมถึงคำขอ HTTP createJob
และ getJob
อัปเดต "Access Key" (คีย์การเข้าถึง) และ "Secret Key" ของ AWS ผ่าน "Environment quick look"
คลิก "แก้ไข" และอัปเดต "ค่าปัจจุบัน" ของทั้ง "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 ได้
วาง "Report Body" ของ 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 และการสาธิตมีคีย์ตัวอย่างที่สร้างไว้ล่วงหน้า เนื่องจากเดโมได้เปิดใช้โหมดแก้ไขข้อบกพร่องสําหรับการรวมส่วนตัวแล้ว คุณจึงแยกวิเคราะห์เพย์โหลดการแก้ไขข้อบกพร่องแบบข้อความล้างการแก้ไขข้อบกพร่องจาก "เนื้อความของรายงาน" เพื่อเรียกข้อมูลคีย์ที่เก็บข้อมูลได้ อย่างไรก็ตาม ในกรณีนี้ การสาธิต Privacy Sandbox ของเว็บไซต์จะสร้างคีย์ที่เก็บข้อมูล เนื่องจากการรวมส่วนตัวของเว็บไซต์นี้อยู่ในโหมดแก้ไขข้อบกพร่อง คุณจึงใช้ debug_cleartext_payload
จาก "เนื้อความของรายงาน" เพื่อรับคีย์ที่เก็บข้อมูลได้
คัดลอก debug_cleartext_payload
จากเนื้อความของรายงาน
เปิดเครื่องมือแก้ไขข้อบกพร่องตัวถอดรหัสเพย์โหลดสำหรับ 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. การติดตั้งใช้งานบริการรวบรวม
หากต้องการทำให้ Aggregation Service ใช้งานได้ ให้ทำตามขั้นตอนต่อไปนี้
ขั้นตอนที่ 3 การติดตั้งใช้งานบริการ Aggregation: ทำให้ Aggregation Service ใช้งานได้บน AWS
ขั้นตอนที่ 3.1 โคลนที่เก็บบริการรวม
ขั้นตอนที่ 3.2 ดาวน์โหลดทรัพยากร Dependency ที่สร้างไว้ล่วงหน้า
ขั้นตอนที่ 3.3 สร้างสภาพแวดล้อมในการพัฒนาซอฟต์แวร์
ขั้นตอนที่ 3.4 ทำให้บริการการรวมใช้งานได้
3.1 โคลนที่เก็บของบริการ Aggregation
ในสภาพแวดล้อมในเครื่องของคุณ ให้โคลนที่เก็บ GitHub ของ Aggregation Service
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
ยกเลิกการแสดงความคิดเห็นโค้ดในช่องสีแดงโดยการนำ # ออกและอัปเดตชื่อที่เก็บข้อมูลและชื่อคีย์
สำหรับ 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
การดำเนินการนี้ควรแสดงผลลัพธ์ที่คล้ายกับรูปภาพต่อไปนี้:
เมื่อเริ่มต้น Transform แล้ว ให้สร้างแผนดำเนินการของ Terraform ซึ่งแสดงจำนวนทรัพยากรที่จะเพิ่มและข้อมูลเพิ่มเติมอื่นๆ ที่คล้ายกับรูปภาพต่อไปนี้
terraform plan
คุณดูได้ในสรุป "แผน" ต่อไปนี้ หากเป็นการทำให้ใช้งานได้ใหม่ คุณควรเห็นจำนวนทรัพยากรที่จะเพิ่มโดยมี 0 เพื่อเปลี่ยน และ 0 ที่ต้องการทำลาย
เมื่อดำเนินการเสร็จแล้ว คุณจะดำเนินการต่อเพื่อใช้ Terraform ได้
terraform apply
เมื่อได้รับข้อความแจ้งให้ยืนยันการดำเนินการโดย Geoform ให้ป้อน 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 ได้
วาง "Report Body" ของ 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 เพื่อเรียกสถานะกลุ่ม
ขั้นตอนที่ 5.3 การตรวจสอบรายงานสรุป
5.1 กำลังใช้ปลายทาง createJob
เพื่อจัดกลุ่ม
ใน Postman ให้เปิดคอลเล็กชัน "Privacy Sandbox" แล้วเลือก "createJob"
เลือก "เนื้อหา" และเลือก "ข้อมูลดิบ" เพื่อวางเพย์โหลดคำขอ
สคีมาเพย์โหลด createJob
มีอยู่ใน github และมีลักษณะคล้ายกับรายการต่อไปนี้ แทนที่ <>
ด้วยช่องที่เหมาะสม
{
"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>",
"job_parameters": {
"output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
"output_domain_bucket_name": "<output_domain_bucket_name>",
"attribution_report_to": "<reporting origin of report>",
"report_error_threshold_percentage": "10",
"debug_run": "true"
}
}
เมื่อคุณคลิก "ส่ง"จะเป็นการสร้างงานด้วย job_request_id
คุณควรได้รับการตอบกลับ HTTP 202 เมื่อบริการรวบรวมข้อมูลได้รับการยอมรับแล้ว ดูรหัสการตอบกลับที่เป็นไปได้อื่นๆ ในรหัสการตอบกลับ HTTP
5.2 การใช้ปลายทาง getJob เพื่อเรียกสถานะกลุ่ม
หากต้องการตรวจสอบสถานะของคำของาน ให้ใช้ปลายทาง getJob
เลือก "getJob" ในคอลเล็กชัน "Privacy Sandbox"
ใน "Params" ให้อัปเดตค่า jobs_request_id เป็น job_request_id
ที่ส่งในคำขอ createJob
ผลลัพธ์ของ getJob
ควรแสดงสถานะคำของานด้วยสถานะ HTTP เป็น 200 คำขอ "Body" มีข้อมูลที่จำเป็น เช่น job_status
, return_message
และ error_messages
(หากงานมีข้อผิดพลาด)
เนื่องจากเว็บไซต์การรายงานของรายงานเดโมที่สร้างขึ้นแตกต่างจากเว็บไซต์ที่เริ่มต้นใช้งานในรหัส AWS ของคุณ คุณจึงอาจได้รับการตอบกลับด้วย PRIVACY_BUDGET_AUTHORIZATION_ERROR
return_code ซึ่งเป็นเรื่องปกติเนื่องจากเว็บไซต์ต้นทางการรายงานของรายงานไม่ตรงกับเว็บไซต์การรายงานที่เริ่มต้นใช้งานสำหรับรหัส 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-news.dev"
},
"request_processing_started_at": "2023-12-07T22:51:06.034472697Z"
}
5.3 การตรวจสอบรายงานสรุป
เมื่อได้รับรายงานสรุปในที่เก็บข้อมูลเอาต์พุต S3 แล้ว คุณจะดาวน์โหลดรายงานนี้ไปยังสภาพแวดล้อมในเครื่องได้ รายงานสรุปจะอยู่ในรูปแบบ AVRO และแปลงกลับไปเป็น 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 เป็นเอาต์พุต_domain