एग्रीगेशन सेवा का इस्तेमाल करते समय कई वजहों से समस्याएं आ सकती हैं. इनमें रिपोर्ट फ़ॉर्मैटिंग, आउटपुट डोमेन से जुड़ी समस्याएं, और कोऑर्डिनेटर से जुड़ी समस्याएं शामिल हैं. समस्या का सटीक विश्लेषण करने के लिए, गड़बड़ी के सोर्स और उसमें मौजूद मेटाडेटा को समझना ज़रूरी है.
गाइड के विषय:
- क्लाइंट मेज़रमेंट एपीआई के सेटअप की पुष्टि करना
- रिपोर्टिंग ऑरिजिन के सेटअप से जुड़ी समस्या हल करना
- अलग-अलग डेटा को मिलाकर तैयार की गई रिपोर्ट से जुड़ी समस्या हल करना
- डिप्लॉयमेंट वर्शन की जांच करना
क्लाइंट मेज़रमेंट एपीआई सेटअप की पुष्टि करना
अपने ऑरिजिन सर्वर के सही तरीके से रजिस्टर होने की पुष्टि करने के बाद, यह तरीका अपनाएं:
देखें कि रिपोर्ट कैसे ट्रिगर की जा रही हैं. पुष्टि करें कि आपको उस एपीआई के हिसाब से सही रिपोर्ट फ़ॉर्मैट मिल रहा है जिसका इस्तेमाल किया जा रहा है:
- Attribution Reporting API
- Attribution Reporting API के लिए, पक्का करें कि आपने सोर्स (इवेंट और खास जानकारी) को रजिस्टर कर लिया हो. ट्रिगर रजिस्ट्रेशन (इवेंट और खास जानकारी) करने के लिए, पक्का करें कि हेडर की पुष्टि करने वाले टूल का इस्तेमाल करके,
Attribution-Reporting-Register-Trigger
में पास किया गया JSON सही हो. (Attribution Reporting API की खास जानकारी वाली रिपोर्ट के बारे में ज़्यादा पढ़ें)
- Attribution Reporting API के लिए, पक्का करें कि आपने सोर्स (इवेंट और खास जानकारी) को रजिस्टर कर लिया हो. ट्रिगर रजिस्ट्रेशन (इवेंट और खास जानकारी) करने के लिए, पक्का करें कि हेडर की पुष्टि करने वाले टूल का इस्तेमाल करके,
- Private Aggregation API
- Private Aggregation API में रिपोर्टिंग,
contributeToHistogram
फ़ंक्शन का इस्तेमाल करके की जा सकती है. पक्का करें कि आपने बकेट की कुंजी और वैल्यू दी हो. बकेट कुंजी,BigInt
फ़ॉर्मैट में होनी चाहिए. (Private Aggregation API के बारे में ज़्यादा पढ़ें)
- Private Aggregation API में रिपोर्टिंग,
- Attribution Reporting API
अगर सुझाए गए तरीके से रिपोर्ट ट्रिगर की जा रही हैं, लेकिन फिर भी समस्या आ रही है, तो देखें कि Chrome Developer Console के "कंसोल" और "नेटवर्क", दोनों टैब में गड़बड़ियां दिख रही हैं या नहीं.
अगर आपको इन क्लाइंट एपीआई से जुड़ी समस्याओं को हल करने में और मदद चाहिए, तो Attribution Reporting API और Private Aggregation API + Shared Storage के लिए, डीबग करने से जुड़े हमारे दिशा-निर्देश पढ़ें.
रिपोर्टिंग ऑरिजिन के सेटअप से जुड़ी समस्या हल करना
रिपोर्टिंग ऑरिजिन सर्वर वह जगह है जहां आपने सही .well-known
एंडपॉइंट के बारे में बताया है. यहां इकट्ठा की जा सकने वाली रिपोर्ट भेजी जाएंगी. पुष्टि करें कि आपके डिप्लॉय किए गए रिपोर्टिंग ऑरिजिन सर्वर को सही तरीके से रजिस्टर किया गया हो.
क्या रिपोर्टिंग ऑरिजिन को रिपोर्ट मिल रही हैं?
पुष्टि करें कि आपके डिप्लॉय किए गए रिपोर्टिंग ऑरिजिन सर्वर को सही तरीके से रजिस्टर किया गया हो. इस सर्वर पर, आपने सही .well-known
एंडपॉइंट तय किए हैं. यहां इकट्ठा की जा सकने वाली रिपोर्ट भेजी जाएंगी.
क्लाइंट-साइड मेज़रमेंट एपीआई | एग्रीगेट किए जा सकने वाले एंडपॉइंट से मैच करना |
---|---|
एट्रिब्यूशन रिपोर्टिंग | POST /.well-known/attribution-reporting/report-aggregate-attribution |
निजी एग्रीगेशन + शेयर किया गया स्टोरेज (कॉम्बो) | POST /.well-known/private-aggregation/report-shared-storage |
निजी एग्रीगेशन + Protected Audience (कॉम्बो) | POST /.well-known/private-aggregation/report-protected-audience |
अपने ऑरिजिन सर्वर के सही तरीके से रजिस्टर होने की पुष्टि करने के बाद, यह तरीका अपनाएं:
देखें कि रिपोर्ट कैसे ट्रिगर की जा रही हैं. पुष्टि करें कि आपको उस एपीआई के हिसाब से सही रिपोर्ट फ़ॉर्मैट मिल रहा है जिसका इस्तेमाल किया जा रहा है:
अगर सुझाए गए तरीके से रिपोर्ट ट्रिगर की जा रही हैं, लेकिन फिर भी समस्या आ रही है, तो देखें कि Chrome Developer Console के "कंसोल" और "नेटवर्क", दोनों टैब में गड़बड़ियां दिख रही हैं या नहीं.
अगर आपको इन क्लाइंट एपीआई से जुड़ी समस्याओं को हल करने में और मदद चाहिए, तो Attribution Reporting API और Private Aggregation API + Shared Storage के लिए, डीबग करने से जुड़े दिशा-निर्देश पढ़ें.
एग्रीगेट रिपोर्ट से जुड़ी समस्या हल करना
एग्रीगेट रिपोर्ट, क्लाइंट-साइड मेज़रमेंट एपीआई से जनरेट होती हैं और इन्हें आपके रिपोर्टिंग ऑरिजिन पर भेजा जाता है. आपके रिपोर्टिंग एंडपॉइंट को इन रिपोर्ट को AVRO
फ़ॉर्मैट में बदलना चाहिए. अगर इस कन्वर्ज़न में समस्याएं हैं या रिपोर्ट में कोई गड़बड़ी है, तो आपको एग्रीगेशन सेवा में गड़बड़ियां दिख सकती हैं.
क्या एग्रीगेट की जा सकने वाली रिपोर्ट सही तरीके से बदल रही हैं?
पुष्टि करें कि आपका रिपोर्टिंग एंडपॉइंट (.well-known/…
), एग्रीगेट की जा सकने वाली दी गई JSON रिपोर्ट को सही तरीके से AVRO
में बदल रहा है.
इस समस्या की वजह से, एपीआई से जुड़ी ये गड़बड़ियां हो सकती हैं:
गड़बड़ी | DECRYPTION_ERROR |
---|---|
उदाहरण |
"result_info": {
"return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
"return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
"error_summary": {
"error_counts": [
{
"category": "DECRYPTION_ERROR",
"count": 1,
"description": "Unable to decrypt the report. This may be caused by: tampered aggregatable report shared info, corrupt encrypted report, or other such issues."
},
{
"category": "NUM_REPORTS_WITH_ERRORS",
"count": 1,
"description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
}
],
"error_messages": []
}
}
|
चेक |
ऐसा डिक्रिप्ट करने से जुड़ी गड़बड़ियों की वजह से हो सकता है. ये गड़बड़ियां, AVRO रिपोर्ट सही तरीके से जनरेट न होने की वजह से हो सकती हैं. भले ही, ये रिपोर्ट एग्रीगेट की जा सकने वाली AVRO रिपोर्ट हों या आउटपुट डोमेन AVRO. क्या एग्रीगेट की जा सकने वाली AVRO रिपोर्ट सही तरीके से जनरेट हुई हैं? पेलोड को base64 से डिकोड करके, बाइट कलेक्शन में बदलना होगा. पक्का करें कि रिपोर्ट, avro फ़ॉर्मैट में हो. साथ ही, यह भी देखें कि आउटपुट डोमेन AVRO सही है या नहीं. बकेट को एस्केप किए गए यूनिकोड हेक्स फ़ॉर्मैट में बदला जाता है. इसके बाद, उन्हें बाइट ऐरे में बदला जाता है.
अगर आपको गड़बड़ी की संख्या एक से ज़्यादा दिखती है, तो एग्रीगेशन सेवा के GitHub पेज पर जाकर, गड़बड़ियों के बारे में ज़्यादा जानें.
|
गड़बड़ी | DECRYPTION_KEY_NOT_FOUND |
---|---|
उदाहरण |
"result_info": {
"return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
"return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
"error_summary": {
"error_counts": [{
"category": "DECRYPTION_KEY_NOT_FOUND",
"count": 1,
"description": "Could not find decryption key on private key endpoint."
}, {
"category": "NUM_REPORTS_WITH_ERRORS",
"count": 1,
"description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
}],
"error_messages": []
}
}
|
चेक |
Attribution Reporting API
Attribution Reporting API के लिए, यह गड़बड़ी ट्रिगर रजिस्ट्रेशन से जुड़ी समस्या की वजह से हो सकती है. देखें कि उन्होंने aggregation_coordinator_origin फ़ील्ड का इस्तेमाल करके, अपने ट्रिगर को सही क्लाउड के साथ रजिस्टर किया है या नहीं. इस बारे में निर्देश यहां दिए गए हैं. हो सकता है कि आप एग्रीगेशन सेवा के Google Cloud डिप्लॉयमेंट के लिए, AWS से एन्क्रिप्ट (सुरक्षित) की गई रिपोर्ट उपलब्ध करा रहे हों. इसके अलावा, हो सकता है कि आप AWS डिप्लॉयमेंट के लिए, Google Cloud से एन्क्रिप्ट (सुरक्षित) की गई रिपोर्ट उपलब्ध करा रहे हों. उनसे पुष्टि करने के लिए कहें कि एग्रीगेट की जा सकने वाली रिपोर्ट को एन्क्रिप्ट करने के लिए, किस सार्वजनिक पासकोड एंडपॉइंट का इस्तेमाल किया गया था. Google Cloud के लिए, एग्रीगेट की जा सकने वाली रिपोर्ट में `aggregation_coordinator_origin` फ़ील्ड का डोमेन https://publickeyservice.msmt.gcp.privacysandboxservices.com होना चाहिए. AWS के लिए, यह डोमेन https://publickeyservice.msmt.aws.privacysandboxservices.com होना चाहिए. Private Aggregation APIPrivate Aggregation API के लिए, आपको 'aggregationCoordinatorOrigin' तय करना होगा. इसके लिए, Private Aggregation API के बारे में बताने वाले लेख में, एग्रीगेशन कोऑर्डिनेटर के विकल्प वाले सेक्शन में दिए गए उदाहरण का इस्तेमाल करें. कृपया उदाहरण के लिए: sharedStorage.run('someOperation', {'privateAggregationConfig':
{'aggregationCoordinatorOrigin': ' https://publickeyservice.msmt.gcp.privacysandboxservices.com'}});
|
गड़बड़ी | DECRYPTION_KEY_FETCH_ERROR |
---|---|
उदाहरण |
"result_info": {
"return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
"return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
"error_summary": {
"error_counts": [
{
"category": "DECRYPTION_KEY_FETCH_ERROR",
"count": 1,
"description": "Fetching the decryption key for report decryption failed. This can happen using an unapproved aggregation service binary, running the aggregation service binary in debug mode, key corruption or service availability issues."
},
{
"category": "NUM_REPORTS_WITH_ERRORS",
"count": 1,
"description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
}
]
}
}
|
चेक | अगर बाइनरी को मंज़ूरी नहीं मिली है या डीबग मोड से जुड़ी समस्याएं आ रही हैं, तो सही बाइनरी का इस्तेमाल करके समस्या को ठीक किया जा सकता है. पहले से बनाए गए एएमआई का इस्तेमाल करने या खुद एएमआई बनाने के लिए, यहां दिए गए निर्देशों का पालन करें. |
पुष्टि करने के लिए, यह तरीका अपनाएं:
aggregatable_report_converter
टूल का इस्तेमाल करके, .well-known एंडपॉइंट से इकट्ठा की गई उन रिपोर्ट को AVRO में बदला जा सकता है जिन्हें एग्रीगेट किया जा सकता है. साथ ही, आउटपुट डोमेन कुंजियां बनाई जा सकती हैं. (ध्यान दें: आउटपुट डोमेन फ़ाइलें, 16-बाइट बिग-इंडियन बाइटस्ट्रिंग होनी चाहिए.)अपनी डीबग रिपोर्ट इकट्ठा करने और आउटपुट डोमेन कुंजियों का इस्तेमाल करके एग्रीगेशन सेवा की जॉब चलाने के लिए, अपने पब्लिक क्लाउड की सेवा देने वाली कंपनी के लिए कोडलैब में दिया गया तरीका अपनाएं: a. Google Cloud: एग्रीगेशन सेवा के लिए Google Cloud Codelab के 3.1.2 से 3.2.3 तक के चरणों को पूरा करें. Amazon Web Services: एग्रीगेशन सेवा के AWS कोडलैब के 4.2 से 5.3 तक के चरणों का पालन करें.
अगर इससे SUCCESS
जवाब मिलता है, तो इसका मतलब है कि आपका कन्वर्ज़न काम कर रहा है.
क्या एग्रीगेट की जा सकने वाली रिपोर्ट में कोई बदलाव नहीं हुआ है?
पुष्टि करें कि आपकी एग्रीगेट रिपोर्ट, आउटपुट डोमेन कुंजियां, और शेयर की गई जानकारी पूरी हो. अगर आपको ज़्यादा जानकारी चाहिए, तो एग्रीगेट की जा सकने वाली रिपोर्ट को बदलने और डोमेन फ़ाइलें बनाने के लिए, सैंपल कोड देखें.
इस समस्या से जुड़ी एपीआई गड़बड़ियां, आपको ये दिख सकती हैं:
गड़बड़ी | INPUT_DATA_READ_FAILED |
---|---|
एंडपॉइंट | createJob |
चेक |
क्या createJob अनुरोध में input_data_bucket_name , input_data_blob_prefix , output_data_bucket_name , और output_data_blob_prefix फ़ील्ड सही हैं? क्या इनपुट रिपोर्ट के डेटा की जगह पर, प्रोसेस की जानी वाली रिपोर्ट मौजूद हैं? क्या आपके पास रिपोर्ट और आउटपुट डोमेन के लिए, स्टोरेज की जगह से डेटा पढ़ने की अनुमति है?
|
पुष्टि करने के लिए, यह तरीका अपनाएं:
एग्रीगेट रिपोर्ट की पुष्टि करने के लिए:
- एग्रीगेट रिपोर्ट जनरेट करें और आउटपुट डोमेन को
AVRO
फ़ॉर्मैट में बदलने के लिए,aggregatable_report_converter
टूल का इस्तेमाल करें. - एग्रीगेट की जा सकने वाली इस रिपोर्ट और आउटपुट डोमेन फ़ाइल के साथ
createJob
अनुरोध चलाएं. - अगर यह
SUCCESS
दिखाता है, तो इसका मतलब है कि एग्रीगेट की जा सकने वाली रिपोर्ट में कोई बदलाव नहीं हुआ है. अगर इससे गड़बड़ी का मैसेज मिलता है, तो इसका मतलब है कि एग्रीगेट की जा सकने वाली रिपोर्ट में कोई समस्या है या रिपोर्ट और डोमेन, दोनों में समस्या है. - अगले चरण में, डोमेन फ़ाइल की जांच करें.
- एग्रीगेट रिपोर्ट जनरेट करें और आउटपुट डोमेन को
आउटपुट डोमेन फ़ाइल की पुष्टि करें:
- आउटपुट डोमेन फ़ाइल जनरेट करें और एग्रीगेट की जा सकने वाली रिपोर्ट बनाने के लिए,
aggregatable_report_converter
टूल का इस्तेमाल करें. - एग्रीगेट की जा सकने वाली इस रिपोर्ट और आउटपुट डोमेन फ़ाइल के साथ
createJob
अनुरोध चलाएं. - अगर यह
SUCCESS
दिखाता है, तो इसका मतलब है कि आउटपुट डोमेन सही है और एग्रीगेट की जा सकने वाली रिपोर्ट बनाने के लिए, आपके कोड में कोई समस्या है. shared_info
की जांच करने के लिए, अगले चरण पर जाएं.
- आउटपुट डोमेन फ़ाइल जनरेट करें और एग्रीगेट की जा सकने वाली रिपोर्ट बनाने के लिए,
शेयर की गई जानकारी की पुष्टि करने के लिए:
- पक्का करें कि आपके पास डीबग की सुविधा चालू रिपोर्ट हों. डीबग की सुविधा चालू की गई रिपोर्ट में,
debug_cleartext_payload
फ़ील्ड उपलब्ध होगा. - लोकल टेस्टिंग टूल के साथ इस्तेमाल करने के लिए, डीबग रिपोर्ट बनाएं और पेलोड के तौर पर
debug_cleartext_payload
का इस्तेमाल करें. - अपनी डोमेन फ़ाइल के साथ, लोकल टेस्टिंग टूल चलाएं. अगर यह
SUCCESS
है, तो इसका मतलब है कि आपकीshared_info
फ़ाइल में छेड़छाड़ की गई है.
- पक्का करें कि आपके पास डीबग की सुविधा चालू रिपोर्ट हों. डीबग की सुविधा चालू की गई रिपोर्ट में,
अगर आपको लगता है कि कोई और गड़बड़ी हुई है या डेटा में छेड़छाड़ की गई है, तो JSON एग्रीगेट रिपोर्ट, डोमेन कुंजी, जनरेट की गई एग्रीगेट की गई AVRO
रिपोर्ट, और आउटपुट डोमेन इकट्ठा करें. इसके बाद, अगले चरणों पर जाएं.
डिप्लॉयमेंट के नए वर्शन की जांच करना
पुष्टि करें कि एग्रीगेशन सेवा का आपका वर्शन अब भी काम कर रहा है. यह पता लगाने के बाद कि आपके पास किस वर्शन का इस्तेमाल किया जा रहा है, एग्रीगेशन सेवा के रिलीज़ की सूची देखें और पुष्टि करें कि आपके वर्शन में, 'सहायता बंद होने की चेतावनी' नहीं है:
This release has reached its end of support on { date }
. यहां दिए गए निर्देश, उन सार्वजनिक क्लाउड के लिए हैं जिन पर यह सुविधा काम करती है. इनसे यह पता लगाया जा सकता है कि आपने कौनसा वर्शन डिप्लॉय किया है.
Google Cloud के लिए तरीका
- Compute Engine > VM इंस्टेंस पर जाएं.
- नाम में
-worker-
वाले वर्चुअल मशीन इंस्टेंस पर क्लिक करें. Custom Metadata
सेक्शन ढूंढें. इसके बाद, बटनtee-image-reference
ढूंढें.- ध्यान दें: Terraform की मदद से Google Cloud में प्रोवाइड किए गए हर वर्चुअल मशीन में यह मेटाडेटा (वर्कर्स मॉड्यूल में
tee-image-reference
मेटाडेटा) होना चाहिए.
- ध्यान दें: Terraform की मदद से Google Cloud में प्रोवाइड किए गए हर वर्चुअल मशीन में यह मेटाडेटा (वर्कर्स मॉड्यूल में
tee-image-reference
की वैल्यू में वर्शन नंबर शामिल होगा. उदाहरण के लिए, यहां दिए गए पाथ का वर्शन नंबरv2.9.1
है. ये पहले से बनी इमेज होती हैं, जो Google Cloud प्रोजेक्ट के आर्टफ़ैक्ट रजिस्ट्री में मौजूद होती हैं.- ध्यान दें: यह जानकारी तब ज़रूरी है, जब पहले से बनी एसेट का इस्तेमाल किया जा रहा हो. अगर ऐसा नहीं है, तो यह जानकारी उस नाम से मेल खानी चाहिए जिसे आपने अपनी इमेज को खुद दिया है और जिससे आपने उसे टैग किया है.
(उदाहरण:
us.docker.pkg.dev/<gcp_project_name>/artifacts:aggregation-service- container-artifacts-worker_mp_go_prod:2.9.1
)
- ध्यान दें: यह जानकारी तब ज़रूरी है, जब पहले से बनी एसेट का इस्तेमाल किया जा रहा हो. अगर ऐसा नहीं है, तो यह जानकारी उस नाम से मेल खानी चाहिए जिसे आपने अपनी इमेज को खुद दिया है और जिससे आपने उसे टैग किया है.
(उदाहरण:
Amazon Web Services के लिए यह तरीका अपनाएं
- अपने Amazon Web Services कंसोल में, EC2 इंस्टेंस पर जाएं.
aggregation-service-operator-dev-env
नाम वाले इंस्टेंस पर क्लिक करें.- इंस्टेंस पेज पर, जानकारी > एएमआई (Amazon मशीन इमेज) ढूंढें
- इमेज के पाथ में, आपके वर्शन का नाम शामिल होना चाहिए. उदाहरण के लिए, यहां दिए गए पाथ का वर्शन नंबर
v2.9.1
है.- ध्यान दें: यह जानकारी तब ज़रूरी है, जब पहले से बनी एसेट का इस्तेमाल किया जा रहा हो. अगर ऐसा नहीं है, तो यह जानकारी उस नाम से मेल खानी चाहिए जिसे आपने अपनी इमेज को खुद दिया है और जिससे आपने उसे टैग किया है.
(उदाहरण:
aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z
)
- ध्यान दें: यह जानकारी तब ज़रूरी है, जब पहले से बनी एसेट का इस्तेमाल किया जा रहा हो. अगर ऐसा नहीं है, तो यह जानकारी उस नाम से मेल खानी चाहिए जिसे आपने अपनी इमेज को खुद दिया है और जिससे आपने उसे टैग किया है.
(उदाहरण:
अगले चरण
अगर आपको एग्रीगेशन सेवा से जुड़ी समस्या का समाधान नहीं दिखता है, तो GitHub पर समस्या की शिकायत करें या तकनीकी सहायता फ़ॉर्म सबमिट करके हमें इसकी सूचना दें.