এই নির্দেশিকা বর্ণনা করে যে কীভাবে এনক্রিপ্ট করা পরিমাপ রিপোর্ট বিজ্ঞাপন প্রযুক্তি প্রদানকারীদের কাছে পাঠানো হয়। ক্রোম ব্রাউজার এবং ক্লায়েন্টরা এই রিপোর্টগুলিকে নির্দিষ্ট রিপোর্টিং এন্ডপয়েন্টে পাঠায়, যেখানে বিজ্ঞাপন প্রযুক্তি প্ল্যাটফর্ম সমষ্টিগত প্রতিবেদনগুলি গ্রহণ করে এবং সঞ্চয় করে। এই শেষ পয়েন্টগুলি, প্রদানকারীর রিপোর্টিং মূলের মধ্যে .well-known
URL-এ অবস্থিত, প্ল্যাটফর্ম দ্বারা হোস্ট করা হয়, এগুলি অ্যাক্সেস করতে অ্যাট্রিবিউশন রিপোর্টিং API বা ব্যক্তিগত সমষ্টি API ব্যবহার করে বিজ্ঞাপন প্রযুক্তি প্রদানকারীদের সক্ষম করে৷

নিম্নলিখিত পদক্ষেপগুলি সমষ্টিগত প্রতিবেদনগুলি গ্রহণ এবং সংরক্ষণ করার জন্য সমষ্টি পরিষেবার প্রক্রিয়ার বিশদ বিবরণ দেয়:
- ট্রিগার করা হলে, ব্রাউজার ক্রস-সাইট এবং রূপান্তর ডেটা উভয়ের বিশদ বিবরণ সহ সমষ্টিগত প্রতিবেদন পাঠায়।
- ব্রাউজারটি বিজ্ঞাপন প্রযুক্তি রিপোর্টিং ডোমেনের মধ্যে একটি
.well-known
URL-এ এনক্রিপ্ট করা রিপোর্ট সরবরাহ করে। - সিস্টেমটি রিপোর্টের ব্যাচগুলিকে প্রক্রিয়াকরণের জন্য একত্রিতকরণ পরিষেবাতে প্রেরণ করে।
- এগ্রিগেশন সার্ভিস পরিসংখ্যানগতভাবে প্রতিবেদনের সংক্ষিপ্ত বিবরণ দেয়।
- অ্যাগ্রিগেশন সার্ভিস ব্যবহারকারীর গোপনীয়তা বাড়াতে সংক্ষিপ্ত ডেটাতে গোলমাল যোগ করে।
- সিস্টেম বিশ্লেষণ এবং পরিমাপের উদ্দেশ্যে বিজ্ঞাপন প্রযুক্তি কোম্পানির কাছে প্রতিবেদনগুলি উপলব্ধ করে।
নিম্নোক্ত সারণীটি প্রাইভেট অ্যাগ্রিগেশন এপিআই এবং অ্যাট্রিবিউশন রিপোর্টিং এপিআই-এর জন্য ডিবাগ এবং লাইভ এন্ডপয়েন্ট বর্ণনা করে:
API | শেষবিন্দু | বর্ণনা |
---|---|---|
প্রাইভেট অ্যাগ্রিগেশন API |
|
|
অ্যাট্রিবিউশন রিপোর্টিং API |
|
|
রিপোর্টিং অরিজিন পোস্ট কলের মাধ্যমে JSON রিপোর্ট পায়। সিস্টেম তারপর এই রিপোর্টগুলিকে অভ্র ফরম্যাটে রূপান্তর করে এবং ক্লাউড স্টোরেজে রাখে। ব্যাচ প্রক্রিয়াকরণের পর, সিস্টেম সংক্ষিপ্তকরণের জন্য অ্যাগ্রিগেশন সার্ভিসে অভ্র রিপোর্ট পাঠায়।
অ্যাড টেক প্ল্যাটফর্মগুলি অ্যাগ্রিগেশন পরিষেবাতে একটি সমষ্টি কাজের অনুরোধ ট্রিগার করে যখন অভ্র রিপোর্টের একটি ব্যাচ প্রক্রিয়াকরণের জন্য প্রস্তুত বলে মনে করা হয়। অ্যাড টেক প্ল্যাটফর্মের ক্লাউড এনভায়রনমেন্টের মধ্যে হোস্ট করা এই পরিষেবাটি একই স্টোরেজ লোকেশন থেকে প্রয়োজনীয় অভ্র রিপোর্ট পুনরুদ্ধার করে। নিরাপত্তার উদ্দেশ্যে, অ্যাগ্রিগেশন সার্ভিসকে একটি অনুমোদিত কন্টেইনার ইমেজ ব্যবহার করার জন্য কনফিগার করতে হবে। উপলব্ধ ধারক চিত্রগুলির জন্য গোপনীয়তা স্যান্ডবক্স/একত্রীকরণ-পরিষেবা GitHub সংগ্রহস্থল দেখুন।
নিম্নলিখিত দেখায় প্রতিটি API দ্বারা প্রত্যাবর্তিত প্রতিবেদনের প্রতিনিধি উদাহরণ:
- ব্যক্তিগত সমষ্টি API রিপোর্ট উদাহরণ :
{
"aggregation_coordinator_origin": "https://publickeyservice.msmt.aws.privacysandboxservices.com",
"aggregation_service_payloads": [ {
"key_id": "1a2baa3f-5d48-46cf-91f0-772633c12640",
"payload": "8Cjr1s3FVkCYkjzBvyzJn14yardVjd5N4vLCA69LQAPbIkJ0B58hAqUGBCNXpvTjW9ZpIoZbCSiUOsUDuoA/S+tqVolLMkame6sWC07cfUmZcVsbU+La3pzTMtCgdtNc8MIWgD3C63CMw7rWroRlechewVUajvAYVK/0HJq0YyGrTiFZZm36zi0jjyHLAXKV8p1Lvy1d0o/wnBxC5oVo5BV6LPkxqQEcoYS2GyixUuht6wD0RzuH+BxxuH6vY/ynp2xDrnwftjvqwDUAxUWLFTunthM6BXZVxlrvOBim1h2dvPqWSyKZ5gafo+MgW9EM4SraavNM3XzZSCjdtAfSMJMrynSu2j0opyAq+9e1jq1xeYN00yZrJ0Y/GTI45IGjgCnVmvmuoI9ucW2SnXP31CQBwHqk4gtUgMsYGFSUYfhtnAQ/8TSbaXyS2LX+cQW87LqkvIraWw6o37O24VFBreFoFFXpu3IUeCZfji+Sr4/ykfZuHeMzQbBavyNnHKzPZlbLSXMiucx4/vWzYyOzHeIlbtupXVvbi40V2PieDShaSbjI266kGgFkeCk6z51AaAGebDPtRT1lhBpcoQ6JdF0Yp5VWSnyFARKFtCZ1aEBrlUlrEHLUQY/pFtmDxJQiicRz1YPjR8jRr3C7hlRhWwov0dMocqnMz5209hHGVZWSsaGc9kWjtxREW2ULXfoIwOGbX+WZsyFW2RhXksQPJ5fhyNc4ROkAzUthLb68gC5e0yZHvmLIAU4hcWe0UanJv+jRljn8PAPaJHKFUxQNJyBA7mTbn5mkpycxGrX6T3ZYdPHqvckqt9llJZWjr8NneizzZFRuJk423BDs38fXkvcTAsAckd2Zu0u2KC45WR93sN2/CWrqB7/QU9BsgNdonl/ehAWhU1LbcRRvBTcR9+0wL7vRL7cv5LG3+gRYRKsWI6U2nDSWp0cNpo9+HU0JNiifa5X0cguihqU2bSk6ABozgRtCZ7m+7eqWXMLSzBdmc1CPUoQppo6Wmf6ujdNqI6v2S6pDH781lph8Z2v7ZpxGdhVVPEL51cVn"
} ],
"debug_key": "1234",
"shared_info": "{\"api\":\"shared-storage\",\"report_id\":\"05e3b948-cb8d-4404-be29-bfeac7ad9710\",\"reporting_origin\":\"https://privacy-sandbox-demos-dsp.dev\",\"scheduled_report_time\":\"1707784729\",\"version\":\"0.1\"}"
}
- অ্যাট্রিবিউশন রিপোর্টিং API রিপোর্ট উদাহরণ
{
"aggregation_coordinator_origin": "https://publickeyservice.msmt.aws.privacysandboxservices.com",
"aggregation_service_payloads": [ {
"key_id": "2dee0f3f-2aee-4a4a-8238-9154ed3d6f72",
"payload": "pHvTHhcxvNKaCmnLpvYQsXlJpiNRuFO5Zj1QqUlqgWPOfuoHLfiXiFjmpvY8a53/OYnS4bKwHwJReFcofldsu8E9BzTTJ3CEk+B7vbEjnDPaljhpIBMTuQXy3QHGK4slWR/yNZVm2uXRWR/DVVzXziBoTDjN7qaPstRoLKUUMdfY2u8oq4tnLY00Y+NDZttZ4wJvC7hPmvY3lqHjdl14JPD2ytZZ4NViYzno3WKdH/oZc0jhGK4zI38lAM0qpahF/B9yb4zOu7IRIjQpNx73P8naDyddxLldoVlW/qHpO04FguWymscvI/8i6NwUR6Kj8seRlWS0iIUhETt/ai3lilKUHUb+uz0YG2kxjoXq7Ldk+MP56nNl67ZRNi2YZ7bOGI/okYWoT/wt2uWPe/5xAEMmadxl0hQQrG7YXHRSD8rDnaVPXo+AKIxdg727yJeB1ZENZvovl/kIevdRAmdBe2h1U3J6Uz6psly/46fvjgkj5QD+kO2uaYirzvmwS19luJsN/Qvh/R3ZO4qlJIQI0nDJPWwUJ4ODpyVmj4a0xQp3t2ESEnf4EmY7+khn3xpF5+MwEWKES2ZeDf7SHalR99pvZA8G3Fr8M0PWFmT00cmKCBwpQgZyd3Eay70UlqdkbFEedxiCVWKNNOUz41m5KG/7K3aR+dYx57l57Wct4gOFQg3jiUEBJWrFIVCXf12BT5iz5rBQh1N1CUt2oCOhYL/sPuBl6OV5GWHSIj8FUdpoDolqKXWINXfE88MUijE2ghNRpJN25BXIErUQtO9wFQv7zotC6d2BIaF0x8AkKg/7yzBQRySX/FZP3H3lMkpOz9rQMV8DjZ2lz7nV4k6CFo8qhT6cpYJD7GpYl81xJbglNqcJt5Pe5YUHrdBMyAFsTh3yoJvYnhQib/0xVN/a93lbYccxsd0yi375n4Xz0i1HUoe2ps+WlU8XysAUA1agG936eshaY1anTtbJbrcoaH+BNSacKiq4saprgUGl4eDjaR/uBhvUnO52WkmAGon8De3EFMZ/kwpPBNSXi7/MIAMjotsSKBc19bfg"
} ],
"shared_info": "{\"api\":\"attribution-reporting\",\"attribution_destination\":\"https://privacy-sandbox-demos-shop.dev\",\"report_id\":\"5b052748-f5fb-4f14-b291-de03484ed59e\",\"reporting_origin\":\"https://privacy-sandbox-demos-dsp.dev\",\"scheduled_report_time\":\"1707786751\",\"source_registration_time\":\"0\",\"version\":\"0.1\"}",
"source_debug_key": "123456789",
"trigger_debug_key": "123456789"
}
JSON কে Avro রিপোর্টে রূপান্তর করুন
ব্যাচিংয়ের উদ্দেশ্যে অ্যাগ্রিগেটেবল রিপোর্টগুলি অবশ্যই Apache Avro ডেটা সিরিয়ালাইজেশন ফর্ম্যাটে হতে হবে। একটি অভ্র রিপোর্ট তৈরি করার জন্য আপনাকে অবশ্যই একটি AVSC স্কিমা ব্যবহার করতে হবে। AVSC স্কিমা ফাইল অভ্র রেকর্ড গঠন এবং ডেটা টাইপ সংজ্ঞায়িত করে। একটি AVSC স্কিমার উদাহরণের জন্য, এই avrodoc/schemata GitHub সংগ্রহস্থলে example.avsc
ফাইলটি দেখুন।
আপনি প্রাইভেসিস্যান্ডবক্স/এগ্রিগেশন-সার্ভিস গিটহাব রিপোজিটরিতে অবস্থিত সংগ্রহ এবং ব্যাচিং অ্যাগ্রিগেটেবল রিপোর্ট পৃষ্ঠার সংগ্রহ, রূপান্তর এবং ব্যাচ রিপোর্ট বিভাগে উদাহরণ জাভাস্ক্রিপ্ট কোড খুঁজে পেতে পারেন।
আপনার কাছে একটি একক AVRO ফাইলে সমস্ত প্রতিবেদন সংরক্ষণ বা একাধিক ফাইল জুড়ে বিতরণ করার নমনীয়তা রয়েছে। যদিও AVRO ফাইলগুলির কোনও আকারের সীমা নেই, সর্বোত্তম কার্যক্ষমতা সাধারণত অর্জন করা হয় যখন ফাইলের সংখ্যা আপনার ক্লাউড ইন্সট্যান্সে CPU-এর সংখ্যা থেকে 1000 পর্যন্ত হয়।
নিম্নলিখিত কোড উদাহরণটি সমষ্টিগত প্রতিবেদনের জন্য একটি Avro স্কিমা দেখায়। প্রতিবেদনের ক্ষেত্রে payload
, key_id
, এবং shared_info
অন্তর্ভুক্ত।
{
"type": "record",
"name": "AggregatableReport",
"fields": [
{
"name": "payload",
"type": "bytes"
},
{
"name": "key_id",
"type": "string"
},
{
"name": "shared_info",
"type": "string"
}
]
}
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
payload | বাইট | লাইভ বা প্রোডাকশন রিপোর্টের জন্য payload বেস64 ডিকোড করা এবং একটি বাইট অ্যারেতে রূপান্তরিত হওয়া আবশ্যক। |
debug_cleartext_payload | বাইট | পেলোডটি অবশ্যই বেস64 ডিকোড করা এবং ডিবাগ রিপোর্টের জন্য debug_cleartext_payload থেকে একটি বাইট অ্যারেতে রূপান্তরিত হতে হবে। |
key_id | স্ট্রিং | এটি রিপোর্টে পাওয়া key_id স্ট্রিং। key_id হল একটি 128-বিট সার্বজনীন অনন্য শনাক্তকারী। |
shared_info | স্ট্রিং | shared_info ফিল্ডে এটি অপরিবর্তিত, নন-টেম্পারড স্ট্রিং পাওয়া গেছে। |
নিম্নলিখিত একটি উদাহরণ JSON রিপোর্ট:
{
"aggregation_coordinator_identifier": "aws-cloud",
"aggregation_service_payloads": [{
"debug_cleartext_payload": "omRkYXhgaJldmFsdWVEAAAAgGZidWNrZXRQAAAAAAAAAAAAAAAAAAAFWW1vcGVyYX",
"key_id": "3c6e2850-edf6-4886-eb70-eb3f2a7a7596",
"payload": "oapYz92Mb1yam9YQ2AnK8dduTt2RwFUSApGcKqXnG1q+aGXfJ5DGpSxMj0NxdZgp7Cq"
}],
"debug_key": "1234",
"shared_info":
"{\"api\":\"shared-storage\",\"debug_mode\":\"enabled\",\"report_id\":\"b029b922-93e9-4d66-a8c6-8cdeec762aed\",\"reporting_origin\":\"https://privacy-sandbox-demos-dsp.dev\",\"scheduled_report_time\":\"1719251997\",\"version\":\"0.1\"}"
}
ডোমেন ফাইল স্পেসিফিকেশন
অ্যাগ্রিগেশন সার্ভিসের সাথে সারাংশ রিপোর্ট তৈরি করার জন্য আপনার সমষ্টিগত রিপোর্ট (JSON রিপোর্টগুলি Avro-তে রূপান্তরিত) এবং সংশ্লিষ্ট ডোমেন ফাইল প্রয়োজন। সিস্টেম আপনার সমষ্টিগত প্রতিবেদনগুলি থেকে পূর্ব-ঘোষিত কীগুলি বের করে এবং আউটপুট ডোমেনের মধ্যে সারাংশ প্রতিবেদনে সেগুলিকে অন্তর্ভুক্ত করে। আপনি অ্যাট্রিবিউশন রিপোর্টিংয়ের জন্য একত্রীকরণ কী বোঝার এবং ব্যক্তিগত একত্রীকরণ API মৌলিক বিষয়গুলির একত্রীকরণ কী বিভাগে এই গুরুত্বপূর্ণ একত্রীকরণ কীগুলি সম্পর্কে বিশদ পাবেন৷ আউটপুট ডোমেনে bucket
ক্ষেত্রও রয়েছে যা আপনার বালতি কী মানকে উপস্থাপন করে।
নিম্নলিখিত স্কিমা ব্যবহার করে ডোমেইন ফাইলটি অবশ্যই Avro ফরম্যাটে হতে হবে:
{
"type": "record",
"name": "AggregationBucket",
"fields": [
{
"name": "bucket",
"type": "bytes",
"doc": "A single bucket that appears in the aggregation service output. It is an 128-bit integer value encoded as a 16-byte big-endian bytestring."
}
]
}
বালতির চাবি
আউটপুট ডোমেনের মধ্যে থাকা বালতি কীটিকে অবশ্যই হেক্স বাইট স্ট্রিং হিসাবে উপস্থাপন করতে হবে।
যেমন:
যদি বালতি কী দশমিক মান 1369 হয়:
1369 কে এর হেক্সাডেসিমেল সমতুল্য রূপান্তর করুন: 559
হেক্সাডেসিমেল স্ট্রিং "559" কে একটি বাইট স্ট্রিং এ রূপান্তর করুন।
বালতি কীটির এই বাইট স্ট্রিং উপস্থাপনাটি তখন আউটপুট ডোমেইন Avro স্কিমাতে অন্তর্ভুক্ত করা উচিত।
গুরুত্বপূর্ণ বিবেচনা:
ডেটা টাইপ: অভ্র স্কিমার মধ্যে বালতি কীটিকে হেক্স বাইট স্ট্রিং উপস্থাপনাকে সামঞ্জস্য করার জন্য একটি বাইট টাইপ হিসাবে সংজ্ঞায়িত করা উচিত।
রূপান্তর: দশমিক থেকে হেক্স এবং তারপর একটি বাইট স্ট্রিং রূপান্তর পাইথন বা জাভা ব্যবহার করে বাস্তবায়ন করা যেতে পারে।
এই পদ্ধতিটি নিশ্চিত করে যে বালতি কী সঠিকভাবে ফরম্যাট করা হয়েছে এবং আউটপুট ডোমেনের জন্য অভ্র স্কিমার মধ্যে প্রত্যাশিত ডেটা টাইপের সাথে সামঞ্জস্যপূর্ণ।

ব্যাচ রিপোর্ট
গোপনীয়তা বাজেট এবং ব্যাচিং কৌশল সম্পর্কে বিশদ বিবরণের জন্য, ব্যাচিং কৌশল ডকুমেন্টেশন দেখুন। মনে রাখবেন যে সমষ্টিগত প্রতিবেদনগুলির scheduled_report_time
এবং ব্যাচ চালানোর তারিখের মধ্যে একটি MAX_REPORT_AGE সীমা (বর্তমানে 90 দিন) থাকে৷
সারসংক্ষেপ রিপোর্ট
ব্যাচ করার পর, অ্যাগ্রিগেশন সার্ভিস results.avsc
avsc স্কিমা ব্যবহার করে Avro ফরম্যাটে সারাংশ রিপোর্ট তৈরি করে।
কাজ শেষ হওয়ার পরে, সারাংশ রিপোর্টটি output_data_blob_prefix
এ output_data_bucket_name
বাকেটের মধ্যে সংরক্ষিত হয় যা createJob
অনুরোধে বলা হয়েছে।
অ্যাগ্রিগেশন সার্ভিস ব্যাচের জন্য যেখানে debug_run
সক্ষম করা আছে, এটি দুটি রিপোর্ট তৈরি করে, সারাংশ রিপোর্ট এবং ডিবাগ সারাংশ রিপোর্ট। ডিবাগ সারাংশ রিপোর্ট output_data_blob_prefix/debug
ফোল্ডারে অবস্থিত। ডিবাগ সারাংশ রিপোর্ট debug_results.avsc
স্কিমা ব্যবহার করে।
সারাংশ এবং ডিবাগ রিপোর্ট উভয়ই [output_data_blob_prefix]-1-of-1.avro
হিসাবে নামকরণ করা হয়েছে। আপনার output_data_blob_prefix
summary/summary.avro
হলে, রিপোর্টটি summary-1-of-1.avro
নামের সারাংশ ফোল্ডারে থাকে।
results.avsc
উদাহরণ
results.avsc
জন্য অভ্র স্কিমার উদাহরণ নিচে দেওয়া হল:
{
"type": "record",
"name": "AggregatedFact",
"fields": [
{
"name": "bucket",
"type": "bytes",
"doc": "Histogram bucket used in aggregation. It is an 128-bit integer value encoded as a 16-byte big-endian bytestring. Leading 0-bits are left out."
},
{
"name": "metric",
"type": "long",
"doc": "The metric associated with the bucket"
}
]
}
উদাহরণ Avro স্কিমা AggregatedFact
নামে একটি রেকর্ড সংজ্ঞায়িত করে।
debug_results.avsc
উদাহরণ
নিচে debug_results.avsc
জন্য Avro স্কিমার উদাহরণ হল:
{
"type": "record",
"name": "DebugAggregatedFact", Output domains include summary reports that contain pre-declared keys extracted from your aggregatable reports.
"fields": [
{
"name": "bucket",
"type": "bytes",
"doc": "This represents the histogram bucket used in aggregation. It's a 128-bit integer, encoded as a 16-byte big-endian bytestring, with leading zero bytes omitted.."
},
{
"name": "unnoised_metric",
"type": "long",
"doc": "The raw metric for the bucket."
},
{
"name": "noise",
"type": "long",
"doc": "The noise applied to the metric in the regular result."
}
{
"name":"annotations",
"type": {
"type": "array",
"items": {
"type":"enum",
"name":"bucket_tags",
"symbols":["in_domain","in_reports"]
}
}
]
}
একবার রূপান্তরিত হলে, আপনার সারাংশ রিপোর্ট results.json
json উদাহরণের অনুরূপ। যখন debug_run
সক্ষম করা হয়, তখন ডিবাগ সারাংশ রিপোর্ট রিটার্ন debug_results.json
উদাহরণের অনুরূপ।
অভ্র রিপোর্ট ফরম্যাট
অ্যাগ্রিগেশন সার্ভিস থেকে প্রাপ্ত অভ্র রিপোর্ট সাধারণত একটি সামঞ্জস্যপূর্ণ বিন্যাস মেনে চলে। অভ্র রিপোর্ট ফরম্যাটে নিম্নলিখিত ক্ষেত্রগুলি অন্তর্ভুক্ত রয়েছে:
bucket: ডেটা একত্রিতকরণের জন্য একটি অনন্য শনাক্তকারী (উদাহরণস্বরূপ, "\u0005Y")।
মেট্রিক: সংশ্লিষ্ট বালতির জন্য সমষ্টিগত মান। এই মান প্রায়ই গোপনীয়তা উন্নত করার জন্য যোগ করা শব্দ অন্তর্ভুক্ত করে।
যেমন:
{
"bucket": "\u0005Y",
"metric": 26308
}
debug_results.json
উদাহরণ
অ্যাগ্রিগেশন সার্ভিস থেকে ডিবাগ অভ্র রিপোর্টগুলি নিম্নলিখিত debug_results.json
উদাহরণের মতো হবে। এই রিপোর্টগুলির মধ্যে রয়েছে বালতি কী, unnoised_metric
(শব্দ প্রয়োগের আগে বালতি কীগুলির সারাংশ), এবং সেই মেট্রিকে যোগ করা শব্দ।
{
"bucket": "\u0005Y",
"unnoised_metric": 128,
"noise": -17948,
"annotations": [
"in_reports",
"in_domain"
]
}
টীকাগুলিতে নিম্নলিখিত মানগুলিও রয়েছে:
in_reports
: সমষ্টিগত প্রতিবেদনের ভিতরে উপলব্ধ বালতি কীin_domain
:output_domain
Avro ফাইলের ভিতরে বালতি কী উপলব্ধ