במדריך הזה נסביר איך משתמשים בתכונה החדשה לניפוי באגים של תקציב הפרטיות עבור שגיאות מסוג PRIVACY_BUDGET_EXHAUSTED
, שזמינה עכשיו ב-Aggregation Service החל מ-v2.12.0
. כפי שמתואר במסמכים, בזמן שדוחות שניתנים לצבירה נשלחים לפריסה של Aggregation Service דרך משימות, התשתית מסתמכת על שירות חשבון הדיווח שניתנים לצבירה שנמצא במרכזי התיאום של TEE (Trusted Execution Environment), כדי להגביל את השימוש בתקציב הפרטיות. כתזכורת, תקציב הפרטיות קובע את המספר המקסימלי של הפעמים שניתן להשתמש בדוחות האלה כדי ליצור דוחות סיכום, כדי להגביל את הצטברות המידע. כל צבירת דוחות מעבר לתקציב הפרטיות שהוקצה להם תיכשל עם השגיאה PRIVACY_BUDGET_EXHAUSTED
.
במדריך הזה נסביר על תכונת ניפוי באגים שמתחילה לפעול ב-v2.12.0
, ומייצרת ומאחסנת קובץ JSON עזר של דוחות רלוונטיים שתרמו לשגיאות PRIVACY_BUDGET_EXHAUSTED
הבאות שהתרחשו במשימות שלכם.
אם אתם רוצים לדעת איך משחזרים תקציב, תוכלו להמשיך לקרוא את ההנחיות הציבוריות שלנו ב-GitHub.
דרישה מוקדמת
במדריך הזה אנחנו יוצאים מנקודת הנחה ש:
- שירות צבירת נתונים
v2.12.0
(או גרסה מתקדמת יותר) שנפרס בענן הציבורי שבחרתם (Google Cloud Platform או Amazon Web Services).
ניפוי באגים של משימה שנכשלה עם השגיאה PRIVACY_BUDGET_EXHAUSTED
בשלב הזה, אנחנו מניחים שהפעלת את נקודת הקצה getJob
עם מזהה הבקשה האחרון שלך, וקיבלת שגיאת PRIVACY_BUDGET_EXHAUSTED
שדומה לתגובה הבאה. מ-Aggregation Service v2.12.0
, אמור להופיע קובץ JSON
חדש של ניפוי באגים של תקציב פרטיות שהתרוקן, שנמצא בקטגוריה של האחסון הציבורי בענן.
הנתיבים מפורטים ב-return_message לפי הפורמטים הבאים:
- נתיב הקובץ:
<output_data_bucket_name>/<output_data_blob_prefix>/
- שם הקובץ:
privacy_budget_exhausted_<request_received_at_timestamp>.json
{
"job_status": "FINISHED",
"request_received_at": <utc timestamp>,
"request_updated_at": <utc timestamp>,
"job_request_id": <customer assigned job id>,
…
"request_processing_started_at": <utc timestamp>,
"result_info": {
"return_code": "PRIVACY_BUDGET_EXHAUSTED",
"return_message": "com.google.aggregate.adtech.worker.exceptions.AggregationJobProcessException: Insufficient privacy budget for one or more aggregatable reports. No aggregatable report can appear in more than one aggregation job. Information related to reports that do not have budget can be found in the following file:
File path: ags-privacy-budget-codelab/output-bucket/output-domain Filename: privacy budget exhausted debugging information <utc timestamp> \n com.google.aggregate.adtech.worker.aggregation.concurrent.ConcurrentAggregationProcessor.consumePrivacyBudgetUnits(ConcurrentAggregationProcessor.java:525) \n com.google.aggregate.adtech.worker.aggregation.concurrent.ConcurrentAggregationProcessor.process(ConcurrentAggregationProcessor.java:319) \n com.google.aggregate.adtech.worker.WorkerPullWorkService.run(WorkerPullWorkService.java:157)",
"error_summary": {
"error_counts": "",
"error_messages": ""
}
}
}
שלבים לפתרון שגיאות
מאתרים את הפלט privacy_budget_exhausted_debugging_information_<utc timestamp>.json
שקיבלתם בקטגוריה הציבורית של Cloud Storage ופותחים אותו. הוא נמצא בנתיב <output_data_bucket_name>/<output_data_blob_prefix>
שצוין בקובץ return_message
.
בקובץ ה-JSON הזה, משווים את המאפיינים filtering_id
(ברירת המחדל היא 0) ו-relevant_shared_info
לדוחות הקלט שאפשר לצבור shared_info
.
אם נמצאה התאמה, סימן שהדוחות האלה חורגים מהתקציב שהוקצה להם וגורמים לכישלון של המשימה, ולכן צריך לסנן אותם במשימות עתידיות. חשוב לזכור שעדיין אפשר להשתמש בדוחות התואמים עם מזהה סינון אחר. אחרי שמזהים ומסירים את הדוחות התואמים מקובץ הדוחות האצווה AVRO
, אפשר להריץ מחדש את המשימה.
דוגמה לפלט של privacy_budget_exhausted_debugging_information_<utc timestamp>.json
:
{
"privacy_budget_exhausted_info" : {
"aggregatable_input_budget_consumption_info" : [ {
"aggregateable_input_budget_id" : {
"filtering_id" : 0,
"relevant_shared_info" : {
"api" : "attribution-reporting",
"attribution_destination" : "f246a4e6-dde9-46a5-a6b2-ea523b484d0a",
"reporting_origin" : "foo.com",
"scheduled_report_time" : 1738814400.000000000,
"source_registration_time" : 1738713600.000000000,
"version" : "0.1"
}
}
}, {
"aggregateable_input_budget_id" : {
"filtering_id" : 0,
"relevant_shared_info" : {
"api" : "attribution-reporting",
"attribution_destination" : "f246a4e6-dde9-46a5-a6b2-ea523b484d0a",
"reporting_origin" : "foo.com",
"scheduled_report_time" : 1738796400.000000000,
"source_registration_time" : 1738713600.000000000,
"version" : "0.1"
}
}
} ]
}
}
השלבים הבאים
בודקים אם מישהו אחר נתקל באותה בעיה במרכז השליטה לסטטוסים של Privacy Sandbox או במאגר הציבורי ב-GitHub. אם הבעיה בשירות הצבירה לא נפתרה, תוכלו לשלוח דיווח על בעיה ב-GitHub או למלא את הטופס לתמיכה טכנית.