एग्रीगेशन सेवा का इस्तेमाल करते समय कई वजहों से समस्याएं आ सकती हैं. जैसे, रिपोर्ट फ़ॉर्मैटिंग, आउटपुट डोमेन से जुड़ी समस्याएं, और कोऑर्डिनेटर से जुड़ी समस्याएं. समस्या का सटीक पता लगाने के लिए, गड़बड़ी के सोर्स और उसमें मौजूद मेटाडेटा को समझना ज़रूरी है.
गाइड के विषय:
- क्लाइंट मेज़रमेंट एपीआई सेटअप की पुष्टि करना
- रिपोर्टिंग ओरिजिन के सेटअप से जुड़ी समस्या हल करना
- एग्रीगेट की गई रिपोर्ट से जुड़ी समस्याएं हल करना
- डिप्लॉयमेंट के वर्शन की जांच करना
क्लाइंट मेज़रमेंट एपीआई सेटअप की पुष्टि करना
यह पुष्टि करने के बाद कि आपका ऑरिजिन सर्वर सही तरीके से रजिस्टर हो गया है, यह तरीका अपनाएं:
देखें कि रिपोर्ट जनरेट करने के लिए कौनसी सेटिंग इस्तेमाल की जा रही हैं. पुष्टि करें कि आपको रिपोर्ट का सही फ़ॉर्मैट मिल रहा है. यह फ़ॉर्मैट, इस्तेमाल किए जा रहे एपीआई के हिसाब से होना चाहिए:
- 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 में "Console" और "Network" टैब, दोनों में कोई गड़बड़ी तो नहीं दिख रही है.
अगर आपको इन क्लाइंट एपीआई से जुड़ी समस्याओं को हल करने के लिए और मदद चाहिए, तो Attribution Reporting API के लिए डीबग करने से जुड़ी हमारी गाइड और Private Aggregation API + Shared Storage पर जाएं.
रिपोर्टिंग ऑरिजिन सेटअप करने से जुड़ी समस्या हल करना
रिपोर्टिंग ओरिजिन सर्वर वह जगह है जहां आपने सही .well-known एंडपॉइंट का एलान किया है. इन एंडपॉइंट पर, एग्रीगेट की जा सकने वाली रिपोर्ट भेजी जाएंगी. पुष्टि करें कि रिपोर्टिंग ओरिजिन सर्वर को सही तरीके से रजिस्टर किया गया हो और उसमें ऑप्ट-इन किया गया हो.
क्या रिपोर्टिंग ओरिजिन को रिपोर्ट मिल रही हैं?
पुष्टि करें कि डिप्लॉय किए गए रिपोर्टिंग ऑरिजिन सर्वर को सही तरीके से रजिस्टर किया गया हो और उसमें ऑप्ट-इन किया गया हो. यह वह सर्वर है जहां आपने सही .well-known एंडपॉइंट का एलान किया है. इन एंडपॉइंट पर, एग्रीगेट की जा सकने वाली रिपोर्ट भेजी जाएंगी.
| क्लाइंट-साइड मेज़रमेंट एपीआई | एग्रीगेट किए जा सकने वाले एंडपॉइंट से मैच करना |
|---|---|
| Attribution Reporting | POST /.well-known/attribution-reporting/report-aggregate-attribution |
| Private Aggregation + Shared Storage (कॉम्बो) | POST /.well-known/private-aggregation/report-shared-storage |
| Private Aggregation + Protected Audience (कॉम्बो) | POST /.well-known/private-aggregation/report-protected-audience |
यह पुष्टि करने के बाद कि आपका ऑरिजिन सर्वर सही तरीके से रजिस्टर हो गया है, यह तरीका अपनाएं:
देखें कि रिपोर्ट जनरेट करने के लिए कौनसी सेटिंग इस्तेमाल की जा रही हैं. पुष्टि करें कि आपको रिपोर्ट का सही फ़ॉर्मैट मिल रहा है. यह फ़ॉर्मैट, इस्तेमाल किए जा रहे एपीआई के हिसाब से होना चाहिए:
अगर आपको सुझाई गई रिपोर्ट ट्रिगर करने के बाद भी समस्या आ रही है, तो देखें कि Chrome Developer Console में "Console" और "Network" टैब, दोनों में कोई गड़बड़ी तो नहीं दिख रही है.
अगर आपको इन क्लाइंट एपीआई से जुड़ी समस्याओं को हल करने के लिए और मदद चाहिए , तो 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 सही है या नहीं. बकेट को एस्केप किए गए यूनिकोड हेक्स फ़ॉर्मैट में बदला जाता है. इसके बाद, इसे बाइट ऐरे में बदल दिया जाता है.
अगर आपको एक से ज़्यादा गड़बड़ियों की संख्या दिखती है, तो Aggregation Service के 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 फ़ील्ड का इस्तेमाल करके, सही क्लाउड में ट्रिगर रजिस्टर किया हो (निर्देश यहां दिए गए हैं). ऐसा हो सकता है कि आपने AWS से एन्क्रिप्ट की गई रिपोर्ट, Aggregation Service के Google Cloud डिप्लॉयमेंट को दी हों या Google Cloud से एन्क्रिप्ट की गई रिपोर्ट, AWS डिप्लॉयमेंट को दी हों. उनसे यह पुष्टि करने के लिए कहें कि एग्रीगेट की जा सकने वाली रिपोर्ट को एन्क्रिप्ट करने के लिए, किस सार्वजनिक पासकोड एंडपॉइंट का इस्तेमाल किया गया था. 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 के बारे में जानकारी देने वाले दस्तावेज़ में, एग्रीगेशन कोऑर्डिनेटर चुनने के सेक्शन में दिए गए उदाहरण का इस्तेमाल करें. कृपया https://publickeyservice.msmt.gcp.privacysandboxservices.com को उदाहरण के लिए:
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: Aggregation Service Google Cloud Codelab के चरण 3.1.2 से 3.2.3 तक दिए गए निर्देशों का पालन करें b. Amazon Web Services: Aggregation Service AWS Codelab के चरण 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 रिपोर्ट, और आउटपुट डोमेन इकट्ठा करें. इसके बाद, अगले चरण पर जाएं.
अपने नए डिप्लॉयमेंट वर्शन की जांच करना
पुष्टि करें कि आपके Aggregation Service के वर्शन पर अब भी यह सुविधा काम करती है. यह तय करने के बाद कि आपको कौनसा वर्शन इस्तेमाल करना है, Aggregation Service के रिलीज़ किए गए वर्शन की सूची देखें. साथ ही, पुष्टि करें कि आपके वर्शन में, सहायता बंद होने की चेतावनी नहीं दिख रही है:
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 console में, EC2 Instances पर जाएं.
aggregation-service-operator-dev-envनाम वाले इंस्टेंस पर क्लिक करें.- इंस्टेंस पेज पर, ज़्यादा जानकारी > एएमआई (Amazon Machine Image) पर जाएं
- इमेज के पाथ में, वर्शन का नाम शामिल होना चाहिए. उदाहरण के लिए, इस पाथ का वर्शन नंबर
v2.9.1है.- ध्यान दें: अगर पहले से बनी हुई ऐसेट का इस्तेमाल किया जा रहा है, तो यह जानकारी ज़रूरी है. अगर ऐसा नहीं किया जा रहा है, तो यह जानकारी उस नाम और टैग से मेल खानी चाहिए जो आपने अपनी इमेज को दिया है.
(उदाहरण:
aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z)
- ध्यान दें: अगर पहले से बनी हुई ऐसेट का इस्तेमाल किया जा रहा है, तो यह जानकारी ज़रूरी है. अगर ऐसा नहीं किया जा रहा है, तो यह जानकारी उस नाम और टैग से मेल खानी चाहिए जो आपने अपनी इमेज को दिया है.
(उदाहरण:
अगले चरण
अगर आपको Aggregation Service से जुड़ी समस्या का समाधान नहीं मिलता है, तो हमें इसकी सूचना दें. इसके लिए, GitHub पर समस्या की शिकायत करें या तकनीकी सहायता फ़ॉर्म सबमिट करें.