1. ज़रूरी शर्तें
यह कोडलैब (कोड बनाना सीखना) करने के लिए, कुछ ज़रूरी शर्तें पूरी करना ज़रूरी है. हर शर्त को इसके हिसाब से मार्क किया जाता है कि "लोकल टेस्टिंग" के लिए यह ज़रूरी है या नहीं या "एग्रीगेशन सेवा" का इस्तेमाल करें.
1.1. लोकल टेस्टिंग टूल डाउनलोड करें (लोकल टेस्टिंग)
लोकल टेस्टिंग के लिए, लोकल टेस्टिंग टूल डाउनलोड करना होगा. यह टूल, एन्क्रिप्ट (सुरक्षित) नहीं की गई डीबग रिपोर्ट से खास जानकारी वाली रिपोर्ट जनरेट करेगा.
लोकल टेस्टिंग टूल, GitHub में Lambda JAR आर्काइव्स में डाउनलोड किया जा सकता है. इसका नाम LocalTestingTool_{version}.jar
होना चाहिए.
1.2. पक्का करें कि JAVA JRE इंस्टॉल किया गया हो (लोकल टेस्टिंग ऐंड एग्रीगेशन सर्विस)
"Terminal" खोलें और java --version
का इस्तेमाल करके देखें कि आपकी मशीन में Java या OpenJDK इंस्टॉल है या नहीं.
अगर इसे इंस्टॉल नहीं किया गया है, तो Java साइट या openJDK साइट से इसे डाउनलोड और इंस्टॉल किया जा सकता है.
1.3. एग्रीगेशन रिपोर्ट कन्वर्टर डाउनलोड करें (लोकल टेस्टिंग और एग्रीगेशन सेवा)
Privacy Sandbox Demos GitHub डेटा स्टोर करने की जगह से इकट्ठा की जा सकने वाली रिपोर्ट कन्वर्टर की कॉपी डाउनलोड की जा सकती है.
1.4. Ad Privacy API (लोकल टेस्टिंग और एग्रीगेशन सेवा) चालू करें
अपने ब्राउज़र में, chrome://settings/adPrivacy
पर जाएं और Ad Privacy API को चालू करें.
पक्का करें कि तीसरे पक्ष की कुकी चालू हैं.
अपने ब्राउज़र में, chrome://settings/cookies
पर जाएं और "गुप्त मोड में तीसरे पक्ष की कुकी ब्लॉक करें" को चुनें.
1.5. वेब और Android पर रजिस्टर करना (एग्रीगेशन सेवा)
प्राइवसी सैंडबॉक्स एपीआई को प्रोडक्शन एनवायरमेंट में इस्तेमाल करने के लिए, पक्का करें कि आपने Chrome और Android, दोनों के लिए रजिस्ट्रेशन और पुष्टि करने की प्रक्रिया पूरी कर ली हो.
लोकल टेस्टिंग के लिए, Chrome फ़्लैग और सीएलआई स्विच का इस्तेमाल करके, रजिस्ट्रेशन करने की सुविधा बंद की जा सकती है.
हमारे डेमो के लिए Chrome फ़्लैग का इस्तेमाल करने के लिए, chrome://flags/#privacy-sandbox-enrollment-overrides
पर जाएं और अपनी साइट में किए गए बदलावों को अपडेट करें. अगर आप हमारी डेमो साइट का इस्तेमाल करेंगे, तो आपको कुछ भी अपडेट करने की ज़रूरत नहीं है.
1.6. एग्रीगेशन सेवा में शामिल होना (एग्रीगेशन सेवा)
एग्रीगेशन सेवा का इस्तेमाल करने के लिए, कोऑर्डिनेटर से संपर्क करना ज़रूरी होता है. रिपोर्टिंग साइट का पता, AWS खाता आईडी, और अन्य जानकारी देकर, एग्रीगेशन सेवा में शामिल होने के लिए फ़ॉर्म भरें.
1.7. क्लाउड सेवा देने वाली कंपनी (एग्रीगेशन सेवा)
एग्रीगेशन सेवा के लिए ऐसे भरोसेमंद एक्ज़ीक्यूशन एनवायरमेंट के इस्तेमाल की ज़रूरत होती है जो क्लाउड एनवायरमेंट का इस्तेमाल करता हो. एग्रीगेशन सेवा, Amazon Web Services (AWS) और Google Cloud (GCP) पर काम करती है. इस कोडलैब में सिर्फ़ AWS इंटिग्रेशन को शामिल किया जाएगा.
AWS, नाइट्रो एनक्लेव्स नाम का ट्रस्टेड एक्ज़ीक्यूशन एनवायरमेंट देता है. पक्का करें कि आपके पास AWS खाता हो. साथ ही, अपने AWS सीएलआई एनवायरमेंट को सेटअप करने के लिए, AWS CLI इंस्टॉल करने और अपडेट करने से जुड़े निर्देशों का पालन करें.
अगर आपका AWS सीएलआई नया है, तो सीएलआई कॉन्फ़िगरेशन निर्देशों का इस्तेमाल करके अपने AWS सीएलआई को कॉन्फ़िगर किया जा सकता है.
1.7.1. AWS S3 बकेट बनाएं
Tenraform स्टेट को स्टोर करने के लिए AWS S3 बकेट बनाएं और अपनी रिपोर्ट और खास जानकारी वाली रिपोर्ट को स्टोर करने के लिए दूसरा S3 बकेट बनाएं. आप दिए गए सीएलआई निर्देश का इस्तेमाल कर सकते हैं. <>
वाले फ़ील्ड को सही वैरिएबल में बदलें.
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 गाइड का इस्तेमाल करके उपयोगकर्ता ऐक्सेस कुंजियां बनाएं. इसका इस्तेमाल AWS पर बनाए गए createJob
और getJob
एपीआई एंडपॉइंट को कॉल करने के लिए किया जाएगा.
1.7.3. AWS पर मौजूद उपयोगकर्ता और ग्रुप की अनुमतियां
AWS पर एग्रीगेशन सेवा को डिप्लॉय करने के लिए, आपको सेवा को डिप्लॉय करने वाले उपयोगकर्ता को कुछ अनुमतियां देनी होंगी. इस कोडलैब के लिए, पक्का करें कि उपयोगकर्ता के पास एडमिन ऐक्सेस हो, ताकि उसे डिप्लॉयमेंट में सभी अनुमतियां मिल सकें.
1.8. टेराफ़ॉर्म (एग्रीगेशन सेवा)
यह कोडलैब, एग्रीगेशन सेवा को डिप्लॉय करने के लिए Tenraform का इस्तेमाल करता है. पक्का करें कि आपके लोकल एनवायरमेंट में Terraform बाइनरी इंस्टॉल की गई हो.
अपने लोकल एनवायरमेंट में Terraform बाइनरी डाउनलोड करें.
टेराफ़ॉर्म बाइनरी डाउनलोड होने के बाद, इस फ़ाइल को निकालें और टेराफ़ॉर्म बाइनरी को /usr/local/bin
में ले जाएं.
cp <directory>/terraform /usr/local/bin
पक्का करें कि टेराफ़ॉर्म, क्लासपाथ पर उपलब्ध है.
terraform -v
1.9. पोस्टमैन (एग्रीगेशन सर्विस AWS के लिए)
इस कोडलैब के लिए, अनुरोध के मैनेजमेंट के लिए Postman का इस्तेमाल करें.
"फ़ाइल फ़ोल्डर" पर जाकर वर्कस्पेस बनाएं पेज पर सबसे ऊपर मौजूद नेविगेशन आइटम पर जाएं और "फ़ाइल फ़ोल्डर बनाएं" चुनें.
"खाली फ़ाइल फ़ोल्डर" चुनें. इसके बाद, 'आगे बढ़ें' पर क्लिक करें और इसे "Privacy Sandbox" नाम दें. "निजी" चुनें और "बनाएं" पर क्लिक करें.
पहले से कॉन्फ़िगर की गई, Workspace की JSON कॉन्फ़िगरेशन और Global Environment फ़ाइलें डाउनलोड करें.
JSON फ़ाइलों को "मेरा वर्कस्पेस" में इंपोर्ट करें "इंपोर्ट करें" का इस्तेमाल करके बटन.
इससे आपके लिए, createJob
और getJob
एचटीटीपी अनुरोधों के साथ प्राइवसी सैंडबॉक्स का कलेक्शन बन जाएगा.
AWS की "ऐक्सेस कुंजी" को अपडेट करें और "सीक्रेट कुंजी" "एनवायरमेंट क्विक लुक" के ज़रिए.
"बदलाव करें" पर क्लिक करें और "मौजूदा वैल्यू" को अपडेट करें "access_key" दोनों का और "secret_key" शामिल है. ध्यान दें कि frontend_api_id
की जानकारी, इस दस्तावेज़ के सेक्शन 3.1.4 में दी जाएगी. साथ ही, हम us-east-1 इलाके का इस्तेमाल करने की सलाह भी देते हैं. हालांकि, अगर आपको इन्हें किसी अन्य इलाके में डिप्लॉय करना है, तो रिलीज़ किए गए एएमआई को अपने खाते में कॉपी करें या दिए गए स्क्रिप्ट का इस्तेमाल करके खुद ही बिल्ड करें.
2. लोकल टेस्टिंग कोडलैब (कोड बनाना सीखना)
एग्रीगेशन करने के लिए, अपनी मशीन पर लोकल टेस्टिंग टूल का इस्तेमाल किया जा सकता है. साथ ही, एन्क्रिप्ट (सुरक्षित) नहीं की गई डीबग रिपोर्ट की मदद से खास जानकारी वाली रिपोर्ट जनरेट की जा सकती हैं.
कोडलैब (कोड बनाना सीखना) के चरण
चरण 2.1. ट्रिगर रिपोर्ट: रिपोर्ट इकट्ठा करने के लिए, निजी एग्रीगेशन रिपोर्टिंग को ट्रिगर करें.
चरण 2.2. डीबग एग्रीगेशन रिपोर्ट बनाएं: इकट्ठा की गई JSON रिपोर्ट को AVRO फ़ॉर्मैट वाली रिपोर्ट में बदलें.
यह चरण उसी तरह होगा जैसे जब विज्ञापन टेक्नोलॉजी, एपीआई रिपोर्टिंग एंडपॉइंट से रिपोर्ट इकट्ठा करती हैं और JSON रिपोर्ट को AVRO फ़ॉर्मैट वाली रिपोर्ट में बदलती हैं.
चरण 2.3. डीबग रिपोर्ट से बकेट कुंजी को पार्स करें: बकेट कुंजी को विज्ञापन टेक्नोलॉजी से जुड़ी कंपनियों ने डिज़ाइन किया है. इस कोडलैब में, बकेट पहले से तय होती हैं, इसलिए बकेट की कुंजियों को बताए गए तरीके से फिर से पाएं.
चरण 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 फ़ाइल का "रिपोर्ट का मुख्य हिस्सा" रखें . इस उदाहरण में, 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
फ़ाइल बनाने के लिए, आपके पास बकेट की उन कुंजियों की ज़रूरत होगी जिन्हें रिपोर्ट से लिया जा सके.
बकेट कुंजियां, एपीआई के कॉलर ने डिज़ाइन की हैं और डेमो में पहले से बनाई गई उदाहरण बकेट कुंजियां होती हैं. डेमो ने निजी एग्रीगेशन के लिए डीबग मोड को चालू किया है, इसलिए "रिपोर्ट के मुख्य हिस्से" से डीबग क्लीयरटेक्स्ट पेलोड को पार्स किया जा सकता है बकेट कुंजी वापस पाने के लिए.. हालांकि, इस मामले में साइट का प्राइवसी सैंडबॉक्स डेमो बकेट की कुंजियां बनाता है. इस साइट के लिए निजी एग्रीगेशन डीबग मोड में है, इसलिए "रिपोर्ट के मुख्य हिस्से" से 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. लोकल टेस्टिंग टूल का इस्तेमाल करके खास जानकारी वाली रिपोर्ट बनाएं
हम खास जानकारी वाली रिपोर्ट बनाने के लिए, सेक्शन 1.1 में डाउनलोड किए गए LocalTestingTool_{version}.jar
का इस्तेमाल करेंगे. इन निर्देशों का इस्तेमाल करें. आपको 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 में बदलने के लिए कोड डालना चाहिए.
अपने कोडलैब के लिए, हम दिए गए aggregatable_report_converter.jar
टूल का इस्तेमाल करके AVRO रिपोर्ट को वापस JSON में बदलेंगे.
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file output.avro
इससे नीचे दी गई इमेज से मिलती-जुलती रिपोर्ट मिलती है. ये दोनों, एक ही डायरेक्ट्री में बनाई गई output.json
रिपोर्ट के साथ हैं.
खास जानकारी वाली रिपोर्ट को देखने के लिए, JSON फ़ाइल को अपनी पसंद के एडिटर में खोलें.
3. एग्रीगेशन सेवा का डिप्लॉयमेंट
एग्रीगेशन सेवा को डिप्लॉय करने के लिए, नीचे दिया गया तरीका अपनाएं:
तीसरा चरण. एग्रीगेशन सेवा का डिप्लॉयमेंट: AWS पर एग्रीगेशन सेवा डिप्लॉय करें
चरण 3.1. एग्रीगेशन सेवा रिपॉज़िटरी का क्लोन बनाएं
चरण 3.2. पहले से बनी डिपेंडेंसी डाउनलोड करें
चरण 3.3. डेवलपमेंट एनवायरमेंट बनाएं
चरण 3.4. एग्रीगेशन सेवा डिप्लॉय करें
3.1. एग्रीगेशन सेवा रिपॉज़िटरी का क्लोन बनाएं
अपने लोकल एनवायरमेंट में, एग्रीगेशन सेवा GitHub रिपॉज़िटरी का क्लोन बनाएं.
git clone https://github.com/privacysandbox/aggregation-service.git
3.2. पहले से बनी डिपेंडेंसी डाउनलोड करना
एग्रीगेशन सेवा रिपॉज़िटरी का क्लोन बनाने के बाद, डेटा स्टोर करने की जगह केterraform फ़ोल्डर पर और उससे जुड़े क्लाउड फ़ोल्डर पर जाएं. अगर आपका 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
फ़ाइल को अपडेट करें और फ़ाइल में बदलाव करने के लिए, input
का इस्तेमाल करने के लिए i
दबाएं.
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
को अपडेट करें और input
का इस्तेमाल करने के लिए i
दबाएं.
vim dev.auto.tfvars
इमेज के बाद दिए गए लाल बॉक्स में दिए गए फ़ील्ड को सही AWS ARN पैरामीटर के साथ अपडेट करें, जो एग्रीगेशन सेवा के ऑनबोर्डिंग, एनवायरमेंट, और सूचना ईमेल के दौरान दिए गए थे.
अपडेट होने के बाद, esc
-> दबाएं :wq!
. इससे dev.auto.tfvars
फ़ाइल सेव हो जाएगी और यह कुछ इस तरह की इमेज दिखेगी.
3.4. एग्रीगेशन सेवा डिप्लॉय करें
एग्रीगेशन सेवा को उसी फ़ोल्डर
में डिप्लॉय करने के लिए, टेरेस को शुरू करें.
terraform init
इस नतीजे से मिलने वाली वैल्यू, नीचे दी गई इमेज से मिलती-जुलती होनी चाहिए:
टेराफ़ॉर्म के शुरू होने के बाद, टेराफ़ॉर्म इस्तेमाल करने का प्लान बनाएं. जहां यह जोड़े जाने वाले संसाधनों की संख्या और नीचे दी गई इमेज से मिलती-जुलती दूसरी जानकारी दिखाता है.
terraform plan
आप यहां दिए गए "प्लान" में इसे देख सकते हैं सारांश. अगर यह हाल ही में किया गया डिप्लॉयमेंट है, तो आपको उन संसाधनों की संख्या दिखेगी जिन्हें बदलने के लिए शून्य जोड़ा जाएगा. वहीं, खत्म करने के लिए 0 जोड़ा जाएगा.
यह प्रोसेस पूरी करने के बाद, टेरेस का इस्तेमाल किया जा सकता है.
terraform apply
टेरेस पर कार्रवाइयां करने की पुष्टि करने के लिए पूछे जाने पर, वैल्यू में yes
डालें.
terraform apply
के खत्म होने के बाद, createJob
और getJob
के लिए ये एंडपॉइंट दिखते हैं. आपको जिस frontend_api_id
को सेक्शन 1.9 में पोस्टमैन में अपडेट करने की ज़रूरत है, उसे भी लौटाया जाता है.
4. एग्रीगेशन सेवा का इनपुट बनाना
एग्रीगेशन सेवा में बैच बनाने के लिए, AVRO रिपोर्ट बनाएं.
चौथा चरण. एग्रीगेशन सेवा का इनपुट बनाना: एग्रीगेशन सेवा की ऐसी रिपोर्ट बनाएं जिन्हें एग्रीगेशन सेवा के लिए बैच बनाया गया हो.
चरण 4.1. ट्रिगर रिपोर्ट
चरण 4.2. एग्रीगेट की जा सकने वाली रिपोर्ट इकट्ठा करना
चरण 4.3. रिपोर्ट को AVRO में बदलें
चरण 4.4. आउटपुट डोमेन AVRO बनाएं
4.1. ट्रिगर रिपोर्ट
Privacy Sandbox डेमो साइट पर जाएं. यह एक निजी एग्रीगेशन रिपोर्ट ट्रिगर करता है. यह रिपोर्ट यहां देखी जा सकती है: chrome://private-aggregation-internals
.
अगर आपकी रिपोर्ट की स्थिति "मंज़ूरी बाकी है" है स्थिति के लिए, आप रिपोर्ट चुन सकते हैं और "चुनी गई रिपोर्ट भेजें" पर क्लिक कर सकते हैं.
4.2. इकट्ठा की जा सकने वाली रिपोर्ट इकट्ठा करना
अपने एपीआई के .well-known
एंडपॉइंट से, इकट्ठा की जा सकने वाली रिपोर्ट इकट्ठा करें.
- निजी एग्रीगेशन
[reporting-origin] /.well-known/private-aggregation/report-shared-storage
- एट्रिब्यूशन रिपोर्टिंग - खास जानकारी वाली रिपोर्ट
[reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution
इस कोडलैब के लिए, आपको मैन्युअल तरीके से रिपोर्ट कलेक्शन की प्रक्रिया पूरी करनी होगी. प्रोडक्शन में, विज्ञापन टेक्नोलॉजी से जुड़ी कंपनियों से उम्मीद की जाती है कि वे प्रोग्राम के हिसाब से रिपोर्ट इकट्ठा करें और उन्हें बदलें.
chrome://private-aggregation-internals
में, "रिपोर्ट का मुख्य हिस्सा" कॉपी करें [reporting-origin]/.well-known/private-aggregation/report-shared-storage
एंडपॉइंट में मिला.
पक्का करें कि "रिपोर्ट का मुख्य हिस्सा" में, aggregation_coordinator_origin
में https://publickeyservice.msmt.aws.privacysandboxservices.com
हो. इसका मतलब है कि रिपोर्ट, AWS पर इकट्ठा की जा सकने वाली रिपोर्ट है.
JSON फ़ाइल का "रिपोर्ट का मुख्य हिस्सा" रखें . इस उदाहरण में, vim का इस्तेमाल किया जा सकता है. हालांकि, आपके पास अपनी पसंद के किसी भी टेक्स्ट एडिटर का इस्तेमाल करने का विकल्प है.
vim report.json
रिपोर्ट को report.json
में चिपकाएं और अपनी फ़ाइल सेव करें.
4.3. रिपोर्ट को AVRO में बदलें
.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
फ़ाइल बनाने के लिए, आपके पास बकेट की उन कुंजियों की ज़रूरत होगी जिन्हें रिपोर्ट से लिया जा सके.
बकेट कुंजियां, AdTech ने डिज़ाइन की हैं. हालांकि, इस मामले में, साइट का प्राइवसी सैंडबॉक्स का डेमो बकेट की कुंजियां बनाता है. इस साइट के लिए निजी एग्रीगेशन डीबग मोड में है, इसलिए "रिपोर्ट के मुख्य हिस्से" से 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
में डालें, जिसे आपने ज़रूरी सेक्शन 1.9 में सेट अप किया है.
पांचवां चरण. एग्रीगेशन सेवा का इस्तेमाल: खास जानकारी वाली रिपोर्ट बनाने और खास जानकारी की समीक्षा करने के लिए, एग्रीगेशन सेवा एपीआई का इस्तेमाल करें.
चरण 5.1. बैच बनाने के लिए, create Job एंडपॉइंट का इस्तेमाल करना
चरण 5.2. बैच का स्टेटस वापस पाने के लिए, get Job एंडपॉइंट का इस्तेमाल करना
चरण 5.3. खास जानकारी वाली रिपोर्ट की समीक्षा करना
5.1. बैच बनाने के लिए, createJob
एंडपॉइंट का इस्तेमाल किया जा रहा है
Postman में, "Privacy Sandbox" खोलें संग्रह पर क्लिक करें और "createJob" चुनें.
"मुख्य हिस्सा" चुनें और "रॉ" चुनें पेलोड डालें.
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
में जॉब बन जाता है. एग्रीगेशन सेवा के अनुरोध को स्वीकार करने के बाद, आपको एचटीटीपी 202 रिस्पॉन्स मिलेगा. अन्य संभावित रिटर्न कोड एचटीटीपी रिस्पॉन्स कोड में मिल सकते हैं
5.2. बैच का स्टेटस वापस पाने के लिए, getJob एंडपॉइंट का इस्तेमाल करना
जॉब अनुरोध की स्थिति देखने के लिए, getJob
एंडपॉइंट का इस्तेमाल किया जा सकता है. "getJob" चुनें "प्राइवसी सैंडबॉक्स" में जाकर संग्रह.
"Params" में, Job_request_id वैल्यू को createJob
अनुरोध में भेजे गए job_request_id
पर अपडेट करें.
getJob
का नतीजा, आपके जॉब अनुरोध की स्थिति को एचटीटीपी स्टेटस के साथ 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
अनुरोध में true
के तौर पर debug_run
शामिल है, तो आपको खास जानकारी की रिपोर्ट, output_data_blob_prefix
में मौजूद डीबग फ़ोल्डर में मिल सकती है. रिपोर्ट AVRO फ़ॉर्मैट में है और इसे पिछले निर्देश का इस्तेमाल करके JSON में बदला जा सकता है.
इस रिपोर्ट में बकेट की, बिना नॉइज़ वाली मेट्रिक, और नॉइज़ की जानकारी होती है. इसे खास जानकारी वाली रिपोर्ट बनाने के लिए, नॉइज़ की गई मेट्रिक में जोड़ा जाता है. यह रिपोर्ट, नीचे दी गई इमेज जैसी है.
इन एनोटेशन में in_reports
और in_domain
भी शामिल हैं. इसका मतलब है कि:
- in_reports - बकेट कुंजी, एग्रीगेट की जा सकने वाली रिपोर्ट के अंदर उपलब्ध होती है.
- in_domain - बकेट कुंजी, आउटपुट_domain AVRO फ़ाइल के अंदर उपलब्ध होती है.