निजता बजट खत्म होने की गड़बड़ी को डीबग करना

इस गाइड में, निजता बजट की गड़बड़ियों को ठीक करने की नई सुविधा इस्तेमाल करने का तरीका बताया गया है. यह सुविधा, v2.12.0 से एग्रीगेशन सेवा में उपलब्ध है.PRIVACY_BUDGET_EXHAUSTED दस्तावेज़ में बताया गया है कि एग्रीगेट की जा सकने वाली रिपोर्ट, एग्रीगेशन सेवा के डिप्लॉयमेंट में नौकरियों के ज़रिए सबमिट की जाती हैं. वहीं, बुनियादी ढांचा, निजता बजट के इस्तेमाल को सीमित करने के लिए, टीईई (भरोसेमंद एक्ज़ीक्यूशन एनवायरमेंट) कोऑर्डिनेटर में मौजूद Aggregatable Reporting Account Service पर निर्भर करता है. आपको याद दिला दें कि निजता बजट से यह तय होता है कि एग्रीगेट की जा सकने वाली इन रिपोर्ट का इस्तेमाल, खास जानकारी वाली रिपोर्ट जनरेट करने के लिए कितनी बार किया जा सकता है, ताकि ज़्यादा जानकारी न मिल पाए. अगर किसी रिपोर्ट को उसके लिए तय किए गए निजता बजट से ज़्यादा एग्रीगेट किया जाता है, तो PRIVACY_BUDGET_EXHAUSTED गड़बड़ी दिखेगी.

इस गाइड में, डीबग करने की सुविधा के बारे में बताया गया है. v2.12.0 से यह सुविधा, काम करने लगी है. यह सुविधा, काम से जुड़ी उन रिपोर्ट की हेल्पर JSON फ़ाइल जनरेट और सेव करती है जिनकी वजह से, बाद में आपकी नौकरियों में PRIVACY_BUDGET_EXHAUSTED से जुड़ी गड़बड़ियां हुईं.

अगर आपको बजट रिकवरी में दिलचस्पी है, तो GitHub पर उपलब्ध हमारे सार्वजनिक दिशा-निर्देश पढ़ें

ज़रूरी शर्तें

इस गाइड में यह माना गया है कि आपके पास ये चीज़ें हैं:

  • आपकी चुनी गई सार्वजनिक क्लाउड सेवा (Google Cloud Platform या Amazon Web Services) पर डिप्लॉय की गई एग्रीगेशन सेवा v2.12.0 (या बाद का वर्शन).

PRIVACY_BUDGET_EXHAUSTED गड़बड़ी की वजह से फ़ेल हुए जॉब को डीबग करना

इस समय, हम उम्मीद करते हैं कि आपने अपने नए नौकरी के अनुरोध आईडी के साथ getJob एंडपॉइंट को लागू कर दिया होगा. साथ ही, आपको PRIVACY_BUDGET_EXHAUSTED गड़बड़ी का मैसेज मिला होगा, जो इस जवाब के जैसा होगा. एग्रीगेशन सेवा 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 आउटपुट मिला है उसे ढूंढें और खोलें. यह <output_data_bucket_name>/<output_data_blob_prefix> में दिए गए return_message पाथ पर मौजूद है. उस JSON फ़ाइल में, इनपुट की गई एग्रीगेट की जा सकने वाली रिपोर्ट shared_info के साथ filtering_id (डिफ़ॉल्ट रूप से 0) और relevant_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 पर समस्या की जानकारी दें या तकनीकी सहायता फ़ॉर्म सबमिट करें.