প্রাইভেট অ্যাগ্রিগেশন API-এর মূল ধারণা
এই দলিল কার জন্য?
প্রাইভেট অ্যাগ্রিগেশন API ক্রস-সাইট ডেটা অ্যাক্সেস সহ ওয়ার্কলেটগুলি থেকে সামগ্রিক ডেটা সংগ্রহ সক্ষম করে। শেয়ার্ড স্টোরেজ এবং প্রোটেক্টেড অডিয়েন্স এপিআই-এর মধ্যে রিপোর্টিং ফাংশন তৈরি করতে বিকাশকারীদের জন্য এখানে শেয়ার করা ধারণাগুলি গুরুত্বপূর্ণ।
- আপনি যদি একজন ডেভেলপার হন তাহলে ক্রস-সাইট পরিমাপের জন্য রিপোর্টিং সিস্টেম তৈরি করেন।
- আপনি যদি একজন বিপণনকারী , ডেটা সায়েন্টিস্ট , বা অন্যান্য সারাংশ রিপোর্টের গ্রাহক হন, তাহলে এই প্রক্রিয়াগুলি বোঝা আপনাকে একটি অপ্টিমাইজ করা সারাংশ রিপোর্ট পুনরুদ্ধার করার জন্য ডিজাইনের সিদ্ধান্ত নিতে সাহায্য করবে৷
মূল পদ
এই নথিটি পড়ার আগে, মূল শর্তাবলী এবং ধারণাগুলির সাথে নিজেকে পরিচিত করা সহায়ক হবে৷ এই পদগুলির প্রতিটি এখানে গভীরভাবে বর্ণনা করা হবে।
- একটি সমষ্টি কী (একটি বালতি হিসাবেও পরিচিত) হল ডেটা পয়েন্টগুলির একটি পূর্বনির্ধারিত সংগ্রহ। উদাহরণস্বরূপ, আপনি লোকেশন ডেটার একটি বালতি সংগ্রহ করতে চাইতে পারেন যেখানে ব্রাউজারটি দেশের নাম প্রতিবেদন করে। একটি সমষ্টি কী একাধিক মাত্রা থাকতে পারে (উদাহরণস্বরূপ, আপনার সামগ্রী উইজেটের দেশ এবং আইডি)।
- একটি সমষ্টিগত মান হল একটি পৃথক ডেটা পয়েন্ট যা একটি সমষ্টি কীতে সংগ্রহ করা হয়। আপনি যদি ফ্রান্স থেকে কতজন ব্যবহারকারী আপনার সামগ্রী দেখেছেন তা পরিমাপ করতে চান, তাহলে সমষ্টি কী-তে
France
হল একটি মাত্রা এবং1
এরviewCount
হল সমষ্টিগত মান। - সমষ্টিগত প্রতিবেদনগুলি একটি ব্রাউজারের মধ্যে তৈরি এবং এনক্রিপ্ট করা হয়। প্রাইভেট অ্যাগ্রিগেশন এপিআই-এর জন্য, এতে একটি ইভেন্টের ডেটা থাকে।
- একত্রিতকরণ পরিষেবা একটি সারাংশ প্রতিবেদন তৈরি করতে সমষ্টিগত প্রতিবেদন থেকে ডেটা প্রক্রিয়া করে।
- একটি সংক্ষিপ্ত প্রতিবেদন হল একত্রীকরণ পরিষেবার চূড়ান্ত আউটপুট, এবং এতে কোলাহলপূর্ণ একত্রিত ব্যবহারকারী ডেটা এবং বিস্তারিত রূপান্তর ডেটা রয়েছে।
- একটি ওয়ার্কলেট হল অবকাঠামোর একটি অংশ যা আপনাকে নির্দিষ্ট জাভাস্ক্রিপ্ট ফাংশন চালাতে এবং অনুরোধকারীকে তথ্য ফেরত দিতে দেয়। একটি ওয়ার্কলেটের মধ্যে, আপনি জাভাস্ক্রিপ্ট চালাতে পারেন কিন্তু আপনি বাইরের পৃষ্ঠার সাথে ইন্টারঅ্যাক্ট বা যোগাযোগ করতে পারবেন না।
প্রাইভেট অ্যাগ্রিগেশন ওয়ার্কফ্লো
আপনি যখন প্রাইভেট অ্যাগ্রিগেশন এপিআইকে একটি অ্যাগ্রিগেশন কী এবং অ্যাগ্রিগেটেবল ভ্যালু দিয়ে কল করেন, তখন ব্রাউজার একটি অ্যাগ্রিগেটেবল রিপোর্ট তৈরি করে। প্রতিবেদনগুলি আপনার সার্ভারে পাঠানো হয় যা প্রতিবেদনগুলিকে ব্যাচ করে। ব্যাচ করা রিপোর্টগুলি পরে অ্যাগ্রিগেশন সার্ভিস দ্বারা প্রক্রিয়া করা হয় এবং একটি সারাংশ রিপোর্ট তৈরি করা হয়।
- আপনি যখন প্রাইভেট অ্যাগ্রিগেশন এপিআই কল করেন, তখন ক্লায়েন্ট (ব্রাউজার) সংগ্রহ করার জন্য আপনার সার্ভারে সমষ্টিগত প্রতিবেদন তৈরি করে এবং পাঠায়।
- আপনার সার্ভার ক্লায়েন্টদের কাছ থেকে রিপোর্ট সংগ্রহ করে এবং এগ্রিগেশন সার্ভিসে পাঠানোর জন্য ব্যাচ করে।
- একবার আপনি পর্যাপ্ত রিপোর্ট সংগ্রহ করলে, আপনি একটি সারসংক্ষেপ রিপোর্ট তৈরি করতে একটি বিশ্বস্ত এক্সিকিউশন পরিবেশে চলমান অ্যাগ্রিগেশন সার্ভিসে ব্যাচ করে পাঠাবেন।
এই বিভাগে বর্ণিত কর্মপ্রবাহটি অ্যাট্রিবিউশন রিপোর্টিং 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 (1,048,576) এর ব্যাকস্টপ সহ প্রতিদিন প্রতি দশ মিনিটে 2 16 (65,536) সেট করা হয়। এই প্যারামিটার সম্পর্কে আরও জানতে ব্যাখ্যাকারী দেখুন।
অবদান বাজেটের মূল্য নির্বিচারে, কিন্তু গোলমাল এটিকে স্কেল করা হয়। আপনি এই বাজেটটি সারাংশের মানগুলিতে সংকেত-থেকে-শব্দের অনুপাতকে সর্বাধিক করতে ব্যবহার করতে পারেন (আরও নয়েজ এবং স্কেলিং বিভাগে আলোচনা করা হয়েছে)।
অবদান বাজেট সম্পর্কে আরও জানতে, ব্যাখ্যাকারী দেখুন। এছাড়াও, আরো নির্দেশনার জন্য অবদান বাজেট পড়ুন।
রিপোর্ট প্রতি অবদান সীমা
কলারের উপর নির্ভর করে, অবদানের সীমা আলাদা হতে পারে। এই সময়ে, শেয়ার্ড স্টোরেজ এপিআই কলারদের জন্য তৈরি করা রিপোর্ট প্রতি রিপোর্টে 20টি অবদানে সীমাবদ্ধ। অন্যদিকে, সুরক্ষিত অডিয়েন্স এপিআই কলারদের প্রতি রিপোর্টে 100টি অবদান রাখা হয়েছে। এই সীমাগুলি পেলোডের আকারের সাথে এমবেড করা যেতে পারে এমন অবদানের সংখ্যার ভারসাম্যের জন্য বেছে নেওয়া হয়েছিল।
শেয়ার্ড স্টোরেজের জন্য, একটি একক run()
বা selectURL()
অপারেশনের মধ্যে করা অবদানগুলি একটি রিপোর্টে ব্যাচ করা হয়। সুরক্ষিত দর্শকদের জন্য, একটি নিলামের মধ্যে একটি একক উত্স দ্বারা করা অবদানগুলি একসাথে ব্যাচ করা হয়৷
প্যাডিং সঙ্গে অবদান
অবদান একটি প্যাডিং বৈশিষ্ট্য সঙ্গে আরও সংশোধন করা হয়. পেলোড প্যাড করার কাজটি সমষ্টিগত প্রতিবেদনে এমবেড করা অবদানের প্রকৃত সংখ্যা সম্পর্কে তথ্য সুরক্ষা করে। প্যাডিং একটি নির্দিষ্ট দৈর্ঘ্যে পৌঁছানোর জন্য null
অবদান (অর্থাৎ 0 এর মান সহ) সহ পেলোডকে বৃদ্ধি করে।
সমষ্টিগত প্রতিবেদন
ব্যবহারকারী একবার প্রাইভেট অ্যাগ্রিগেশন এপিআই চালু করলে, ব্রাউজারটি পরবর্তী সময়ে সংক্ষিপ্ত প্রতিবেদন তৈরি করার জন্য অ্যাগ্রিগেশন সার্ভিস দ্বারা প্রক্রিয়া করার জন্য সমষ্টিগত প্রতিবেদন তৈরি করে। একটি সমষ্টিগত প্রতিবেদন 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 সংস্করণ, প্রতিবেদনের উত্স এবং প্রতিবেদনের সময়সূচী থেকে প্রতিবেদন অন্তর্ভুক্ত করা উচিত।
ফিল্টারিং আইডি
প্রাইভেট অ্যাগ্রিগেশন এপিআই এবং অ্যাগ্রিগেশন সার্ভিস ফিল্টারিং আইডি ব্যবহার করে পরিমাপগুলিকে আরও দানাদার স্তরে যেমন বিজ্ঞাপন প্রচারাভিযানের প্রতি বৃহত্তর ক্যোয়ারীতে ফলাফলগুলি প্রক্রিয়া করার পরিবর্তে ব্যবহার করার অনুমতি দেয়৷
আজই এটি ব্যবহার শুরু করতে, আপনার বর্তমান বাস্তবায়নে প্রয়োগ করার জন্য এখানে কিছু রুক্ষ পদক্ষেপ রয়েছে।
শেয়ার্ড স্টোরেজ ধাপ
আপনি যদি আপনার প্রবাহে শেয়ার্ড স্টোরেজ API ব্যবহার করেন:
আপনি কোথায় ঘোষণা করবেন তা নির্ধারণ করুন এবং আপনার নতুন শেয়ার্ড স্টোরেজ মডিউল চালান। নিম্নলিখিত উদাহরণে, আমরা
filtering-example
অধীনে নিবন্ধিত মডিউল ফাইলটির নাম দিয়েছিfiltering-worklet.js
।(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 এ। এই ডিফল্ট মানটি হল অপ্রয়োজনীয়ভাবে পেলোডের আকার বৃদ্ধি এবং এইভাবে স্টোরেজ এবং প্রক্রিয়াকরণের খরচ রোধ করা। নমনীয় অবদান ব্যাখ্যাকারীতে আরও পড়ুন।আপনি উপরে যে ফাইলটি ব্যবহার করেছেন, এই ক্ষেত্রে
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);
সমষ্টিগত প্রতিবেদনগুলি সেখানে পাঠানো হবে যেখানে আপনি এন্ডপয়েন্ট
/.well-known/private-aggregation/report-shared-storage
সংজ্ঞায়িত করেছেন। অ্যাগ্রিগেশন সার্ভিস কাজের প্যারামিটারে প্রয়োজনীয় পরিবর্তনগুলি সম্পর্কে জানতে ফিল্টারিং আইডি গাইডে চালিয়ে যান।
ব্যাচিং সম্পন্ন হওয়ার পরে এবং আপনার নিয়োজিত একত্রীকরণ পরিষেবাতে পাঠানোর পরে, আপনার ফিল্টার করা ফলাফলগুলি আপনার চূড়ান্ত সারাংশ প্রতিবেদনে প্রতিফলিত হওয়া উচিত।
সুরক্ষিত শ্রোতা পদক্ষেপ
আপনি যদি আপনার প্রবাহে সুরক্ষিত শ্রোতা API ব্যবহার করেন:
সুরক্ষিত শ্রোতাদের আপনার বর্তমান বাস্তবায়নের মধ্যে, আপনি ব্যক্তিগত একত্রিতকরণের জন্য নিম্নলিখিতগুলি সেট করতে পারেন৷ শেয়ার্ড স্টোরেজের বিপরীতে, ফিল্টারিং আইডির সর্বোচ্চ আকার কনফিগার করা এখনও সম্ভব নয়। ডিফল্টরূপে, ফিল্টারিং আইডি সর্বোচ্চ আকার 1 বাইট এবং
0n
এ সেট করা হবে। মনে রাখবেন যে এগুলি আপনার সুরক্ষিত শ্রোতা রিপোর্টিং ফাংশনে সেট করা হবে (যেমনreportResult()
বাgenerateBid()
)।const contribution = { ... filteringId: 0n }; privateAggregation.contributeToHistogram(contribution);
সমষ্টিগত প্রতিবেদনগুলি সেখানে পাঠানো হবে যেখানে আপনি এন্ডপয়েন্ট
/.well-known/private-aggregation/report-protected-audience
সংজ্ঞায়িত করেছেন। ব্যাচিং সম্পন্ন হওয়ার পরে এবং আপনার নিয়োজিত একত্রীকরণ পরিষেবাতে পাঠানোর পরে, আপনার ফিল্টার করা ফলাফলগুলি আপনার চূড়ান্ত সারাংশ প্রতিবেদনে প্রতিফলিত হওয়া উচিত। অ্যাট্রিবিউশন রিপোর্টিং এপিআই এবং প্রাইভেট অ্যাগ্রিগেশন এপিআই এর জন্য নিম্নলিখিত ব্যাখ্যাকারী উপলব্ধ, সেইসাথে প্রাথমিক প্রস্তাব।
এগ্রিগেশন সার্ভিসে আমাদের ফিল্টারিং আইডি গাইডে চালিয়ে যান বা আরও বিস্তারিত অ্যাকাউন্টের জন্য অ্যাট্রিবিউশন রিপোর্টিং API বিভাগগুলিতে যান।
একত্রীকরণ পরিষেবা
একত্রিতকরণ পরিষেবা সংগ্রাহকের কাছ থেকে এনক্রিপ্ট করা সমষ্টিগত প্রতিবেদন পায় এবং সারাংশ প্রতিবেদন তৈরি করে। আপনার সংগ্রাহকের ব্যাচের সমষ্টিগত প্রতিবেদনগুলি সম্পর্কে আরও কৌশলের জন্য, আমাদের ব্যাচিং গাইড দেখুন।
পরিষেবাটি একটি বিশ্বস্ত এক্সিকিউশন এনভায়রনমেন্টে (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 গ্রুপে যোগ দিন।