एग्रीगेशन सेवा की मदद से अनुरोधों को डिप्लॉय और मैनेज करना

एग्रीगेशन सेवा को डिप्लॉय करने के बाद, सेवा के साथ इंटरैक्ट करने के लिए createJob और getJob एंडपॉइंट का इस्तेमाल किया जा सकता है. नीचे दिए गए डायग्राम में, इन दोनों एंडपॉइंट के लिए डिप्लॉयमेंट आर्किटेक्चर को विज़ुअल के तौर पर दिखाया गया है:

Aggregation Service API के बारे में खास जानकारी
पहली इमेज.Aggregation Service API की खास जानकारी

createJob और getJob एंडपॉइंट के बारे में ज़्यादा जानने के लिए, एग्रीगेशन सेवा API के दस्तावेज़ पढ़ें.

नौकरी की पोस्ट बनाना

जॉब बनाने के लिए, createJob एंडपॉइंट पर POST अनुरोध भेजें. bash POST https://<api-gateway>/stage/v1alpha/createJob -+ createJob के लिए अनुरोध बॉडी का उदाहरण:

{
  "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>",
  "job_parameters": {
    "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
    "output_domain_bucket_name": "<output_domain_bucket_name>",
    "attribution_report_to": "<reporting origin of report>",
    "reporting_site": "<host name of reporting origin>"
  }
}

नौकरी की जानकारी पोस्ट करने पर, 202 एचटीटीपी स्टेटस कोड मिलता है.

ध्यान दें कि reporting_site और attribution_report_to एक-दूसरे से अलग हैं और इनमें से किसी एक की ही वैल्यू सबमिट करनी होगी.

job_parameters में debug_run जोड़कर, डीबग जॉब का अनुरोध भी किया जा सकता है. डीबग मोड के बारे में ज़्यादा जानकारी के लिए, एग्रीगेशन डीबग रन का दस्तावेज़ देखें.

{
  "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>",
  "job_parameters": {
    "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
    "output_domain_bucket_name": "<output_domain_bucket_name>",
    "attribution_report_to": "<reporting origin of report>"
    "debug_run": "true"
  }
}

अनुरोध फ़ील्ड

पैरामीटर टाइप ब्यौरा
job_request_id स्ट्रिंग यह विज्ञापन टेक्नोलॉजी से जनरेट किया गया यूनीक आइडेंटिफ़ायर है. इसमें ASCII अक्षर होने चाहिए और 128 या उससे कम वर्ण होने चाहिए. यह बैच जॉब के अनुरोध की पहचान करता है और `input_data_bucket_name` में बताई गई इनपुट बकेट से, `input_data_blob_prefix` में बताई गई सभी एग्रीगेट की जा सकने वाली AVRO रिपोर्ट लेता है. यह बकेट, विज्ञापन टेक्नोलॉजी के क्लाउड स्टोरेज पर होस्ट की जाती है.
वर्ण: `a-z, A-Z, 0-9, !"#$%&'()*+,-./:;<=>?@[\]^_`{}~
input_data_blob_prefix स्ट्रिंग यह बकेट का पाथ है. एक फ़ाइल के लिए, पाथ का इस्तेमाल किया जा सकता है. एक से ज़्यादा फ़ाइलों के लिए, पाथ में प्रीफ़िक्स का इस्तेमाल किया जा सकता है.
उदाहरण: फ़ोल्डर/फ़ाइल, folder/file1.avro, folder/file/file1.avro, और folder/file1/test/file2.avro से सभी रिपोर्ट इकट्ठा करती है.
input_data_bucket_name स्ट्रिंग यह इनपुट डेटा या एग्रीगेट की जा सकने वाली रिपोर्ट के लिए स्टोरेज बकेट है. यह विज्ञापन टेक्नोलॉजी के क्लाउड स्टोरेज में होता है.
output_data_blob_prefix स्ट्रिंग यह बकेट में आउटपुट पाथ है. सिर्फ़ एक आउटपुट फ़ाइल का इस्तेमाल किया जा सकता है.
output_data_bucket_name स्ट्रिंग यह स्टोरेज बकेट है, जहां output_data भेजा जाता है. यह विज्ञापन टेक्नोलॉजी के क्लाउड स्टोरेज में मौजूद होता है.
job_parameters शब्दकोश आवश्यक फ़ील्ड. इस फ़ील्ड में अलग-अलग फ़ील्ड होते हैं, जैसे कि:
  • output_domain_blob_prefix
  • output_domain_bucket_name
  • attribution_report_to
  • reporting_site
  • debug_privacy_epsilon
  • report_error_threshold_percentage
job_parameters.output_domain_blob_prefix स्ट्रिंग input_data_blob_prefix की तरह ही, यह output_domain_bucket_name में मौजूद वह पाथ है जहां आपका आउटपुट डोमेन AVRO मौजूद है. एक से ज़्यादा फ़ाइलों के लिए, पाथ में प्रीफ़िक्स का इस्तेमाल किया जा सकता है. एग्रीगेशन सेवा, बैच पूरा करने के बाद खास जानकारी वाली रिपोर्ट बनाती है और उसे output_data_blob_prefix नाम के साथ आउटपुट बकेट output_data_bucket_name में डालती है.
job_parameters.output_domain_bucket_name स्ट्रिंग यह आपके आउटपुट डोमेन की AVRO फ़ाइल के लिए स्टोरेज बकेट है. यह विज्ञापन टेक्नोलॉजी के क्लाउड स्टोरेज में होता है.
job_parameters.attribution_report_to स्ट्रिंग यह वैल्यू, `reporting_site` से अलग होती है. यह रिपोर्टिंग यूआरएल या रिपोर्टिंग ऑरिजिन है, जहां रिपोर्ट मिली थी. साइट का ऑरिजिन, एग्रीगेशन सेवा के ऑनबोर्डिंग में रजिस्टर किया गया है.
job_parameters.reporting_site स्ट्रिंग attribution_report_to के साथ इस्तेमाल नहीं किया जा सकता. यह रिपोर्टिंग यूआरएल या रिपोर्टिंग ऑरिजिन का होस्टनेम होता है, जहां रिपोर्ट मिली थी. साइट का ऑरिजिन, एग्रीगेशन सेवा के ऑनबोर्डिंग में रजिस्टर किया गया है. ध्यान दें: एक ही अनुरोध में, अलग-अलग ऑरिजिन वाली कई रिपोर्ट सबमिट की जा सकती हैं. हालांकि, इसके लिए ज़रूरी है कि सभी ऑरिजिन, इस पैरामीटर में बताई गई रिपोर्टिंग साइट से जुड़े हों.
job_parameters.debug_privacy_epsilon फ़्लोटिंग पॉइंट, डबल यह फ़ील्ड ज़रूरी नहीं है. अगर कोई वैल्यू नहीं दी जाती है, तो डिफ़ॉल्ट वैल्यू 10 होती है. 0 से 64 के बीच की वैल्यू का इस्तेमाल किया जा सकता है.
job_parameters.report_error_threshold_percentage डबल यह फ़ील्ड ज़रूरी नहीं है. जॉब के पूरा न होने से पहले, ज़्यादा से ज़्यादा इस प्रतिशत तक रिपोर्ट पूरी नहीं हो सकतीं. अगर इस फ़ील्ड को खाली छोड़ा जाता है, तो डिफ़ॉल्ट वैल्यू 10% होती है.
job_parameters.input_report_count लंबी वैल्यू यह फ़ील्ड ज़रूरी नहीं है. जॉब के लिए इनपुट डेटा के तौर पर दी गई रिपोर्ट की कुल संख्या. report_error_threshold_percentage के साथ मिलकर, यह वैल्यू तब जॉब को जल्दी फ़ेल होने की सुविधा चालू करती है, जब गड़बड़ियों की वजह से रिपोर्ट को बाहर रखा जाता है.
job_parameters.filtering_ids स्ट्रिंग यह फ़ील्ड ज़रूरी नहीं है. बिना हस्ताक्षर वाले फ़िल्टरिंग आईडी की सूची, जिन्हें कॉमा से अलग किया गया है. फ़िल्टर करने वाले आईडी से मेल न खाने वाले सभी योगदानों को फ़िल्टर कर दिया जाता है. (उदाहरण के लिए"filtering_ids": "12345,34455,12"). डिफ़ॉल्ट वैल्यू 0 है.
job_parameters.debug_run बूलियन यह फ़ील्ड ज़रूरी नहीं है. डीबग रन को लागू करते समय, डीबग की खास जानकारी वाली रिपोर्ट और एनोटेशन जोड़े जाते हैं. इनमें, शोर वाली और शोर वाली नहीं रिपोर्ट शामिल होती हैं. इनसे यह पता चलता है कि डोमेन इनपुट और/या रिपोर्ट में कौनसी कुंजियां मौजूद हैं. इसके अलावा, एक से ज़्यादा बैच में डुप्लीकेट आइटम भी नहीं जोड़े जा सकते. ध्यान दें कि डीबग रन सिर्फ़ उन रिपोर्ट पर लागू होता है जिनमें फ़्लैग "debug_mode": "enabled" होता है. v2.10.0 के बाद, डीबग रन से निजता बजट का इस्तेमाल नहीं होता.

कोई नौकरी कर लो ॥ कोई काम ढूंढ लो ॥ कोई नौकरी तलाश लो ॥ कुछ काम कर लो ॥ कोई काम कर लो ॥ कोई काम है कि नहीं

जब किसी विज्ञापन टेक्नोलॉजी को अनुरोध किए गए बैच का स्टेटस जानना हो, तो वह getJob एंडपॉइंट को कॉल कर सकता है. getJob एंडपॉइंट को job_request_id पैरामीटर के साथ एचटीटीपीएस जीईटी अनुरोध का इस्तेमाल करके कॉल किया जाता है.

  GET https://<api-gateway>/stage/v1alpha/getJob?job_request_id=<job_request_id>

आपको जवाब में, गड़बड़ी के मैसेज के साथ-साथ जॉब का स्टेटस भी दिखेगा:

{
    "job_status": "FINISHED",
    "request_received_at": "2023-07-17T19:15:13.926530Z",
    "request_updated_at": "2023-07-17T19:15:28.614942839Z",
    "job_request_id": "PSD_0003",
    "input_data_blob_prefix": "reports/output_reports_2023-07-17T19:11:27.315Z.avro",
    "input_data_bucket_name": "ags-report-bucket",
    "output_data_blob_prefix": "summary/summary.avro",
    "output_data_bucket_name": "ags-report-bucket",
    "postback_URL": "",
    "result_info": {
        "return_code": "SUCCESS",
        "return_message": "Aggregation job successfully processed",
        "error_summary": {
            "error_counts": [],
            "error_messages": []
        },
        "finished_at": "2023-07-17T19:15:28.607802354Z"
    },
    "job_parameters": {
        "debug_run": "true",
        "output_domain_bucket_name": "ags-report-bucket",
        "output_domain_blob_prefix": "output_domain/output_domain.avro",
        "attribution_report_to": "https://privacy-sandcastle-dev-dsp.web.app"
    },
    "request_processing_started_at": "2023-07-17T19:15:21.583759622Z"
}

जवाब वाले फ़ील्ड

पैरामीटर टाइप ब्यौरा
job_request_id स्ट्रिंग यह createJob अनुरोध में दिया गया यूनीक जॉब/बैच आईडी है.
job_status स्ट्रिंग यह नौकरी के अनुरोध का स्टेटस है.
request_received_at स्ट्रिंग अनुरोध मिलने का समय.
request_updated_at स्ट्रिंग जॉब को आखिरी बार अपडेट किए जाने का समय.
input_data_blob_prefix स्ट्रिंग यह इनपुट डेटा प्रीफ़िक्स है, जिसे createJob पर सेट किया गया था.
input_data_bucket_name स्ट्रिंग यह विज्ञापन टेक्नोलॉजी की इनपुट डेटा बकेट है, जहां एग्रीगेट की जा सकने वाली रिपोर्ट सेव की जाती हैं. यह फ़ील्ड createJob पर सेट है.
output_data_blob_prefix स्ट्रिंग यह आउटपुट डेटा प्रीफ़िक्स है, जिसे createJob पर सेट किया गया था.
output_data_bucket_name स्ट्रिंग यह विज्ञापन टेक्नोलॉजी की आउटपुट डेटा बकेट है, जहां जनरेट की गई खास जानकारी वाली रिपोर्ट सेव की जाती हैं. यह फ़ील्ड createJob पर सेट है.
request_processing_started_at स्ट्रिंग प्रोसेस करने की पिछली कोशिश शुरू होने का समय. इसमें, जॉब की सूची में इंतज़ार करने का समय शामिल नहीं है. (प्रोसेसिंग में लगने वाला कुल समय = request_updated_at - request_processing_started_at)
result_info शब्दकोश यह createJob अनुरोध का नतीजा है. इसमें उपलब्ध सारी जानकारी शामिल है. इसमें return_code, return_message, finished_at, और error_summary वैल्यू दिखती हैं.
result_info.return_code स्ट्रिंग जॉब के नतीजे का रिटर्न कोड. अगर एग्रीगेशन सेवा में कोई समस्या आती है, तो उसे हल करने के लिए यह जानकारी ज़रूरी है.
result_info.return_message स्ट्रिंग जॉब के नतीजे के तौर पर, सफलता या गड़बड़ी का मैसेज. एग्रीगेशन सेवा से जुड़ी समस्याओं को हल करने के लिए भी यह जानकारी ज़रूरी है.
result_info.error_summary शब्दकोश जॉब से मिलने वाली गड़बड़ियां. इसमें, गड़बड़ियों के टाइप के साथ-साथ रिपोर्ट की संख्या भी शामिल होती है.
result_info.finished_at टाइमस्टैंप टाइमस्टैंप, जिससे पता चलता है कि जॉब पूरा हो गया है.
result_info.error_summary.error_counts सूची इससे, गड़बड़ी के मैसेज की सूची के साथ-साथ, एक ही गड़बड़ी के मैसेज वाली उन रिपोर्ट की संख्या दिखती है जो प्रोसेस नहीं हो पाईं. गड़बड़ी की हर गिनती में एक कैटगरी, error_count,और description शामिल होती है.
result_info.error_summary.error_messages सूची इससे, प्रोसेस न हो पाने वाली रिपोर्ट में गड़बड़ी के मैसेज की सूची मिलती है.
job_parameters शब्दकोश इसमें createJob अनुरोध में दिए गए जॉब पैरामीटर शामिल होते हैं. काम की प्रॉपर्टी, जैसे कि `output_domain_blob_prefix` और `output_domain_bucket_name`.
job_parameters.attribution_report_to स्ट्रिंग reporting_site के साथ इस्तेमाल नहीं किया जा सकता. यह रिपोर्टिंग यूआरएल या वह सोर्स है जहां से रिपोर्ट मिली थी. ऑरिजिन, उस साइट का हिस्सा है जिसे एग्रीगेशन सेवा के लिए रजिस्टर किया गया है. इसकी जानकारी createJob अनुरोध में दी गई है.
job_parameters.reporting_site स्ट्रिंग attribution_report_to के साथ इस्तेमाल नहीं किया जा सकता. यह रिपोर्टिंग यूआरएल का होस्टनेम या रिपोर्ट मिलने का सोर्स है. ऑरिजिन, उस साइट का हिस्सा है जिसे एग्रीगेशन सेवा के लिए रजिस्टर किया गया है. ध्यान दें कि एक ही अनुरोध में, कई रिपोर्टिंग ऑरिजिन वाली रिपोर्ट सबमिट की जा सकती हैं. हालांकि, ऐसा तब ही किया जा सकता है, जब सभी रिपोर्टिंग ऑरिजिन, इस पैरामीटर में बताई गई साइट से जुड़े हों. इसकी जानकारी createJob अनुरोध में दी गई है. इसके अलावा, पक्का करें कि बकेट में सिर्फ़ वे रिपोर्ट शामिल हों जिन्हें आपको जॉब बनाते समय एग्रीगेट करना है. इनपुट डेटा बकेट में जोड़ी गई ऐसी सभी रिपोर्ट को प्रोसेस किया जाता है जिनकी रिपोर्टिंग ऑरिजिन, जॉब पैरामीटर में बताई गई रिपोर्टिंग साइट से मेल खाती हैं. एग्रीगेशन सेवा, डेटा बकेट में मौजूद सिर्फ़ उन रिपोर्ट को ध्यान में रखती है जो नौकरी के रजिस्टर किए गए रिपोर्टिंग ऑरिजिन से मेल खाती हैं. उदाहरण के लिए, अगर रजिस्टर किया गया ऑरिजिन https://exampleabc.com है, तो सिर्फ़ https://exampleabc.com की रिपोर्ट शामिल की जाती हैं. भले ही, बकेट में सबडोमेन (https://1.exampleabc.com वगैरह) या पूरी तरह से अलग डोमेन (https://3.examplexyz.com) की रिपोर्ट शामिल हों.
job_parameters.debug_privacy_epsilon फ़्लोटिंग पॉइंट, डबल यह फ़ील्ड ज़रूरी नहीं है. अगर कोई वैल्यू नहीं दी जाती है, तो 10 की डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाता है. वैल्यू 0 से 64 के बीच हो सकती हैं. यह वैल्यू, createJob अनुरोध में दी जाती है.
job_parameters.report_error_threshold_percentage डबल यह फ़ील्ड ज़रूरी नहीं है. यह रिपोर्ट का वह थ्रेशोल्ड प्रतिशत है जो जॉब के पूरा न होने से पहले पूरा नहीं हो सकता. अगर कोई वैल्यू असाइन नहीं की गई है, तो 10% की डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाता है. इसकी जानकारी createJob अनुरोध में दी गई है.
job_parameters.input_report_count लंबा मान यह फ़ील्ड ज़रूरी नहीं है. इस जॉब के लिए इनपुट डेटा के तौर पर दी गई रिपोर्ट की कुल संख्या. अगर गड़बड़ियों की वजह से ज़्यादा रिपोर्ट को बाहर रखा जाता है, तो इस वैल्यू के साथ `report_error_threshold_percentage`, जॉब के जल्दी पूरा न होने की वजह बनता है. यह सेटिंग, `createJob` अनुरोध में बताई गई है.
job_parameters.filtering_ids स्ट्रिंग यह फ़ील्ड ज़रूरी नहीं है. बिना हस्ताक्षर वाले फ़िल्टरिंग आईडी की सूची, जिन्हें कॉमा लगाकर अलग किया गया है. फ़िल्टर करने वाले आईडी से मेल न खाने वाले सभी योगदानों को फ़िल्टर कर दिया जाता है. इसकी जानकारी createJob अनुरोध में दी गई है. उदाहरण के लिए, "filtering_ids":"12345,34455,12". डिफ़ॉल्ट वैल्यू "0" है.)