1. דרישות מוקדמות
כדי לבצע את ה-Codelab הזה, יש צורך בכמה דרישות מוקדמות. כל דרישה מסומנת בהתאם אם היא נדרשת במסגרת 'בדיקה מקומית' או 'שירות צבירה'.
1.1. הורדת כלי הבדיקה המקומית (בדיקה מקומית)
כדי לבצע בדיקה מקומית, צריך להוריד את כלי הבדיקה המקומית. הכלי יפיק דוחות סיכום מדוחות ניפוי הבאגים שאינם מוצפנים.
כלי הבדיקה המקומית זמין להורדה בארכיונים של Lambda JAR ב-GitHub. השם צריך להיות LocalTestingTool_{version}.jar
.
1.2. מוודאים ש-JAVA JRE מותקן (שירות בדיקה וצבירת נתונים מקומי)
פותחים את Terminal. ולהשתמש ב-java --version
כדי לבדוק אם במחשב שלך מותקנת Java או openJDK.
אם היא לא מותקנת, אפשר להוריד ולהתקין מאתר Java או באתר openJDK.
1.3. הורדת הכלי להמרת דוחות Aggregatable (שירות בדיקה וצבירת נתונים מקומי)
אתם יכולים להוריד עותק של ממיר הדוחות המצטבר ממאגר ההדגמות של ארגז החול לפרטיות ב-GitHub.
1.4. הפעלת ממשקי API לשמירה על פרטיות בפרסום (שירות בדיקות מקומיות וצבירת נתונים)
בדפדפן, נכנסים אל chrome://settings/adPrivacy
ומפעילים את כל ממשקי ה-API לשמירה על פרטיות בפרסום.
צריך לוודא שקובצי Cookie של צד שלישי מופעלים.
בדפדפן, עוברים אל chrome://settings/cookies
ובוחרים באפשרות 'חסימת קובצי cookie של צד שלישי במצב פרטי'.
1.5. רישום באינטרנט וב-Android (שירות צבירת נתונים)
כדי להשתמש בממשקי API של ארגז החול לפרטיות בסביבת ייצור, צריך לוודא שהשלמת את תהליך ההרשמה והאימות ב-Chrome וב-Android.
בבדיקות מקומיות, אפשר להשבית את הרישום באמצעות דגל Chrome ומתג CLI.
כדי להשתמש בדגל של Chrome לצורך ההדגמה שלנו, יש לעבור אל chrome://flags/#privacy-sandbox-enrollment-overrides
ולעדכן את הביטול באתר שלך. אם בכוונתך להשתמש באתר ההדגמה שלנו, אין צורך בעדכון.
1.6. קליטה של שירות אגרגטור (שירות צבירה)
כדי להשתמש בשירות, המתאמים צריכים להצטרף לשירות הצבירה. ממלאים את טופס ההצטרפות לשירות Aggregation Service ומציינים את כתובת האתר לדיווח, את מספר חשבון 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. הפעולה הזו תשמש לקריאה לנקודות הקצה ל-API createJob
ו-getJob
שנוצרו ב-AWS.
1.7.3. הרשאות של משתמשים וקבוצות ב-AWS
כדי לפרוס שירות צבירה ב-AWS, תצטרכו לספק הרשאות מסוימות למשתמש שמשמש לפריסת השירות. כדי להבטיח הרשאות מלאות בפריסה, צריך לוודא שלמשתמש יש גישת אדמין.
1.8. Terraform (שירות צבירה)
ב-Codelab הזה נעשה שימוש ב-Terraform כדי לפרוס את השירות Aggregation Service. מוודאים שהקובץ הבינארי של Terraform מותקן בסביבה המקומית.
מורידים את הקובץ הבינארי של Terraform לסביבה המקומית.
לאחר הורדת הקובץ הבינארי של Terraform, מחלצים את הקובץ ומעבירים את הקובץ הבינארי של Terraform אל /usr/local/bin
.
cp <directory>/terraform /usr/local/bin
צריך לוודא ש-Terraform זמינה ב-classpath.
terraform -v
1.9. Postman (לשירות Aggregation Service AWS)
ב-Codelab הזה, משתמשים ב-Postman לניהול בקשות.
כדי ליצור סביבת עבודה חדשה, נכנסים אל סביבות עבודה פריט הניווט העליון ובוחרים באפשרות יצירת סביבת עבודה.
בוחרים באפשרות סביבת עבודה ריקה, לוחצים על 'הבא' ונותנים לה את השם ארגז החול לפרטיות. בוחרים באפשרות אישי. ולוחצים על יצירה.
מורידים את קובצי ההגדרות של JSON וסביבה גלובלית של סביבת העבודה שהוגדרו מראש.
מייבאים את קובצי ה-JSON אל סביבת העבודה שלי באמצעות 'ייבוא' לחצן.
הפעולה הזו תיצור עבורך את האוסף 'ארגז החול לפרטיות' יחד עם בקשות ה-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. דוח טריגר
נכנסים לאתר ההדגמה של ארגז החול לפרטיות. הפעולה הזו מפעילה דוח צבירה פרטית. אפשר להציג את הדוח בכתובת chrome://private-aggregation-internals
.
אם הסטטוס של הדוח הוא בהמתנה הסטטוס, אפשר לבחור את הדוח וללחוץ על "שלח דוחות שנבחרו".
2.2. יצירת דוח נצברים של ניפוי באגים
בקטע chrome://private-aggregation-internals
, מעתיקים את "גוף הדוח" שהתקבלו בנקודת הקצה [reporting-origin]/.well-known/private-aggregation/report-shared-storage
.
מוודאים שבגוף הדוח הערך aggregation_coordinator_origin
מכיל את הערך https://publickeyservice.msmt.aws.privacysandboxservices.com
, והמשמעות היא שהדוח הוא דוח נצברים של AWS.
ממקמים את קובץ ה-JSON "Report Body" (גוף הדוח) בקובץ 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. ניתוח מפתח הקטגוריה מדוח ניפוי הבאגים
לשירות הצבירה נדרשים שני קבצים בעת קיבוץ באצווה. הדוח המצטבר וקובץ הדומיין של הפלט. קובץ הדומיין של הפלט מכיל את המפתחות שברצונך לאחזר מהדוחות הנצברים. כדי ליצור את הקובץ output_domain.avro
, צריך את המפתחות של הקטגוריות שאפשר לאחזר מהדוחות.
המפתחות של הקטגוריות מעוצבים על ידי מבצע הקריאה החוזרת של ה-API, וההדגמה מכילה מפתחות של קטגוריות לדוגמה שנוצרו מראש. בהדגמה הופעל מצב ניפוי באגים לצבירה פרטית, ולכן אפשר לנתח את המטען הייעודי (payload) של ניפוי באגים דרך טקסט חופשי בקטע Report Body. כדי לאחזר את מפתח הקטגוריה. עם זאת, במקרה כזה, ההדגמה של ארגז החול לפרטיות באתר יוצרת את מפתחות הקטגוריה. הצבירה הפרטית לאתר הזה נמצאת במצב ניפוי באגים, לכן אפשר להשתמש בdebug_cleartext_payload
מתוך "גוף הדוח" כדי לקבל את מפתח הקטגוריה.
מעתיקים את debug_cleartext_payload
מגוף הדוח.
פותחים את הכלי מפענח מטען ייעודי לניפוי באגים עבור צבירה פרטית ומדביקים את הפרמטר 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. מורידים יחסי תלות שנוצרו מראש
שלב 3.3. יוצרים סביבת פיתוח
שלב 3.4. פריסת שירות צבירה
3.1. שכפול המאגר של Aggregation Service
בסביבה המקומית, משכפלים את מאגר GitHub של שירות הצבירה.
git clone https://github.com/privacysandbox/aggregation-service.git
3.2. הורדת יחסי תלות שנוצרו מראש
אחרי שכפול המאגר של Aggregation Service, עוברים לתיקיית Terraform של המאגר ולתיקיית Cloud המתאימה. אם 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 שסופקו במהלך ההצטרפות לשירות הצבירה, הסביבה וההתראות באימייל.
בסיום העדכונים, לוחצים על הסמל esc
-> :wq!
. הפעולה הזו שומרת את הקובץ dev.auto.tfvars
והוא אמור להיראות כמו התמונה הבאה.
3.4. פריסת שירות צבירה
כדי לפרוס את Aggregation Service, באותה תיקייה
, צריך לאתחל את Terraform.
terraform init
הפלט אמור להחזיר משהו שדומה לתמונה הבאה:
אחרי ההפעלה של Terraform, יוצרים את תוכנית הביצוע של Terraform. כאשר מוחזר מספר המשאבים שיש להוסיף ומידע נוסף, בדומה לתמונה הבאה.
terraform plan
אפשר לראות את האפשרויות הבאות בקטע Plan (תוכנית) אם זו פריסה חדשה, תראו את מספר המשאבים שיתווספו עם הערך 0 כדי לשנות את המספר ואת הערך 0 כדי להשמיד אותם.
לאחר השלמת השלב הזה, אפשר להמשיך להחלת Terraform.
terraform apply
כשמוצגת בקשה לאשר את ביצוע הפעולות על ידי Terraform, מזינים yes
בערך.
כש-terraform apply
מסתיים, מוחזרות נקודות הקצה הבאות של createJob
ו-getJob
. מוחזר גם frontend_api_id
שאתה צריך לעדכן ב-Postman בקטע 1.9.
4. יצירת קלט של שירות צבירה
ממשיכים ליצירת דוחות AVRO לאצוות ב-Aggregation Service.
שלב 4: יצירת קלט של שירות צבירה: יצירת דוחות של שירות הצבירה שנאספו באצווה לשירות צבירת נתונים.
שלב 4.1. דוח טריגר
שלב 4.2. איסוף דוחות נצברים
שלב 4.3. המרת הדוחות ל-AVRO
שלב 4.4. יצירת קובץ ה-AVRO של דומיין הפלט
4.1. דוח טריגר
נכנסים לאתר ההדגמה של ארגז החול לפרטיות. הפעולה הזו מפעילה דוח צבירה פרטית. אפשר להציג את הדוח בכתובת chrome://private-aggregation-internals
.
אם הסטטוס של הדוח הוא בהמתנה הסטטוס, אפשר לבחור את הדוח וללחוץ על "שלח דוחות שנבחרו".
4.2. איסוף דוחות נצברים
איסוף הדוחות המצטברים מ-.well-known
נקודות הקצה ב-API התואם.
- צבירת נתונים פרטית
[reporting-origin] /.well-known/private-aggregation/report-shared-storage
- דוחות שיוך (Attribution) – דוח סיכום
[reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution
ב-Codelab הזה יתבצע איסוף הדוחות באופן ידני. בסביבת הייצור, טכנולוגיות הפרסום אמורות לאסוף ולהמיר את הדוחות באופן פרוגרמטי.
בקטע chrome://private-aggregation-internals
, מעתיקים את "גוף הדוח" שהתקבלו בנקודת הקצה [reporting-origin]/.well-known/private-aggregation/report-shared-storage
.
מוודאים שבגוף הדוח הערך aggregation_coordinator_origin
מכיל את הערך https://publickeyservice.msmt.aws.privacysandboxservices.com
, והמשמעות היא שהדוח הוא דוח נצברים של AWS.
ממקמים את קובץ ה-JSON "Report Body" (גוף הדוח) בקובץ JSON. בדוגמה הזו אפשר להשתמש ב-vim. אבל אפשר להשתמש בכל כלי לעריכת טקסט שרוצים.
vim report.json
מדביקים את הדוח ב-report.json
ושומרים את הקובץ.
4.3. המרת דוחות ל-AVRO
דוחות שמתקבלים מנקודות הקצה (endpoints) של .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
, צריך את המפתחות של הקטגוריות שאפשר לאחזר מהדוחות.
מפתחות של קטגוריות מעוצבים על ידי טכנולוגיית הפרסום. עם זאת, במקרה כזה, האתר ההדגמה של ארגז החול לפרטיות יוצר את מפתחות הקטגוריה. הצבירה הפרטית לאתר הזה נמצאת במצב ניפוי באגים, לכן אפשר להשתמש ב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
ומציבים אותו במשתנה הגלובלי frontend_api_id
של הדו"ח (post-man), שהגדרתם בסעיף 1.9 של הדרישות המוקדמות.
שלב 5: שימוש בשירות צבירה: שימוש ב-Aggregation Service API כדי ליצור דוחות סיכום ולבדוק את דוחות הסיכום.
שלב 5.1. שימוש בנקודת קצה (endpoint) של createJob באצווה
שלב 5.2. שימוש בנקודת קצה (endpoint) של getJob כדי לאחזר סטטוס של אצווה
שלב 5.3. בדיקת דוח הסיכום
5.1. שימוש בנקודת הקצה createJob
לאצוות
ב-Postman, פותחים את ארגז החול לפרטיות אוסף ובוחרים באפשרות createJob.
בוחרים באפשרות גוף ובוחרים באפשרות 'גולמי' כדי להציב את המטען הייעודי (payload) של הבקשה.
הסכימה של המטען הייעודי (payload) של 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. שימוש בנקודת קצה (endpoint) של getJob כדי לאחזר סטטוס של אצווה
כדי לבדוק את הסטטוס של בקשת המשימה, אפשר להשתמש בנקודת הקצה getJob
. בוחרים באפשרות getJob. בארגז החול לפרטיות האוסף 'עדכונים'.
בקטע Params, מעדכנים את הערך Job_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-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, תוכלו להוריד אותו לסביבה המקומית שלכם. דוחות סיכום הם בפורמט 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 (output_domain).