প্রাইভেট অ্যাগ্রিগেশন এপিআই মৌলিক

প্রাইভেট অ্যাগ্রিগেশন API-এর মূল ধারণা

এই দলিল কার জন্য?

প্রাইভেট অ্যাগ্রিগেশন API ক্রস-সাইট ডেটা অ্যাক্সেস সহ ওয়ার্কলেটগুলি থেকে সামগ্রিক ডেটা সংগ্রহ সক্ষম করে। শেয়ার্ড স্টোরেজ এবং প্রোটেক্টেড অডিয়েন্স এপিআই-এর মধ্যে রিপোর্টিং ফাংশন তৈরি করতে বিকাশকারীদের জন্য এখানে শেয়ার করা ধারণাগুলি গুরুত্বপূর্ণ।

  • আপনি যদি একজন ডেভেলপার হন তাহলে ক্রস-সাইট পরিমাপের জন্য রিপোর্টিং সিস্টেম তৈরি করেন।
  • আপনি যদি একজন বিপণনকারী , ডেটা সায়েন্টিস্ট , বা অন্যান্য সারাংশ রিপোর্টের গ্রাহক হন, তাহলে এই প্রক্রিয়াগুলি বোঝা আপনাকে একটি অপ্টিমাইজ করা সারাংশ রিপোর্ট পুনরুদ্ধার করার জন্য ডিজাইনের সিদ্ধান্ত নিতে সাহায্য করবে৷

মূল পদ

এই নথিটি পড়ার আগে, মূল শর্তাবলী এবং ধারণাগুলির সাথে নিজেকে পরিচিত করা সহায়ক হবে৷ এই পদগুলির প্রতিটি এখানে গভীরভাবে বর্ণনা করা হবে।

  • একটি সমষ্টি কী (একটি বালতি হিসাবেও পরিচিত) হল ডেটা পয়েন্টগুলির একটি পূর্বনির্ধারিত সংগ্রহ। উদাহরণস্বরূপ, আপনি লোকেশন ডেটার একটি বালতি সংগ্রহ করতে চাইতে পারেন যেখানে ব্রাউজারটি দেশের নাম প্রতিবেদন করে। একটি সমষ্টি কী একাধিক মাত্রা থাকতে পারে (উদাহরণস্বরূপ, আপনার সামগ্রী উইজেটের দেশ এবং আইডি)।
  • একটি সমষ্টিগত মান হল একটি পৃথক ডেটা পয়েন্ট যা একটি সমষ্টি কীতে সংগ্রহ করা হয়। আপনি যদি ফ্রান্স থেকে কতজন ব্যবহারকারী আপনার সামগ্রী দেখেছেন তা পরিমাপ করতে চান, তাহলে সমষ্টি কী-তে France হল একটি মাত্রা এবং 1 -এর viewCount হল সমষ্টিগত মান।
  • সমষ্টিগত প্রতিবেদনগুলি একটি ব্রাউজারের মধ্যে তৈরি এবং এনক্রিপ্ট করা হয়। প্রাইভেট অ্যাগ্রিগেশন এপিআই-এর জন্য, এতে একটি ইভেন্টের ডেটা থাকে।
  • একত্রিতকরণ পরিষেবা একটি সারাংশ প্রতিবেদন তৈরি করতে সমষ্টিগত প্রতিবেদন থেকে ডেটা প্রক্রিয়া করে।
  • একটি সংক্ষিপ্ত প্রতিবেদন হল একত্রীকরণ পরিষেবার চূড়ান্ত আউটপুট, এবং এতে কোলাহলপূর্ণ একত্রিত ব্যবহারকারী ডেটা এবং বিস্তারিত রূপান্তর ডেটা রয়েছে।
  • একটি ওয়ার্কলেট হল অবকাঠামোর একটি অংশ যা আপনাকে নির্দিষ্ট জাভাস্ক্রিপ্ট ফাংশন চালাতে এবং অনুরোধকারীকে তথ্য ফেরত দিতে দেয়। একটি ওয়ার্কলেটের মধ্যে, আপনি জাভাস্ক্রিপ্ট চালাতে পারেন কিন্তু আপনি বাইরের পৃষ্ঠার সাথে ইন্টারঅ্যাক্ট বা যোগাযোগ করতে পারবেন না।

প্রাইভেট অ্যাগ্রিগেশন ওয়ার্কফ্লো

আপনি যখন প্রাইভেট অ্যাগ্রিগেশন এপিআইকে একটি অ্যাগ্রিগেশন কী এবং অ্যাগ্রিগেটেবল ভ্যালু দিয়ে কল করেন, তখন ব্রাউজার একটি অ্যাগ্রিগেটেবল রিপোর্ট তৈরি করে। প্রতিবেদনগুলি আপনার সার্ভারে পাঠানো হয় যা প্রতিবেদনগুলিকে ব্যাচ করে। ব্যাচ করা রিপোর্টগুলি পরে অ্যাগ্রিগেশন সার্ভিস দ্বারা প্রক্রিয়া করা হয় এবং একটি সারাংশ রিপোর্ট তৈরি করা হয়।

ক্লায়েন্ট থেকে সংগ্রাহকের কাছে ডেটা প্রবাহিত হয়, তারপর একটি সংক্ষিপ্ত প্রতিবেদন তৈরি করতে অ্যাগ্রিগেশন সার্ভিসে।
  1. আপনি যখন প্রাইভেট অ্যাগ্রিগেশন এপিআই কল করেন, তখন ক্লায়েন্ট (ব্রাউজার) সংগ্রহ করার জন্য আপনার সার্ভারে সমষ্টিগত প্রতিবেদন তৈরি করে এবং পাঠায়।
  2. আপনার সার্ভার ক্লায়েন্টদের কাছ থেকে রিপোর্ট সংগ্রহ করে এবং এগ্রিগেশন সার্ভিসে পাঠানোর জন্য ব্যাচ করে।
  3. একবার আপনি পর্যাপ্ত রিপোর্ট সংগ্রহ করলে, আপনি একটি সারসংক্ষেপ রিপোর্ট তৈরি করতে একটি বিশ্বস্ত এক্সিকিউশন পরিবেশে চলমান অ্যাগ্রিগেশন সার্ভিসে ব্যাচ করে পাঠাবেন।

এই বিভাগে বর্ণিত কর্মপ্রবাহটি অ্যাট্রিবিউশন রিপোর্টিং API- এর অনুরূপ। যাইহোক, অ্যাট্রিবিউশন রিপোর্টিং একটি ইম্প্রেশন ইভেন্ট এবং একটি রূপান্তর ইভেন্ট থেকে সংগৃহীত ডেটা সহযোগী করে, যা বিভিন্ন সময়ে ঘটে। ব্যক্তিগত সমষ্টি একটি একক, ক্রস-সাইট ইভেন্ট পরিমাপ করে।

একত্রিতকরণ কী

একটি সমষ্টি কী (সংক্ষেপে "কী") সেই বালতিকে প্রতিনিধিত্ব করে যেখানে সমষ্টিগত মানগুলি জমা করা হবে। এক বা একাধিক মাত্রা কীটিতে এনকোড করা যেতে পারে। একটি মাত্রা এমন কিছু দিককে উপস্থাপন করে যা আপনি আরও অন্তর্দৃষ্টি পেতে চান, যেমন ব্যবহারকারীদের বয়স বা বিজ্ঞাপন প্রচারের ইম্প্রেশন সংখ্যা।

উদাহরণস্বরূপ, আপনার কাছে একটি উইজেট থাকতে পারে যা একাধিক সাইট জুড়ে এমবেড করা আছে এবং আপনার উইজেটটি দেখেছেন এমন ব্যবহারকারীদের দেশ বিশ্লেষণ করতে চান৷ আপনি প্রশ্নগুলির উত্তর খুঁজছেন যেমন "আমার উইজেটটি দেখেছেন এমন ব্যবহারকারীদের মধ্যে কতজন দেশ X থেকে?" এই প্রশ্নে রিপোর্ট করতে, আপনি একটি সমষ্টি কী সেট আপ করতে পারেন যা দুটি মাত্রা এনকোড করে: উইজেট আইডি এবং দেশের আইডি।

প্রাইভেট অ্যাগ্রিগেশন এপিআইতে সরবরাহ করা কী হল একটি BigInt , যা একাধিক মাত্রা নিয়ে গঠিত। এই উদাহরণে, মাত্রা হল উইজেট আইডি এবং দেশের আইডি। ধরা যাক যে উইজেট আইডি 4 সংখ্যা পর্যন্ত লম্বা হতে পারে যেমন 1234 , এবং প্রতিটি দেশকে বর্ণানুক্রমিক ক্রমে একটি সংখ্যায় ম্যাপ করা হয়েছে যেমন আফগানিস্তান হল 1 , ফ্রান্স হল 61 এবং জিম্বাবুয়ে হল '195'৷ অতএব, সমষ্টিগত কী 7 সংখ্যার হবে, যেখানে প্রথম 4টি অক্ষর WidgetID এর জন্য সংরক্ষিত এবং শেষ 3টি অক্ষর CountryID এর জন্য সংরক্ষিত।

ধরা যাক কীটি ফ্রান্সের ব্যবহারকারীদের সংখ্যাকে প্রতিনিধিত্ব করে (দেশের আইডি 061 ) যারা উইজেট আইডি 3276 দেখেছে, একত্রিতকরণ কী 3276061

একত্রিতকরণ কী
উইজেট আইডি দেশের আইডি
3276 061

একত্রিতকরণ কী একটি হ্যাশিং পদ্ধতির সাথেও তৈরি করা যেতে পারে, যেমন SHA-256 । উদাহরণস্বরূপ, স্ট্রিংটি {"WidgetId":3276,"CountryID":67} হ্যাশ করা যেতে পারে এবং তারপরে BigInt 42943797454801331377966796057547478208888578253058197330928948081739249096287n . যদি হ্যাশের মানটিতে 128 বিটের বেশি থাকে, তাহলে আপনি এটি 2^128−1 এর সর্বাধিক অনুমোদিত বালতি মান অতিক্রম করবে না তা নিশ্চিত করতে এটিকে ছেঁটে ফেলতে পারেন।

একটি শেয়ার্ড স্টোরেজ ওয়ার্কলেটের মধ্যে, আপনি crypto এবং TextEncoder মডিউলগুলি অ্যাক্সেস করতে পারেন যা আপনাকে একটি হ্যাশ তৈরি করতে সহায়তা করতে পারে। হ্যাশ তৈরি করার বিষয়ে আরও জানতে, MDN-এ 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

সমষ্টিগত মান

সংক্ষিপ্ত প্রতিবেদনে সারাংশের মানের আকারে সমষ্টিগত অন্তর্দৃষ্টি তৈরি করতে অনেক ব্যবহারকারীর জন্য সমষ্টিগত মানগুলিকে কী প্রতি যোগ করা হয়।

এখন, পূর্বে উত্থাপিত উদাহরণ প্রশ্নে ফিরে যান: "আমার উইজেটটি দেখেছেন এমন ব্যবহারকারীদের মধ্যে কতজন ফ্রান্সের?" এই প্রশ্নের উত্তরটি এমন কিছু দেখাবে "প্রায় 4881 জন ব্যবহারকারী যারা আমার উইজেট আইডি 3276 দেখেছেন তারা ফ্রান্সের।" প্রতিটি ব্যবহারকারীর জন্য সমষ্টিগত মান হল 1, এবং "4881 ব্যবহারকারী" হল একত্রিত মান যা সেই সমষ্টি কী-এর জন্য সমস্ত সমষ্টিযোগ্য মানের সমষ্টি৷

একত্রিতকরণ কী সমষ্টিগত মান
উইজেট আইডি দেশের আইডি দেখুন গণনা
3276 061 1

এই উদাহরণের জন্য, উইজেটটি দেখেন এমন প্রতিটি ব্যবহারকারীর জন্য আমরা 1 দ্বারা মান বৃদ্ধি করি। অনুশীলনে, সংকেত-থেকে-শব্দের অনুপাত উন্নত করতে সমষ্টিগত মান স্কেল করা যেতে পারে।

অবদান বাজেট

প্রাইভেট অ্যাগ্রিগেশন API-এর প্রতিটি কলকে একটি অবদান বলা হয়। ব্যবহারকারীর গোপনীয়তা রক্ষা করতে, একজন ব্যক্তির কাছ থেকে সংগ্রহ করা অবদানের সংখ্যা সীমিত।

আপনি যখন সমস্ত একত্রীকরণ কী জুড়ে সমস্ত সমষ্টিগত মান যোগ করেন, তখন যোগফল অবশ্যই অবদান বাজেটের থেকে কম হতে হবে। বাজেট প্রতি-ওয়ার্কলেট মূল , প্রতি-দিনের ব্যাপ্তি, এবং সুরক্ষিত শ্রোতা API এবং শেয়ার্ড স্টোরেজ ওয়ার্কলেটের জন্য আলাদা। দিনের জন্য প্রায় শেষ 24 ঘন্টার একটি ঘূর্ণায়মান উইন্ডো ব্যবহার করা হয়। যদি একটি নতুন সমষ্টিগত প্রতিবেদন বাজেটকে অতিক্রম করতে পারে, প্রতিবেদনটি তৈরি করা হয় না।

অবদান বাজেট প্যারামিটার L 1 দ্বারা প্রতিনিধিত্ব করা হয়, এবং 2 20 এর ব্যাকস্টপ সহ প্রতিদিন প্রতি দশ মিনিটে 2 16 (65,536) সেট করা হয়

(1,048,576)। এই প্যারামিটার সম্পর্কে আরও জানতে ব্যাখ্যাকারী দেখুন।

অবদান বাজেটের মূল্য নির্বিচারে, কিন্তু গোলমাল এটিকে স্কেল করা হয়। আপনি এই বাজেটটি সারাংশের মানগুলিতে সংকেত-থেকে-শব্দের অনুপাতকে সর্বাধিক করতে ব্যবহার করতে পারেন (আরও নয়েজ এবং স্কেলিং বিভাগে আলোচনা করা হয়েছে)।

অবদান বাজেট সম্পর্কে আরও জানতে, ব্যাখ্যাকারী দেখুন। এছাড়াও, আরো নির্দেশনার জন্য অবদান বাজেট পড়ুন।

সমষ্টিগত প্রতিবেদন

ব্যবহারকারী একবার প্রাইভেট অ্যাগ্রিগেশন এপিআই চালু করলে, ব্রাউজারটি পরবর্তী সময়ে সংক্ষিপ্ত প্রতিবেদন তৈরি করার জন্য অ্যাগ্রিগেশন সার্ভিস দ্বারা প্রক্রিয়া করার জন্য সমষ্টিগত প্রতিবেদন তৈরি করে। একটি সমষ্টিগত প্রতিবেদন 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 পৃষ্ঠা থেকে পরিদর্শন করা যেতে পারে:

প্রাইভেট অ্যাগ্রিগেশন এপিআই ইন্টারনাল পৃষ্ঠার স্ক্রিনশট

পরীক্ষার উদ্দেশ্যে, "নির্বাচিত প্রতিবেদনগুলি পাঠান" বোতামটি অবিলম্বে সার্ভারে রিপোর্ট পাঠাতে ব্যবহার করা যেতে পারে।

সমষ্টিগত প্রতিবেদন সংগ্রহ করুন এবং ব্যাচ করুন

ব্রাউজারটি তালিকাভুক্ত সুপরিচিত পাথ ব্যবহার করে প্রাইভেট অ্যাগ্রিগেশন এপিআই-তে কল সম্বলিত ওয়ার্কলেটের মূলে সমষ্টিগত প্রতিবেদন পাঠায়:

  • শেয়ার্ড স্টোরেজের জন্য: /.well-known/private-aggregation/report-shared-storage
  • সুরক্ষিত দর্শকদের জন্য: /.well-known/private-aggregation/report-protected-audience

এই শেষ পয়েন্টগুলিতে, আপনাকে একটি সার্ভার পরিচালনা করতে হবে - একটি সংগ্রাহক হিসাবে কাজ করা - যা ক্লায়েন্টদের কাছ থেকে পাঠানো সমষ্টিগত প্রতিবেদনগুলি গ্রহণ করে।

সার্ভারের উচিত তারপর ব্যাচ রিপোর্ট এবং ব্যাচটি অ্যাগ্রিগেশন সার্ভিসে পাঠানো। সমষ্টিগত প্রতিবেদনের এনক্রিপ্টেড পেলোডে উপলব্ধ তথ্যের উপর ভিত্তি করে ব্যাচগুলি তৈরি করুন, যেমন shared_info ক্ষেত্র৷ আদর্শভাবে, ব্যাচগুলিতে প্রতি ব্যাচে 100 বা তার বেশি প্রতিবেদন থাকা উচিত।

আপনি দৈনিক বা সাপ্তাহিক ভিত্তিতে ব্যাচ করার সিদ্ধান্ত নিতে পারেন। এই কৌশলটি নমনীয়, এবং আপনি নির্দিষ্ট ইভেন্টগুলির জন্য আপনার ব্যাচিং কৌশল পরিবর্তন করতে পারেন যেখানে আপনি আরও ভলিউম আশা করেন—উদাহরণস্বরূপ, বছরের যে দিনগুলিতে আরও ইম্প্রেশন প্রত্যাশিত হয়। ব্যাচগুলিতে একই API সংস্করণ, প্রতিবেদনের উত্স এবং প্রতিবেদনের সময়সূচী থেকে প্রতিবেদন অন্তর্ভুক্ত করা উচিত।

একত্রীকরণ পরিষেবা

পরিষেবাটি একটি TEE তে চলে, সমষ্টিগত প্রতিবেদনগুলিকে ডিক্রিপ্ট করে এবং চূড়ান্ত সারাংশ প্রতিবেদন তৈরি করতে গোলমাল যোগ করে৷

একত্রিতকরণ পরিষেবা সংগ্রাহকের কাছ থেকে এনক্রিপ্ট করা সমষ্টিগত প্রতিবেদন পায় এবং সারাংশ প্রতিবেদন তৈরি করে।

রিপোর্ট পেলোড ডিক্রিপ্ট করতে, অ্যাগ্রিগেশন সার্ভিস সমন্বয়কারীর কাছ থেকে একটি ডিক্রিপশন কী নিয়ে আসে। পরিষেবাটি একটি বিশ্বস্ত এক্সিকিউশন এনভায়রনমেন্টে (TEE), যা ডেটা অখণ্ডতা, ডেটা গোপনীয়তা এবং কোড অখণ্ডতার জন্য একটি স্তরের নিশ্চয়তা প্রদান করে৷ যদিও আপনি পরিষেবাটির মালিক এবং পরিচালনা করেন, 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 এর সমষ্টিগত মান অনেক বেশি সংকেত-থেকে-শব্দের অনুপাত থাকবে।

অতএব, একটি স্কেলিং ফ্যাক্টর দ্বারা আপনার সমষ্টিগত মান গুণ করা গোলমাল কমাতে সাহায্য করতে পারে। স্কেলিং ফ্যাক্টর প্রতিনিধিত্ব করে যে আপনি একটি প্রদত্ত সমষ্টিগত মান কতটা স্কেল করতে চান।

সমষ্টিগত মান নির্বিশেষে গোলমাল ধ্রুবক।

একটি বৃহত্তর স্কেলিং ফ্যাক্টর বেছে নিয়ে মানগুলিকে স্কেল করা আপেক্ষিক শব্দ কমিয়ে দেয়। যাইহোক, এটি সমস্ত বালতি জুড়ে সমস্ত অবদানের যোগফলকে দ্রুত অবদান বাজেটের সীমাতে পৌঁছানোর কারণ করে। একটি ছোট স্কেলিং ফ্যাক্টর ধ্রুবক বেছে নেওয়ার মাধ্যমে মানগুলি হ্রাস করা আপেক্ষিক শব্দ বৃদ্ধি করে, কিন্তু বাজেটের সীমাতে পৌঁছানোর ঝুঁকি হ্রাস করে।

অবদান বাজেটের সমষ্টিগত মান স্কেল করুন।

একটি উপযুক্ত স্কেলিং ফ্যাক্টর গণনা করতে, সমস্ত কী জুড়ে সমষ্টিগত মানগুলির সর্বাধিক যোগফল দ্বারা অবদান বাজেটকে ভাগ করুন।

আরো জানতে অবদান বাজেট ডকুমেন্টেশন দেখুন.

জড়িত এবং মতামত শেয়ার করুন

প্রাইভেট অ্যাগ্রিগেশন API সক্রিয় আলোচনার অধীনে রয়েছে এবং ভবিষ্যতে পরিবর্তন হতে পারে। আপনি যদি এই APIটি চেষ্টা করেন এবং প্রতিক্রিয়া জানান, আমরা এটি শুনতে চাই।

,

প্রাইভেট অ্যাগ্রিগেশন API-এর মূল ধারণা

এই দলিল কার জন্য?

প্রাইভেট অ্যাগ্রিগেশন API ক্রস-সাইট ডেটা অ্যাক্সেস সহ ওয়ার্কলেটগুলি থেকে সামগ্রিক ডেটা সংগ্রহ সক্ষম করে। শেয়ার্ড স্টোরেজ এবং প্রোটেক্টেড অডিয়েন্স এপিআই-এর মধ্যে রিপোর্টিং ফাংশন তৈরি করতে বিকাশকারীদের জন্য এখানে শেয়ার করা ধারণাগুলি গুরুত্বপূর্ণ।

  • আপনি যদি একজন ডেভেলপার হন তাহলে ক্রস-সাইট পরিমাপের জন্য রিপোর্টিং সিস্টেম তৈরি করেন।
  • আপনি যদি একজন বিপণনকারী , ডেটা সায়েন্টিস্ট , বা অন্যান্য সারাংশ রিপোর্টের গ্রাহক হন, তাহলে এই প্রক্রিয়াগুলি বোঝা আপনাকে একটি অপ্টিমাইজ করা সারাংশ রিপোর্ট পুনরুদ্ধার করার জন্য ডিজাইনের সিদ্ধান্ত নিতে সাহায্য করবে৷

মূল পদ

এই নথিটি পড়ার আগে, মূল শর্তাবলী এবং ধারণাগুলির সাথে নিজেকে পরিচিত করা সহায়ক হবে৷ এই পদগুলির প্রতিটি এখানে গভীরভাবে বর্ণনা করা হবে।

  • একটি সমষ্টি কী (একটি বালতি হিসাবেও পরিচিত) হল ডেটা পয়েন্টগুলির একটি পূর্বনির্ধারিত সংগ্রহ। উদাহরণস্বরূপ, আপনি লোকেশন ডেটার একটি বালতি সংগ্রহ করতে চাইতে পারেন যেখানে ব্রাউজারটি দেশের নাম প্রতিবেদন করে। একটি সমষ্টি কী একাধিক মাত্রা থাকতে পারে (উদাহরণস্বরূপ, আপনার সামগ্রী উইজেটের দেশ এবং আইডি)।
  • একটি সমষ্টিগত মান হল একটি পৃথক ডেটা পয়েন্ট যা একটি সমষ্টি কীতে সংগ্রহ করা হয়। আপনি যদি ফ্রান্স থেকে কতজন ব্যবহারকারী আপনার সামগ্রী দেখেছেন তা পরিমাপ করতে চান, তাহলে সমষ্টি কী-তে France হল একটি মাত্রা এবং 1 -এর viewCount হল সমষ্টিগত মান।
  • সমষ্টিগত প্রতিবেদনগুলি একটি ব্রাউজারের মধ্যে তৈরি এবং এনক্রিপ্ট করা হয়। প্রাইভেট অ্যাগ্রিগেশন এপিআই-এর জন্য, এতে একটি ইভেন্টের ডেটা থাকে।
  • একত্রিতকরণ পরিষেবা একটি সারাংশ প্রতিবেদন তৈরি করতে সমষ্টিগত প্রতিবেদন থেকে ডেটা প্রক্রিয়া করে।
  • একটি সংক্ষিপ্ত প্রতিবেদন হল একত্রীকরণ পরিষেবার চূড়ান্ত আউটপুট, এবং এতে কোলাহলপূর্ণ একত্রিত ব্যবহারকারী ডেটা এবং বিস্তারিত রূপান্তর ডেটা রয়েছে।
  • একটি ওয়ার্কলেট হল অবকাঠামোর একটি অংশ যা আপনাকে নির্দিষ্ট জাভাস্ক্রিপ্ট ফাংশন চালাতে এবং অনুরোধকারীকে তথ্য ফেরত দিতে দেয়। একটি ওয়ার্কলেটের মধ্যে, আপনি জাভাস্ক্রিপ্ট চালাতে পারেন কিন্তু আপনি বাইরের পৃষ্ঠার সাথে ইন্টারঅ্যাক্ট বা যোগাযোগ করতে পারবেন না।

প্রাইভেট অ্যাগ্রিগেশন ওয়ার্কফ্লো

আপনি যখন প্রাইভেট অ্যাগ্রিগেশন এপিআইকে একটি অ্যাগ্রিগেশন কী এবং অ্যাগ্রিগেটেবল ভ্যালু দিয়ে কল করেন, তখন ব্রাউজার একটি অ্যাগ্রিগেটেবল রিপোর্ট তৈরি করে। প্রতিবেদনগুলি আপনার সার্ভারে পাঠানো হয় যা প্রতিবেদনগুলিকে ব্যাচ করে। ব্যাচ করা রিপোর্টগুলি পরে অ্যাগ্রিগেশন সার্ভিস দ্বারা প্রক্রিয়া করা হয় এবং একটি সারাংশ রিপোর্ট তৈরি করা হয়।

ক্লায়েন্ট থেকে সংগ্রাহকের কাছে ডেটা প্রবাহিত হয়, তারপর একটি সংক্ষিপ্ত প্রতিবেদন তৈরি করতে একত্রিতকরণ পরিষেবাতে।
  1. আপনি যখন প্রাইভেট অ্যাগ্রিগেশন এপিআই কল করেন, তখন ক্লায়েন্ট (ব্রাউজার) সংগ্রহ করার জন্য আপনার সার্ভারে সমষ্টিগত প্রতিবেদন তৈরি করে এবং পাঠায়।
  2. আপনার সার্ভার ক্লায়েন্টদের কাছ থেকে রিপোর্ট সংগ্রহ করে এবং এগ্রিগেশন সার্ভিসে পাঠানোর জন্য ব্যাচ করে।
  3. একবার আপনি পর্যাপ্ত রিপোর্ট সংগ্রহ করলে, আপনি একটি সারসংক্ষেপ রিপোর্ট তৈরি করতে একটি বিশ্বস্ত এক্সিকিউশন পরিবেশে চলমান অ্যাগ্রিগেশন সার্ভিসে ব্যাচ করে পাঠাবেন।

এই বিভাগে বর্ণিত কর্মপ্রবাহটি অ্যাট্রিবিউশন রিপোর্টিং API- এর অনুরূপ। যাইহোক, অ্যাট্রিবিউশন রিপোর্টিং একটি ইম্প্রেশন ইভেন্ট এবং একটি রূপান্তর ইভেন্ট থেকে সংগৃহীত ডেটা সহযোগী করে, যা বিভিন্ন সময়ে ঘটে। ব্যক্তিগত সমষ্টি একটি একক, ক্রস-সাইট ইভেন্ট পরিমাপ করে।

একত্রিতকরণ কী

একটি সমষ্টি কী (সংক্ষেপে "কী") সেই বালতিকে প্রতিনিধিত্ব করে যেখানে সমষ্টিগত মানগুলি জমা করা হবে। এক বা একাধিক মাত্রা কীটিতে এনকোড করা যেতে পারে। একটি মাত্রা এমন কিছু দিককে উপস্থাপন করে যা আপনি আরও অন্তর্দৃষ্টি পেতে চান, যেমন ব্যবহারকারীদের বয়স বা বিজ্ঞাপন প্রচারের ইম্প্রেশন সংখ্যা।

উদাহরণস্বরূপ, আপনার কাছে একটি উইজেট থাকতে পারে যা একাধিক সাইট জুড়ে এমবেড করা আছে এবং আপনার উইজেটটি দেখেছেন এমন ব্যবহারকারীদের দেশ বিশ্লেষণ করতে চান৷ আপনি প্রশ্নগুলির উত্তর খুঁজছেন যেমন "আমার উইজেটটি দেখেছেন এমন ব্যবহারকারীদের মধ্যে কতজন দেশ X থেকে?" এই প্রশ্নে রিপোর্ট করতে, আপনি একটি সমষ্টি কী সেট আপ করতে পারেন যা দুটি মাত্রা এনকোড করে: উইজেট আইডি এবং দেশের আইডি।

প্রাইভেট অ্যাগ্রিগেশন এপিআইতে সরবরাহ করা কী হল একটি BigInt , যা একাধিক মাত্রা নিয়ে গঠিত। এই উদাহরণে, মাত্রা হল উইজেট আইডি এবং দেশের আইডি। ধরা যাক যে উইজেট আইডি 4 সংখ্যা পর্যন্ত লম্বা হতে পারে যেমন 1234 , এবং প্রতিটি দেশকে বর্ণানুক্রমিক ক্রমে একটি সংখ্যায় ম্যাপ করা হয়েছে যেমন আফগানিস্তান হল 1 , ফ্রান্স হল 61 এবং জিম্বাবুয়ে হল '195'৷ অতএব, সমষ্টিগত কী 7 সংখ্যার হবে, যেখানে প্রথম 4টি অক্ষর WidgetID এর জন্য সংরক্ষিত এবং শেষ 3টি অক্ষর CountryID এর জন্য সংরক্ষিত।

ধরা যাক কীটি ফ্রান্সের ব্যবহারকারীদের সংখ্যাকে প্রতিনিধিত্ব করে (দেশের আইডি 061 ) যারা উইজেট আইডি 3276 দেখেছে, একত্রিতকরণ কী 3276061

একত্রিতকরণ কী
উইজেট আইডি দেশের আইডি
3276 061

একত্রিতকরণ কী একটি হ্যাশিং পদ্ধতির সাথেও তৈরি করা যেতে পারে, যেমন SHA-256 । উদাহরণস্বরূপ, স্ট্রিংটি {"WidgetId":3276,"CountryID":67} হ্যাশ করা যেতে পারে এবং তারপরে BigInt 42943797454801331377966796057547478208888578253058197330928948081739249096287n . যদি হ্যাশের মানটিতে 128 বিটের বেশি থাকে, তাহলে আপনি এটি 2^128−1 এর সর্বাধিক অনুমোদিত বালতি মান অতিক্রম করবে না তা নিশ্চিত করতে এটিকে ছেঁটে ফেলতে পারেন।

একটি শেয়ার্ড স্টোরেজ ওয়ার্কলেটের মধ্যে, আপনি crypto এবং TextEncoder মডিউলগুলি অ্যাক্সেস করতে পারেন যা আপনাকে একটি হ্যাশ তৈরি করতে সহায়তা করতে পারে। হ্যাশ তৈরি করার বিষয়ে আরও জানতে, MDN-এ 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

সমষ্টিগত মান

সংক্ষিপ্ত প্রতিবেদনে সারাংশের মানের আকারে সমষ্টিগত অন্তর্দৃষ্টি তৈরি করতে অনেক ব্যবহারকারীর জন্য সমষ্টিগত মানগুলিকে কী প্রতি যোগ করা হয়।

এখন, পূর্বে উত্থাপিত উদাহরণ প্রশ্নে ফিরে যান: "আমার উইজেটটি দেখেছেন এমন ব্যবহারকারীদের মধ্যে কতজন ফ্রান্সের?" এই প্রশ্নের উত্তরটি এমন কিছু দেখাবে "প্রায় 4881 জন ব্যবহারকারী যারা আমার উইজেট আইডি 3276 দেখেছেন তারা ফ্রান্সের।" প্রতিটি ব্যবহারকারীর জন্য সমষ্টিগত মান হল 1, এবং "4881 ব্যবহারকারী" হল একত্রিত মান যা সেই সমষ্টি কী-এর জন্য সমস্ত সমষ্টিযোগ্য মানের সমষ্টি৷

একত্রিতকরণ কী সমষ্টিগত মান
উইজেট আইডি দেশের আইডি দেখুন গণনা
3276 061 1

এই উদাহরণের জন্য, উইজেটটি দেখেন এমন প্রতিটি ব্যবহারকারীর জন্য আমরা 1 দ্বারা মান বৃদ্ধি করি। অনুশীলনে, সংকেত-থেকে-শব্দের অনুপাত উন্নত করতে সমষ্টিগত মান স্কেল করা যেতে পারে।

অবদান বাজেট

প্রাইভেট অ্যাগ্রিগেশন API-এর প্রতিটি কলকে একটি অবদান বলা হয়। ব্যবহারকারীর গোপনীয়তা রক্ষা করতে, একজন ব্যক্তির কাছ থেকে সংগ্রহ করা অবদানের সংখ্যা সীমিত।

আপনি যখন সমস্ত একত্রীকরণ কী জুড়ে সমস্ত সমষ্টিগত মান যোগ করেন, তখন যোগফল অবশ্যই অবদান বাজেটের থেকে কম হতে হবে। বাজেট প্রতি-ওয়ার্কলেট মূল , প্রতি-দিনের ব্যাপ্তি, এবং সুরক্ষিত শ্রোতা API এবং শেয়ার্ড স্টোরেজ ওয়ার্কলেটের জন্য আলাদা। দিনের জন্য প্রায় শেষ 24 ঘন্টার একটি ঘূর্ণায়মান উইন্ডো ব্যবহার করা হয়। যদি একটি নতুন সমষ্টিগত প্রতিবেদন বাজেটকে অতিক্রম করতে পারে, প্রতিবেদনটি তৈরি করা হয় না।

অবদান বাজেট প্যারামিটার L 1 দ্বারা প্রতিনিধিত্ব করা হয়, এবং 2 20 এর ব্যাকস্টপ সহ প্রতিদিন প্রতি দশ মিনিটে 2 16 (65,536) সেট করা হয়

(1,048,576)। এই প্যারামিটার সম্পর্কে আরও জানতে ব্যাখ্যাকারী দেখুন।

অবদান বাজেটের মূল্য নির্বিচারে, কিন্তু গোলমাল এটিকে স্কেল করা হয়। আপনি সারাংশের মানগুলিতে সংকেত-থেকে-শব্দের অনুপাত সর্বাধিক করতে এই বাজেটটি ব্যবহার করতে পারেন ( নয়েজ এবং স্কেলিং বিভাগে আরও আলোচনা করা হয়েছে)।

অবদান বাজেট সম্পর্কে আরও জানতে, ব্যাখ্যাকারী দেখুন। এছাড়াও, আরো নির্দেশনার জন্য অবদান বাজেট পড়ুন।

সমষ্টিগত প্রতিবেদন

ব্যবহারকারী একবার প্রাইভেট অ্যাগ্রিগেশন এপিআই চালু করলে, ব্রাউজারটি পরবর্তী সময়ে সংক্ষিপ্ত প্রতিবেদন তৈরি করার জন্য অ্যাগ্রিগেশন সার্ভিস দ্বারা প্রক্রিয়া করার জন্য সমষ্টিগত প্রতিবেদন তৈরি করে। একটি সমষ্টিগত প্রতিবেদন 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 পৃষ্ঠা থেকে পরিদর্শন করা যেতে পারে:

প্রাইভেট অ্যাগ্রিগেশন এপিআই ইন্টারনাল পৃষ্ঠার স্ক্রিনশট

পরীক্ষার উদ্দেশ্যে, "নির্বাচিত প্রতিবেদনগুলি পাঠান" বোতামটি অবিলম্বে সার্ভারে রিপোর্ট পাঠাতে ব্যবহার করা যেতে পারে।

সমষ্টিগত প্রতিবেদন সংগ্রহ করুন এবং ব্যাচ করুন

ব্রাউজারটি তালিকাভুক্ত সুপরিচিত পাথ ব্যবহার করে প্রাইভেট অ্যাগ্রিগেশন এপিআই-তে কল সম্বলিত ওয়ার্কলেটের মূলে সমষ্টিগত প্রতিবেদন পাঠায়:

  • শেয়ার্ড স্টোরেজের জন্য: /.well-known/private-aggregation/report-shared-storage
  • সুরক্ষিত দর্শকদের জন্য: /.well-known/private-aggregation/report-protected-audience

এই শেষ পয়েন্টগুলিতে, আপনাকে একটি সার্ভার পরিচালনা করতে হবে - একটি সংগ্রাহক হিসাবে কাজ করা - যা ক্লায়েন্টদের কাছ থেকে পাঠানো সমষ্টিগত প্রতিবেদনগুলি গ্রহণ করে।

সার্ভারের উচিত তারপর ব্যাচ রিপোর্ট এবং ব্যাচটি অ্যাগ্রিগেশন সার্ভিসে পাঠানো। সমষ্টিগত প্রতিবেদনের এনক্রিপ্টেড পেলোডে উপলব্ধ তথ্যের উপর ভিত্তি করে ব্যাচগুলি তৈরি করুন, যেমন shared_info ক্ষেত্র৷ আদর্শভাবে, ব্যাচগুলিতে প্রতি ব্যাচে 100 বা তার বেশি প্রতিবেদন থাকা উচিত।

আপনি দৈনিক বা সাপ্তাহিক ভিত্তিতে ব্যাচ করার সিদ্ধান্ত নিতে পারেন। এই কৌশলটি নমনীয়, এবং আপনি নির্দিষ্ট ইভেন্টগুলির জন্য আপনার ব্যাচিং কৌশল পরিবর্তন করতে পারেন যেখানে আপনি আরও ভলিউম আশা করেন—উদাহরণস্বরূপ, বছরের যে দিনগুলিতে আরও ইম্প্রেশন প্রত্যাশিত হয়। ব্যাচগুলিতে একই API সংস্করণ, প্রতিবেদনের উত্স এবং প্রতিবেদনের সময়সূচী থেকে প্রতিবেদন অন্তর্ভুক্ত করা উচিত।

একত্রীকরণ পরিষেবা

পরিষেবাটি একটি TEE তে চলে, সমষ্টিগত প্রতিবেদনগুলিকে ডিক্রিপ্ট করে এবং চূড়ান্ত সারাংশ প্রতিবেদন তৈরি করতে গোলমাল যোগ করে৷

একত্রিতকরণ পরিষেবা সংগ্রাহকের কাছ থেকে এনক্রিপ্ট করা সমষ্টিগত প্রতিবেদন পায় এবং সারাংশ প্রতিবেদন তৈরি করে।

রিপোর্ট পেলোড ডিক্রিপ্ট করতে, অ্যাগ্রিগেশন সার্ভিস সমন্বয়কারীর কাছ থেকে একটি ডিক্রিপশন কী নিয়ে আসে। পরিষেবাটি একটি বিশ্বস্ত এক্সিকিউশন এনভায়রনমেন্টে (TEE), যা ডেটা অখণ্ডতা, ডেটা গোপনীয়তা এবং কোড অখণ্ডতার জন্য একটি স্তরের নিশ্চয়তা প্রদান করে৷ যদিও আপনি পরিষেবাটির মালিক এবং পরিচালনা করেন, 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 এর সমষ্টিগত মান অনেক বেশি সংকেত-থেকে-শব্দের অনুপাত থাকবে।

অতএব, একটি স্কেলিং ফ্যাক্টর দ্বারা আপনার সমষ্টিগত মান গুণ করা গোলমাল কমাতে সাহায্য করতে পারে। স্কেলিং ফ্যাক্টর প্রতিনিধিত্ব করে যে আপনি একটি প্রদত্ত সমষ্টিগত মান কতটা স্কেল করতে চান।

সমষ্টিগত মান নির্বিশেষে গোলমাল ধ্রুবক।

একটি বৃহত্তর স্কেলিং ফ্যাক্টর বেছে নিয়ে মানগুলিকে স্কেল করা আপেক্ষিক শব্দ কমিয়ে দেয়। যাইহোক, এটি সমস্ত বালতি জুড়ে সমস্ত অবদানের যোগফলকে দ্রুত অবদান বাজেটের সীমাতে পৌঁছানোর কারণ করে। একটি ছোট স্কেলিং ফ্যাক্টর ধ্রুবক বেছে নেওয়ার মাধ্যমে মানগুলি হ্রাস করা আপেক্ষিক শব্দ বৃদ্ধি করে, কিন্তু বাজেটের সীমাতে পৌঁছানোর ঝুঁকি হ্রাস করে।

অবদান বাজেটের সমষ্টিগত মান স্কেল করুন।

একটি উপযুক্ত স্কেলিং ফ্যাক্টর গণনা করতে, সমস্ত কী জুড়ে সমষ্টিগত মানগুলির সর্বাধিক যোগফল দ্বারা অবদান বাজেটকে ভাগ করুন।

আরো জানতে অবদান বাজেট ডকুমেন্টেশন দেখুন.

জড়িত এবং মতামত শেয়ার করুন

প্রাইভেট অ্যাগ্রিগেশন API সক্রিয় আলোচনার অধীনে রয়েছে এবং ভবিষ্যতে পরিবর্তন হতে পারে। আপনি যদি এই APIটি চেষ্টা করেন এবং প্রতিক্রিয়া জানান, আমরা এটি শুনতে চাই।