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

প্রাইভেট এগ্রিগেশন এপিআই-এর মূল ধারণাগুলি

এই নথিটি কার জন্য?

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

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

মূল শব্দ

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

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

ব্যক্তিগত সমষ্টি কর্মপ্রবাহ

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

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

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

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

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

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

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

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

একত্রিতকরণ কী
উইজেট আইডি দেশের আইডি
৩২৭৬ ০৬১

অ্যাগ্রিগেশন কীটি SHA-256 এর মতো একটি হ্যাশিং মেকানিজম ব্যবহার করেও তৈরি করা যেতে পারে। উদাহরণস্বরূপ, {"WidgetId":3276,"CountryID":67} স্ট্রিংটি হ্যাশ করা যেতে পারে এবং তারপর 42943797454801331377966796057547478208888578253058197330928948081739249096287n এর BigInt মান রূপান্তরিত করা যেতে পারে। যদি হ্যাশ মানটিতে 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

সমষ্টিগত মান

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

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

একত্রিতকরণ কী সমষ্টিগত মান
উইজেট আইডি দেশের আইডি ভিউ সংখ্যা
৩২৭৬ ০৬১

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

অবদান বাজেট

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

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

অবদান বাজেটটি প্যারামিটার L 1 দ্বারা প্রতিনিধিত্ব করা হয় এবং এটি প্রতিদিন প্রতি দশ মিনিটে 2 16 (65,536) এ সেট করা হয় যার ব্যাকস্টপ 2 20 (1,048,576)। এই প্যারামিটারগুলি সম্পর্কে আরও জানতে ব্যাখ্যাকারীটি দেখুন।

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

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

প্রতি রিপোর্টে অবদানের সীমা

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

শেয়ার্ড স্টোরেজের জন্য, একটি একক run() অথবা selectURL() অপারেশনের মধ্যে করা অবদানগুলিকে একটি প্রতিবেদনে ব্যাচ করা হয়। সুরক্ষিত দর্শকের জন্য, একটি নিলামের মধ্যে একটি একক উৎসের দ্বারা করা অবদানগুলিকে একসাথে ব্যাচ করা হয়।

প্যাডিং সহ অবদান

প্যাডিং বৈশিষ্ট্যের মাধ্যমে অবদানগুলিকে আরও সংশোধন করা হয়। পেলোড প্যাড করার কাজটি সমষ্টিগত প্রতিবেদনে এমবেড করা অবদানের প্রকৃত সংখ্যা সম্পর্কে তথ্য সুরক্ষিত করে। প্যাডিংটি null অবদান (অর্থাৎ 0 মান সহ) দিয়ে পেলোডকে একটি নির্দিষ্ট দৈর্ঘ্যে পৌঁছানোর জন্য বৃদ্ধি করে।

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

ব্যবহারকারী একবার Private Aggregation API ব্যবহার করলে, ব্রাউজারটি Aggregateable রিপোর্ট তৈরি করে যা পরবর্তীতে Aggregation Service দ্বারা প্রক্রিয়া করা হয় এবং সারাংশ রিপোর্ট তৈরি করে। একটি Aggregateable রিপোর্ট JSON-ফর্ম্যাটেড এবং এতে অবদানের একটি এনক্রিপ্ট করা তালিকা থাকে, প্রতিটি একটি {aggregation key, aggregatable value} জোড়া। Aggregateable রিপোর্টগুলি এক ঘন্টা পর্যন্ত এলোমেলো বিলম্বের সাথে পাঠানো হয়।

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

ডিবাগ মোড সক্ষম থাকা অবস্থায় একটি সমষ্টিগত প্রতিবেদনের উদাহরণ:

  "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 পৃষ্ঠা থেকে পরিদর্শন করা যেতে পারে:

ব্যক্তিগত সমষ্টি API ইন্টার্নাল পৃষ্ঠা
ব্যক্তিগত সমষ্টি API ইন্টার্নাল পৃষ্ঠা

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

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

ব্রাউজারটি তালিকাভুক্ত সুপরিচিত পথ ব্যবহার করে, কল ধারণকারী ওয়ার্কলেটের উৎপত্তিস্থলে সমষ্টিগত প্রতিবেদনগুলি Private Aggregation API-তে পাঠায়:

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

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

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

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

ফিল্টার আইডি

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

ব্যক্তিগত একত্রীকরণ এবং একত্রীকরণ পরিষেবা ফিল্টারিং আইডি।
ব্যক্তিগত একত্রীকরণ এবং একত্রীকরণ পরিষেবা ফিল্টারিং আইডি।

আজই এটি ব্যবহার শুরু করার জন্য, আপনার বর্তমান বাস্তবায়নে প্রয়োগ করার জন্য এখানে কিছু মোটামুটি পদক্ষেপ দেওয়া হল।

শেয়ার্ড স্টোরেজের ধাপগুলি

আপনি যদি আপনার প্রবাহে শেয়ার্ড স্টোরেজ API ব্যবহার করেন:

  1. আপনার নতুন Shared Storage মডিউলটি কোথায় ঘোষণা করবেন এবং চালাবেন তা নির্ধারণ করুন। নিম্নলিখিত উদাহরণে, আমরা filtering-worklet.js মডিউল ফাইলটির নাম দিয়েছি, যা filtering-example অধীনে নিবন্ধিত।

    (async function runFilteringIdsExample () {
    await window.sharedStorage.worklet.addModule('filtering-worklet.js');
    await window.sharedStorage.run('filtering-example', {
      keepAlive: true,
      privateAggregationConfig: {
        contextId: 'example-id',
        filteringIdMaxBytes: 8 // optional
      }
    }});
    })();
    

    মনে রাখবেন যে filteringIdMaxBytes প্রতি রিপোর্টে কনফিগারযোগ্য এবং যদি সেট না করা থাকে, তাহলে ডিফল্ট 1 এ থাকে। এই ডিফল্ট মানটি পেলোডের আকার অপ্রয়োজনীয়ভাবে বৃদ্ধি এবং এর ফলে স্টোরেজ এবং প্রক্রিয়াকরণ খরচ রোধ করার জন্য। নমনীয় অবদান ব্যাখ্যাকারীতে আরও পড়ুন।

  2. filtering-worklet.js তে, যখন আপনি শেয়ার্ড স্টোরেজ ওয়ার্কলেটের মধ্যে privateAggregation.contributeToHistogram(...) তে একটি অবদান পাস করেন, তখন আপনি একটি ফিল্টারিং আইডি নির্দিষ্ট করতে পারেন।

    // Within  filtering-worklet.js
    class FilterOperation {
      async run() {
        let contributions = [{
          bucket: 1234n,
          value: 56,
          filteringId: 3n // defaults to 0n if not assigned, type bigint
        }];
    
        for (const c of contributions) {
          privateAggregation.contributeToHistogram(c);
        }
        
    }
    });
    
    register('filtering-example', FilterOperation);
    
  3. সমষ্টিগত প্রতিবেদনগুলি আপনার এন্ডপয়েন্ট /.well-known/private-aggregation/report-shared-storage সংজ্ঞায়িত স্থানে পাঠানো হবে। সমষ্টিগত পরিষেবা কাজের প্যারামিটারগুলিতে প্রয়োজনীয় পরিবর্তনগুলি সম্পর্কে জানতে ফিল্টারিং আইডি নির্দেশিকাটি অনুসরণ করুন।

ব্যাচিং সম্পন্ন হয়ে আপনার ডিপ্লয়েড অ্যাগ্রিগেশন সার্ভিসে পাঠানোর পর, আপনার ফিল্টার করা ফলাফলগুলি আপনার চূড়ান্ত সারাংশ প্রতিবেদনের মধ্যে প্রতিফলিত হওয়া উচিত।

সুরক্ষিত দর্শকদের পদক্ষেপ

আপনি যদি আপনার প্রবাহে সুরক্ষিত শ্রোতা API ব্যবহার করেন:

  1. আপনার বর্তমান Protected Audience বাস্তবায়নের মধ্যে, আপনি Private Aggregation-এ সংযুক্ত করার জন্য নিম্নলিখিতগুলি সেট করতে পারেন। Shared Storage-এর বিপরীতে, ফিল্টারিং ID-এর সর্বোচ্চ আকার কনফিগার করা এখনও সম্ভব নয়। ডিফল্টরূপে, ফিল্টারিং ID-এর সর্বোচ্চ আকার 1 বাইট এবং এটি 0n এ সেট করা হবে। মনে রাখবেন যে এগুলি আপনার Protected Audience রিপোর্টিং ফাংশনে সেট করা হবে (যেমন reportResult() অথবা generateBid() )।

    const contribution = {
      ...
      filteringId: 0n
    };
    
    privateAggregation.contributeToHistogram(contribution);
    
  2. সমষ্টিগত প্রতিবেদনগুলি আপনার নির্ধারিত শেষ বিন্দু /.well-known/private-aggregation/report-protected-audience এ পাঠানো হবে। ব্যাচিং সম্পন্ন হয়ে আপনার স্থাপন করা সমষ্টিগত পরিষেবাতে পাঠানোর পরে, আপনার ফিল্টার করা ফলাফলগুলি আপনার চূড়ান্ত সারাংশ প্রতিবেদনের মধ্যে প্রতিফলিত হওয়া উচিত। প্রাথমিক প্রস্তাবের পাশাপাশি অ্যাট্রিবিউশন রিপোর্টিং API এবং ব্যক্তিগত সমষ্টিগত API-এর জন্য নিম্নলিখিত ব্যাখ্যাকারীগুলি উপলব্ধ।

আরও বিস্তারিত অ্যাকাউন্টের জন্য অ্যাগ্রিগেশন সার্ভিসে আমাদের ফিল্টারিং আইডি নির্দেশিকাটি চালিয়ে যান অথবা অ্যাট্রিবিউশন রিপোর্টিং API বিভাগগুলিতে যান।

সমষ্টি পরিষেবা

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

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

এই পরিষেবাটি একটি বিশ্বস্ত কার্যকর পরিবেশে (TEE) পরিচালিত হয়, যা ডেটা অখণ্ডতা, ডেটা গোপনীয়তা এবং কোড অখণ্ডতার জন্য একটি স্তরের নিশ্চয়তা প্রদান করে। TEE-এর পাশাপাশি সমন্বয়কারীদের কীভাবে ব্যবহার করা হয় তা যদি আপনি আরও ঘনিষ্ঠভাবে দেখতে চান, তাহলে তাদের ভূমিকা এবং উদ্দেশ্য সম্পর্কে আরও পড়ুন।

সারাংশ প্রতিবেদন

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

একটি সারাংশ প্রতিবেদনে JSON অভিধান-শৈলীর কী-মান জোড়ার একটি সেট থাকে। প্রতিটি জোড়ায় থাকে:

  • bucket : একটি বাইনারি সংখ্যা স্ট্রিং হিসেবে অ্যাগ্রিগেশন কী। যদি ব্যবহৃত অ্যাগ্রিগেশন কী "123" হয়, তাহলে বাকেটটি "1111011" হবে।
  • value : একটি নির্দিষ্ট পরিমাপ লক্ষ্যের জন্য সারসংক্ষেপ মান, যা শব্দ যোগ করে সমস্ত উপলব্ধ সমষ্টিগত প্রতিবেদন থেকে সংকলিত।

উদাহরণস্বরূপ:

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

শব্দ এবং স্কেলিং

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

সমস্ত সমষ্টিগত মানের যোগফল নির্বিশেষে শব্দ বন্টন একই। অতএব, সমষ্টিগত মান যত বেশি হবে, শব্দের প্রভাব তত কম হবে।

উদাহরণস্বরূপ, ধরা যাক শব্দ বন্টনের একটি আদর্শ বিচ্যুতি ১০০ এবং এটি শূন্য কেন্দ্রীভূত। যদি সংগৃহীত সমষ্টিগত প্রতিবেদন মান (অথবা "সমষ্টিগত মান") মাত্র ২০০ হয়, তাহলে শব্দের আদর্শ বিচ্যুতি হবে সমষ্টিগত মানের ৫০%। কিন্তু, যদি সমষ্টিগত মান ২০,০০০ হয়, তাহলে শব্দের আদর্শ বিচ্যুতি হবে সমষ্টিগত মানের মাত্র ০.৫%। সুতরাং, ২০,০০০ এর সমষ্টিগত মানের সংকেত-থেকে-শব্দ অনুপাত অনেক বেশি হবে।

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

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

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

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

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

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

অংশগ্রহণ করুন এবং মতামত শেয়ার করুন

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