Private एग्रीगेशन API से जुड़ी बुनियादी बातें

Private एग्रीगेशन एपीआई के मुख्य कॉन्सेप्ट

यह दस्तावेज़ किसके लिए है?

प्राइवेट एग्रीगेशन एपीआई, क्रॉस-साइट डेटा के ऐक्सेस वाले वर्कलेट से एग्रीगेट डेटा कलेक्शन को चालू करता है. यहां शेयर किए गए सिद्धांत, Shared Storage और Protected Audience API में रिपोर्टिंग फ़ंक्शन बनाने वाले डेवलपर के लिए ज़रूरी हैं.

  • अगर आप डेवलपर हैं और क्रॉस-साइट मेज़रमेंट के लिए रिपोर्टिंग सिस्टम बना रहे हैं.
  • अगर आप मार्केटर, डेटा साइंटिस्ट या अन्य खास जानकारी वाली रिपोर्ट के ग्राहक हैं, तो इन तरीकों को समझने से आपको ऑप्टिमाइज़ की गई खास जानकारी वाली रिपोर्ट को फिर से पाने के लिए, डिज़ाइन से जुड़े फ़ैसले लेने में मदद मिलेगी.

मुख्य शब्द

इस दस्तावेज़ को पढ़ने से पहले, मुख्य शब्दों और सिद्धांतों के बारे में जान लेना बेहतर होगा. ऊपर दिए गए सभी शब्दों के बारे में यहां विस्तार से बताया गया है.

  • एग्रीगेशन कुंजी (इसे बकेट भी कहा जाता है) डेटा पॉइंट का पहले से तय कलेक्शन होता है. उदाहरण के लिए, हो सकता है कि आप जगह की जानकारी का एक बकेट इकट्ठा करना चाहें, जहां ब्राउज़र देश के नाम की रिपोर्ट करता है. एग्रीगेशन कुंजी में एक से ज़्यादा डाइमेंशन हो सकते हैं. उदाहरण के लिए, आपके कॉन्टेंट विजेट में मौजूद देश और आईडी.
  • एग्रीगेटेड वैल्यू एक अलग डेटा पॉइंट होती है, जिसे किसी एग्रीगेशन कुंजी में इकट्ठा किया जाता है. अगर आपको यह मेज़र करना है कि फ़्रांस के कितने उपयोगकर्ताओं ने आपका कॉन्टेंट देखा है, तो एग्रीगेशन कुंजी में France एक डाइमेंशन होगा. साथ ही, 1 का viewCount एग्रीगेट वैल्यू होगी.
  • एग्रीगेट की जा सकने वाली रिपोर्ट, ब्राउज़र में जनरेट और एन्क्रिप्ट (सुरक्षित) की जाती हैं. Private एग्रीगेशन एपीआई के लिए, इसमें किसी एक इवेंट का डेटा शामिल होता है.
  • एग्रीगेशन सेवा एग्रीगेट रिपोर्ट से डेटा प्रोसेस करके खास जानकारी वाली रिपोर्ट बनाती है.
  • खास जानकारी वाली रिपोर्ट, एग्रीगेशन सेवा का आखिरी आउटपुट होती है. इसमें, ग़ैर-ज़रूरी एग्रीगेट किया गया उपयोगकर्ता डेटा और कन्वर्ज़न की ज़्यादा जानकारी वाला डेटा शामिल होता है.
  • वर्कलेट, इन्फ़्रास्ट्रक्चर का एक हिस्सा है. इसकी मदद से, चुनिंदा JavaScript फ़ंक्शन चलाए जा सकते हैं और अनुरोध करने वाले व्यक्ति को जानकारी वापस दी जा सकती है. वर्कलेट में, JavaScript का इस्तेमाल किया जा सकता है, लेकिन बाहरी पेज से इंटरैक्ट या उससे कम्यूनिकेट नहीं किया जा सकता.

निजी एग्रीगेशन वर्कफ़्लो

एग्रीगेशन कुंजी और एग्रीगेट करने लायक वैल्यू के साथ Private एग्रीगेशन एपीआई को कॉल करने पर, ब्राउज़र एग्रीगेट होने वाली रिपोर्ट जनरेट करता है. ये रिपोर्ट आपके सर्वर पर भेजी जाती हैं, जो रिपोर्ट को बैच करती है. बैच की गई रिपोर्ट को बाद में एग्रीगेशन सेवा से प्रोसेस किया जाता है और खास जानकारी वाली रिपोर्ट जनरेट की जाती है.

डेटा को क्लाइंट से कलेक्टर के पास भेजा जाता है. इसके बाद, खास जानकारी वाली रिपोर्ट जनरेट करने के लिए,
    एग्रीगेशन सेवा में भेजा जाता है.
  1. Private एग्रीगेशन एपीआई को कॉल करने पर, क्लाइंट (ब्राउज़र) जनरेट करता है और इकट्ठा किए जाने के लिए, आपके सर्वर को एग्रीगेटेड रिपोर्ट भेजता है.
  2. आपका सर्वर क्लाइंट से रिपोर्ट इकट्ठा करता है और एग्रीगेशन सेवा को भेजने के लिए उन्हें बैच करता है.
  3. काफ़ी संख्या में रिपोर्ट इकट्ठा कर लेने के बाद, आपको उन्हें एक साथ बैच में भेजना होगा. साथ ही, उन्हें एग्रीगेशन सेवा पर भेजना होगा. यह सेवा, भरोसेमंद तरीके से एक्ज़ीक्यूशन की सुविधा में चल रही होती है. इससे, आपको खास जानकारी वाली रिपोर्ट जनरेट करने में मदद मिलती है.

इस सेक्शन में जिस वर्कफ़्लो के बारे में बताया गया है वह Attribution Reporting API से मिलता-जुलता है. हालांकि, एट्रिब्यूशन रिपोर्टिंग, अलग-अलग समय पर होने वाले किसी इंप्रेशन इवेंट और कन्वर्ज़न इवेंट से इकट्ठा किए गए डेटा को जोड़ती है. निजी एग्रीगेशन, क्रॉस-साइट किसी एक इवेंट को मेज़र करता है.

एग्रीगेशन कुंजी

एग्रीगेशन कुंजी ("कुंजी" का मतलब) उस बकेट को दिखाता है जहां एग्रीगेट की जा सकने वाली वैल्यू इकट्ठा होंगी. एक या उससे ज़्यादा डाइमेंशन को कुंजी में बदला जा सकता है. डाइमेंशन, उस पहलू को दिखाता है जिसके बारे में आपको ज़्यादा जानकारी चाहिए. जैसे, उपयोगकर्ताओं का उम्र समूह या किसी विज्ञापन कैंपेन की इंप्रेशन संख्या.

उदाहरण के लिए, हो सकता है कि आपके पास एक ऐसा विजेट हो जिसे कई साइटों पर एम्बेड किया गया हो और आपको उस देश का विश्लेषण करना हो जिसने आपका विजेट देखा है. आपको इस तरह के सवालों के जवाब देने हैं: "जिन उपयोगकर्ताओं ने मेरा विजेट देखा है उनमें से कितने देश X से हैं?" इस सवाल की रिपोर्ट पाने के लिए, एक ऐसी एग्रीगेशन कुंजी सेट अप की जा सकती है जिसमें दो डाइमेंशन, विजेट आईडी और देश का आईडी शामिल होते हैं.

Private एग्रीगेशन एपीआई को दी जाने वाली कुंजी, BigInt होता है. इसमें एक से ज़्यादा डाइमेंशन होते हैं. इस उदाहरण में, डाइमेंशन, विजेट आईडी और देश आईडी हैं. मान लें कि विजेट आईडी चार अंकों तक का हो सकता है, जैसे कि 1234 और हर देश को वर्णमाला के क्रम में मैप किया गया है. जैसे, अफ़ग़ानिस्तान 1, फ़्रांस 61, और ज़िंबाब्वे '195' है. इसलिए, इकट्ठा की जा सकने वाली कुंजी सात अंकों की होगी, जिसमें पहले चार वर्ण WidgetID के लिए और आखिरी तीन वर्ण CountryID के लिए रिज़र्व होंगे.

मान लें कि कुंजी, फ़्रांस (देश का आईडी 061) के उन उपयोगकर्ताओं की संख्या दिखाती है जिन्होंने विजेट आईडी 3276 देखा है और एग्रीगेशन कुंजी 3276061 है.

एग्रीगेशन कुंजी
विजेट आईडी देश का आईडी
3276 061

एग्रीगेशन कुंजी, SHA-256 जैसे हैशिंग तरीके से भी जनरेट की जा सकती है. उदाहरण के लिए, {"WidgetId":3276,"CountryID":67} स्ट्रिंग को हैश किया जा सकता है और फिर इसे 42943797454801331377966796057547478208888578253058197330928948081739249096287n की BigInt वैल्यू में बदला जा सकता है. अगर हैश वैल्यू में 128 बिट से ज़्यादा बिट हैं, तो इसे छोटा किया जा सकता है. ऐसा करके, यह पक्का किया जा सकता है कि यह बकेट वैल्यू 2^128−1 के लिए तय की गई सीमा से ज़्यादा नहीं होगी.

शेयर किए गए स्टोरेज के वर्कलेट में, crypto और TextEncoder मॉड्यूल को ऐक्सेस किया जा सकता है. ये मॉड्यूल हैश जनरेट करने में आपकी मदद कर सकते हैं. हैश जनरेट करने के बारे में ज़्यादा जानने के लिए, एमडीएन पर SubtleCrypto.digest() देखें.

यहां दिए गए उदाहरण में बताया गया है कि हैश की गई वैल्यू से बकेट कुंजी कैसे जनरेट की जा सकती है:

async function convertToBucket(data) {
  // Encode as UTF-8 Uint8Array
  const encodedData = new TextEncoder().encode(data);

  // Generate SHA-256 hash
  const hashBuffer = await crypto.subtle.digest('SHA-256', encodedData);

  // Truncate the hash
  const truncatedHash = Array.from(new Uint8Array(hashBuffer, 0, 16));

  // Convert the byte sequence to a decimal
  return truncatedHash.reduce((acc, curr) => acc * 256n + BigInt(curr), 0n);
}

const data = {
  WidgetId: 3276,
  CountryID: 67
};

const dataString = JSON.stringify(data);
const bucket = await convertToBucket(dataString);

console.log(bucket); // 126200478277438733997751102134640640264n

एग्रीगेट की जा सकने वाली वैल्यू

एग्रीगेट की जा सकने वाली वैल्यू, कई उपयोगकर्ताओं की हर कुंजी के हिसाब से जोड़ी जाती हैं. ऐसा इसलिए किया जाता है, ताकि खास जानकारी वाली रिपोर्ट में, खास जानकारी के रूप में एग्रीगेट की जा सकने वाली वैल्यू जनरेट की जा सके.

अब, पहले पूछे गए उदाहरण वाले सवाल पर वापस जाएं: "जिन लोगों ने मेरा विजेट देखा है उनमें से कितने फ़्रांस से हैं?" इस सवाल का जवाब कुछ ऐसा दिखेगा: "जिन लोगों ने मेरा विजेट आईडी 3276 देखा है उनमें से करीब 4881 उपयोगकर्ता फ़्रांस के हैं." हर उपयोगकर्ता के लिए एग्रीगेट वैल्यू एक होती है और "4881 उपयोगकर्ता" वह एग्रीगेट की गई वैल्यू होती है जो उस एग्रीगेशन कुंजी के लिए सभी एग्रीगेट की जा सकने वाली वैल्यू का कुल योग होती है.

एग्रीगेशन कुंजी एग्रीगेट की जा सकने वाली वैल्यू
विजेट आईडी देश का आईडी देखे जाने की संख्या
3276 061 1

इस उदाहरण में, हम विजेट देखने वाले हर उपयोगकर्ता के लिए, वैल्यू को एक बढ़ा देते हैं. व्यावहारिक तौर पर, सिग्नल-टू-नॉइस अनुपात को बेहतर बनाने के लिए, एग्रीगेट की जा सकने वाली वैल्यू को बढ़ाया जा सकता है.

योगदान का बजट

Private एग्रीगेशन एपीआई को किए जाने वाले हर कॉल को contribution कहा जाता है. उपयोगकर्ता की निजता की सुरक्षा के लिए, किसी व्यक्ति से मिले योगदान की संख्या सीमित होती है.

जब एग्रीगेशन की सभी कुंजियों की सभी वैल्यू को जोड़ा जाता है, तो कुल योग, योगदान के लिए तय किए गए बजट से कम होना चाहिए. यह बजट, हर वर्कलेट के लिए हर दिन के हिसाब से, ऑरिजिन के हिसाब से तय होता है. यह Protected Audience API और Shared Storage वर्कलेट के लिए अलग-अलग होता है. दिन के लिए करीब पिछले 24 घंटों की रोलिंग विंडो का इस्तेमाल किया जाता है. अगर इकट्ठा की जा सकने वाली किसी नई रिपोर्ट की वजह से बजट बढ़ जाएगा, तो रिपोर्ट नहीं बनाई जाएगी.

योगदान के बजट को L1 पैरामीटर से दिखाया जाता है. यह हर 10 मिनट के लिए 216 (65,536) पर सेट होता है. इसका बैकस्टॉप 220 होता है

(10,48,576). इन पैरामीटर के बारे में ज़्यादा जानने के लिए, एक्सप्लेनेशंस में जाएं.

योगदान के बजट की वैल्यू मनचाहे तरीके से तय की जाती है, लेकिन गै़र-ज़रूरी डेटा को इसके हिसाब से स्केल किया जाता है. इस बजट का इस्तेमाल, जवाब की वैल्यू पर सिग्नल-टू-नॉइस अनुपात को ज़्यादा से ज़्यादा करने के लिए किया जा सकता है. इसके बारे में शोर और स्केलिंग सेक्शन में ज़्यादा जानकारी दी गई है.

योगदान के लिए बजट के बारे में ज़्यादा जानने के लिए, ज़्यादा जानकारी वाला लेख देखें. साथ ही, ज़्यादा जानकारी के लिए योगदान का बजट देखें.

एग्रीगेट की जा सकने वाली रिपोर्ट

जब उपयोगकर्ता Private एग्रीगेशन एपीआई को शुरू करता है, तो ब्राउज़र एग्रीगेट की जा सकने वाली रिपोर्ट जनरेट करता है. इन रिपोर्ट को एग्रीगेशन सेवा बाद में प्रोसेस करती है. ऐसा करके, खास जानकारी वाली रिपोर्ट जनरेट की जाती हैं. इकट्ठा की जा सकने वाली रिपोर्ट, JSON फ़ॉर्मैट में होती है. इसमें योगदान की एन्क्रिप्ट (सुरक्षित) की गई सूची होती है. हर सूची का मतलब {aggregation key, aggregatable value} पेयर होता है. एग्रीगेट की जा सकने वाली रिपोर्ट, किसी भी क्रम में एक घंटे तक की देरी से भेजी जाती हैं.

योगदानों को एन्क्रिप्ट (सुरक्षित) किया गया है. साथ ही, इन्हें एग्रीगेशन सेवा के बाहर पढ़ा नहीं जा सकता. एग्रीगेशन सेवा, रिपोर्ट को डिक्रिप्ट करती है और खास जानकारी वाली रिपोर्ट जनरेट करती है. ब्राउज़र के लिए एन्क्रिप्ट (सुरक्षित) करने की कुंजी और एग्रीगेशन सेवा के लिए डिक्रिप्शन कुंजी, कोऑर्डिनेटर जारी करता है. यही कुंजी मैनेज करने वाली सेवा के तौर पर काम करती है. कोऑर्डिनेटर यह पुष्टि करने के लिए सर्विस इमेज के बाइनरी हैश की एक सूची बनाता है कि कॉलर को डिक्रिप्शन कुंजी पाने की अनुमति है या नहीं.

डीबग मोड के चालू होने पर, एग्रीगेट होने वाली रिपोर्ट का एक उदाहरण:

  "aggregation_service_payloads": [
    {
      "debug_cleartext_payload": "omRkYXRhgaJldmFsdWVEAAAAgGZidWNrZXRQAAAAAAAAAAAAAAAAAAAE0mlvcGVyYXRpb25paGlzdG9ncmFt",
      "key_id": "2cc72b6a-b92f-4b78-b929-e3048294f4d6",
      "payload": "a9Mk3XxvnfX70FsKrzcLNZPy+00kWYnoXF23ZpNXPz/Htv1KCzl/exzplqVlM/wvXdKUXCCtiGrDEL7BQ6MCbQp1NxbWzdXfdsZHGkZaLS2eF+vXw2UmLFH+BUg/zYMu13CxHtlNSFcZQQTwnCHb"
    }
  ],
  "debug_key": "777",
  "shared_info": "{\"api\":\"shared-storage\",\"debug_mode\":\"enabled\",\"report_id\":\"5bc74ea5-7656-43da-9d76-5ea3ebb5fca5\",\"reporting_origin\":\"https://localhost:4437\",\"scheduled_report_time\":\"1664907229\",\"version\":\"0.1\"}"

इकट्ठा की जा सकने वाली रिपोर्ट की जांच, chrome://private-aggregation-internals पेज से की जा सकती है:

Private एग्रीगेशन एपीआई के इंटरनल पेज का स्क्रीनशॉट

जांच के लिए, सर्वर पर तुरंत रिपोर्ट भेजने के लिए "चुनी गई रिपोर्ट भेजें" बटन का इस्तेमाल किया जा सकता है.

एग्रीगेट की जा सकने वाली रिपोर्ट इकट्ठा और बैच करना

ब्राउज़र, इकट्ठा की जा सकने वाली रिपोर्ट को उस वर्कलेट के ऑरिजिन पर भेजता है जिसमें कॉल की जानकारी Private एग्रीगेशन एपीआई को दी जाती है. इसके लिए, सूची में दिए गए लोकप्रिय पाथ का इस्तेमाल किया जाता है:

  • शेयर किए गए स्टोरेज के लिए: /.well-known/private-aggregation/report-shared-storage
  • सुरक्षित ऑडियंस के लिए: /.well-known/private-aggregation/report-protected-audience

इन एंडपॉइंट पर, आपको कलेक्टर की तरह काम करने वाला एक सर्वर ऑपरेट करना होगा, जो क्लाइंट की भेजी गई एग्रीगेट रिपोर्ट को इकट्ठा करता हो.

इसके बाद सर्वर को रिपोर्ट के बैच बनाने चाहिए और एग्रीगेशन सेवा में बैच भेजना चाहिए. एग्रीगेट करने लायक रिपोर्ट के एन्क्रिप्ट (सुरक्षित) नहीं किए गए पेलोड में उपलब्ध जानकारी के आधार पर बैच बनाएं, जैसे कि shared_info फ़ील्ड. आदर्श रूप से, बैच में हर बैच में 100 या उससे ज़्यादा रिपोर्ट होनी चाहिए.

दिन या हफ़्ते के हिसाब से बैच तय किया जा सकता है. यह रणनीति सुविधाजनक होती है. साथ ही, ऐसे खास इवेंट के लिए एक साथ कई अनुरोध भेजने की रणनीति बदली जा सकती है जिनमें आपको ज़्यादा इवेंट मिलने की उम्मीद होती है. उदाहरण के लिए, साल के ऐसे दिन जब ज़्यादा इंप्रेशन मिलने की उम्मीद है. बैच में एक ही एपीआई वर्शन, रिपोर्टिंग ऑरिजिन, और रिपोर्ट के समय को शेड्यूल करने वाली रिपोर्ट शामिल होनी चाहिए.

एग्रीगेशन सेवा

यह सेवा, TEE में चलती है. साथ ही, यह एग्रीगेट की जा सकने वाली रिपोर्ट को डिक्रिप्ट करती है और फ़ाइनल समरी रिपोर्ट बनाने में मदद करती है.

एग्रीगेशन सेवा को कलेक्टर से, एन्क्रिप्ट (सुरक्षित) की गई एग्रीगेटेड रिपोर्ट मिलती है. साथ ही, वह खास जानकारी वाली रिपोर्ट जनरेट करती है.

रिपोर्ट पेलोड को डिक्रिप्ट करने के लिए, एग्रीगेशन सर्विस कोऑर्डिनेटर से डिक्रिप्शन कुंजी फ़ेच करती है. यह सेवा, एक भरोसेमंद एक्ज़ीक्यूशन एनवायरमेंट (टीईई) पर काम करती है. इससे डेटा इंटेग्रिटी, डेटा गोपनीयता, और कोड इंटिग्रिटी की गारंटी मिलती है. हालांकि, आपके पास इस सेवा का मालिकाना हक है और इसे इस्तेमाल करने का अधिकार है, लेकिन आपको टीईई में प्रोसेस किए जा रहे डेटा के बारे में जानकारी नहीं होगी.

खास जानकारी वाली रिपोर्ट

खास जानकारी वाली रिपोर्ट की मदद से, ग़ैर-ज़रूरी आवाज़ों के साथ इकट्ठा किए गए डेटा को देखा जा सकता है. कुंजियों के किसी खास सेट के लिए, खास जानकारी वाली रिपोर्ट का अनुरोध किया जा सकता है.

खास जानकारी वाली रिपोर्ट में, JSON डिक्शनरी की स्टाइल वाला की-वैल्यू पेयर का सेट होता है. हर पेयर में ये चीज़ें शामिल होती हैं:

  • bucket: बाइनरी नंबर वाली स्ट्रिंग के तौर पर एग्रीगेशन कुंजी. अगर एग्रीगेशन कुंजी "123" का इस्तेमाल किया जाता है, तो बकेट "1111011" होगी.
  • value: दिए गए मेज़रमेंट लक्ष्य की खास जानकारी वाली वैल्यू, जो ग़ैर-ज़रूरी आवाज़ों के साथ उपलब्ध, सभी इकट्ठा की जा सकने वाली रिपोर्ट से ली जाती है.

उदाहरण के लिए:

[
  {"bucket":` `"111001001",` `"value":` `"2558500"},
  {"bucket":` `"111101001",` `"value":` `"3256211"},
  {"bucket":` `"111101001",` `"value":` `"6536542"},
]

शोर और स्केलिंग

उपयोगकर्ता की निजता को बनाए रखने के लिए, एग्रीगेशन सर्विस हर बार खास जानकारी वाली रिपोर्ट का अनुरोध करने पर, हर समरी वैल्यू में एक बार नॉइज़ जोड़ती है. गै़र-ज़रूरी डेटा को लाप्लास प्रॉबबिलिटी डिस्ट्रिब्यूशन से लिया जाता है. हालांकि, ग़ैर-ज़रूरी आवाज़ों को जोड़ने की सुविधा का कंट्रोल आपके पास नहीं है, फिर भी शोर के मेज़रमेंट डेटा पर पड़ने वाले असर को बदला जा सकता है.

गै़र-ज़रूरी डेटा का डिस्ट्रिब्यूशन एक जैसा होता है. भले ही, इकट्ठा की जा सकने वाली सभी वैल्यू कुछ भी हों. इसलिए, इकट्ठा की जा सकने वाली वैल्यू जितनी ज़्यादा होगी, नॉइज़ का असर उतना ही कम होगा.

उदाहरण के लिए, मान लीजिए कि नॉइज़ डिस्ट्रिब्यूशन का स्टैंडर्ड डीविएशन 100 है और वह शून्य पर आधारित है. अगर इकट्ठा की गई रिपोर्ट की वैल्यू (या एग्रीगेटेबल वैल्यू") सिर्फ़ 200 है, तो नॉइज़ का स्टैंडर्ड डेविएशन, एग्रीगेट की गई वैल्यू का 50% होगा. हालांकि, अगर इकट्ठा की जा सकने वाली वैल्यू 20,000 है, तो नॉइज़ का स्टैंडर्ड डीविएशन, एग्रीगेट की गई वैल्यू का सिर्फ़ 0.5% होगा. इसलिए, 20,000 की कुल वैल्यू का सिग्नल-टू-नॉइस अनुपात बहुत ज़्यादा होगा.

इसलिए, एग्रीगेट की जा सकने वाली वैल्यू को स्केलिंग फ़ैक्टर से गुणा करने पर, ग़ैर-ज़रूरी आवाज़ों को कम किया जा सकता है. स्केलिंग फ़ैक्टर से यह पता चलता है कि आपको दी गई एग्रीगेट वैल्यू को कितना स्केल करना है.

एग्रीगेट की गई वैल्यू चाहे जो भी हो, शोर एक जैसा होता है.

स्केलिंग का बड़ा फ़ैक्टर चुनकर वैल्यू को बढ़ाने पर मिलते-जुलते नॉइज़ को कम किया जाता है. हालांकि, इसकी वजह से, सभी बकेट में सभी योगदानों को जोड़कर, योगदान के लिए बजट की सीमा तक तेज़ी से पहुंचा जा सकता है. स्केलिंग फ़ैक्टर को छोटा करके वैल्यू को घटाने से संबंधित शोर में बढ़ोतरी होती है, लेकिन बजट की सीमा तक पहुंचने का जोखिम भी कम होता है.

योगदान के बजट के लिए, एग्रीगेट की जा सकने वाली वैल्यू को स्केल करें.

स्केलिंग का सही फ़ैक्टर जानने के लिए, योगदान के बजट को सभी कुंजियों के लिए इकट्ठा की जा सकने वाली वैल्यू के ज़्यादा से ज़्यादा योग से भाग दें.

ज़्यादा जानने के लिए, योगदान के बजट का दस्तावेज़ देखें.

दिलचस्पी दिखाएं और सुझाव/राय दें या शिकायत करें

Private एग्रीगेशन एपीआई पर अभी चर्चा चल रही है. आने वाले समय में इसमें बदलाव हो सकता है. अगर आप इस एपीआई का इस्तेमाल करते हैं और आपको कोई सुझाव या राय देनी है या शिकायत करनी है, तो हमें ज़रूर बताएं.