যখন বিজ্ঞাপন প্রযুক্তিবিদরা পরিমাপ API ( অ্যাট্রিবিউশন রিপোর্টিং API বা প্রাইভেট অ্যাগ্রিগেশন API ) ট্রিগার করেন, তখন এনক্রিপ্ট করা রিপোর্টগুলি Chrome ব্রাউজার / ক্লায়েন্ট সাইড থেকে বিজ্ঞাপন প্রযুক্তিবিদদের রিপোর্টিং এন্ডপয়েন্টে পাঠানো হয় যা বিজ্ঞাপন প্রযুক্তিবিদদের রিপোর্টিং উৎস সহ একটি .well-known URL। এনক্রিপ্ট করা রিপোর্ট সংগ্রহ করার জন্য বিজ্ঞাপন প্রযুক্তিবিদরা রিপোর্টিং এন্ডপয়েন্টটি হোস্ট করে।

প্রতিটি API-এর শেষ পয়েন্টগুলি নিম্নরূপ:
ব্যক্তিগত সমষ্টি
- ডিবাগ
[reporting-origin]/.well-known/private-aggregation/debug/report-shared-storage - লাইভ
[reporting-origin]/.well-known/private-aggregation/report-shared-storageঅথবা/.well-known/private-aggregation/report-protected-audience
- ডিবাগ
অ্যাট্রিবিউশন রিপোর্টিং
- ডিবাগ
[reporting-origin]/.well-known/attribution-reporting/debug/report-aggregate-attribution - লাইভ
[reporting-origin]/.well-known/attribution-reporting/report-aggregate-attribution
- ডিবাগ
বিজ্ঞাপন প্রযুক্তিবিদরা POST কলের মাধ্যমে JSON ফর্ম্যাটে রিপোর্টগুলি গ্রহণ করবেন। বিজ্ঞাপন প্রযুক্তিবিদরা এই JSON রিপোর্টগুলি সংগ্রহ করবেন এবং পরে এগুলিকে AVRO ফর্ম্যাটে রূপান্তর করবেন যা সমষ্টি পরিষেবাতে ব্যবহৃত হয়। একবার রূপান্তরিত হয়ে গেলে, AVRO রিপোর্টগুলি পরবর্তী ব্যাচিংয়ের জন্য বিজ্ঞাপন প্রযুক্তিবিদদের ক্লাউড স্টোরেজে সংরক্ষণ করা হয়।
একবার বিজ্ঞাপন প্রযুক্তি ব্যাচিংয়ের জন্য প্রস্তুত হয়ে গেলে, বিজ্ঞাপন প্রযুক্তিবিদরা অ্যাগ্রিগেশন পরিষেবার মাধ্যমে একটি অ্যাগ্রিগেশন কাজের অনুরোধ ট্রিগার করবে যেখানে বিজ্ঞাপন প্রযুক্তিবিদদের ক্লাউড স্টোরেজ থেকে প্রতিবেদনগুলি পুনরুদ্ধার করা হবে। অ্যাগ্রিগেশন পরিষেবা বিজ্ঞাপন প্রযুক্তিবিদদের ক্লাউড স্টোরেজে হোস্ট করা হয় এবং এর একটি অনুমোদিত-তালিকাভুক্ত ছবি থাকা উচিত।
প্রাপ্ত প্রতিবেদনগুলি দেখতে নিম্নলিখিতগুলির মতো:
ব্যক্তিগত সমষ্টি 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 রিপোর্টে রূপান্তর করুন
ব্যাচিং করার সময়, সমষ্টিগত প্রতিবেদনগুলি AVRO ফর্ম্যাটে থাকা প্রয়োজন। একটি AVRO প্রতিবেদন তৈরি করতে, আপনার প্রতিবেদন AVRO স্কিমা (AVSC) প্রয়োজন হবে।
একটি নমুনা জাভাস্ক্রিপ্ট কোড অ্যাগ্রিগেশন সার্ভিস গিটহাব রিপোজিটরিতে পাওয়া যায়।
Aggregatable রিপোর্টের জন্য 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 থেকে বাইট অ্যারেতে রূপান্তর করতে হবে। |
debug_cleartext_payload | বাইট | ডিবাগ রিপোর্টের জন্য পেলোডকে বেস৬৪ ডিকোড করতে হবে এবং debug_cleartext_payload থেকে একটি বাইট অ্যারেতে রূপান্তর করতে হবে। |
key_id | স্ট্রিং | এটি হবে রিপোর্টে পাওয়া key_id স্ট্রিং। key_id হবে একটি ১২৮-বিট সার্বজনীনভাবে অনন্য শনাক্তকারী যা একই রকম। |
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\"}"
}
আউটপুট ডোমেইন AVRO
Aggregation Service ব্যবহার করে সারাংশ প্রতিবেদন তৈরি করতে, বিজ্ঞাপন প্রযুক্তির জন্য aggregatable প্রতিবেদন এবং ডোমেন ফাইল প্রয়োজন। aggregatable প্রতিবেদনগুলি JSON প্রতিবেদনগুলি হবে যা রিপোর্টিং অরিজিনে প্রাপ্ত হবে এবং AVRO ফর্ম্যাটে রূপান্তরিত হবে। আউটপুট ডোমেনগুলিতে পূর্ব-ঘোষিত কীগুলি থাকবে যা আপনার aggregatable প্রতিবেদনগুলি থেকে সংগ্রহ করা হবে এবং সারাংশ প্রতিবেদনে লেখা হবে। অ্যাট্রিবিউশন রিপোর্টিং এবং Private Aggregation-এ এই কীগুলি সম্পর্কে আরও জানুন। আউটপুট ডোমেনে ফিল্ড বাকেট থাকবে এবং বাকেট মান হবে আপনার বাকেট কী।
ডোমেন ফাইলটি নিম্নলিখিত স্কিমা ব্যবহার করে AVRO ফর্ম্যাটে থাকতে হবে:
{
"type": "record",
"name": "AggregationBucket",
"fields": [
{
"name": "bucket",
"type": "bytes",
"doc": "A single bucket that appears in the aggregation service output. 128-bit integer encoded as a 16-byte big-endian bytestring."
}
]
}
বালতির চাবি
বাকেট কীটি বাকেট কী-এর একটি হেক্স বাইটেস্টিং হওয়া উচিত। এর একটি উদাহরণ হলো দশমিকে ১৩৬৯ এর একটি কী থাকা। হেক্সে রূপান্তরিত হলে, এটি ৫৫৯ হবে। তারপর আপনাকে ৫৫৯ কে একটি বাইটেস্টিং-এ রূপান্তর করতে হবে যাতে এটি AVRO আউটপুট ডোমেনে যোগ করা যায়।

ব্যাচ রিপোর্ট
গোপনীয়তা বাজেট এবং ব্যাচিং সম্পর্কে আরও জানতে, ব্যাচিং কৌশল ডক দেখুন। এছাড়াও, মনে রাখবেন যে একটি সমষ্টিগত প্রতিবেদন শুধুমাত্র একটি নির্দিষ্ট সময়ের মধ্যে ব্যাচ করা যেতে পারে। একটি প্রতিবেদন scheduled_report_time এবং ব্যাচ রান তারিখের (বর্তমানে 90 দিন) মধ্যে MAX_REPORT_AGE অতিক্রম করা উচিত নয়।
সারাংশ প্রতিবেদন
ব্যাচিংয়ের পর, অ্যাগ্রিগেশন সার্ভিস AVRO ফর্ম্যাটে সারাংশ প্রতিবেদন তৈরি করে। সারাংশ প্রতিবেদনটি results.avsc স্কিমা ব্যবহার করে।
সারাংশ প্রতিবেদনটি createJob অনুরোধে উল্লিখিত output_data_bucket_name বাকেটের output_data_blob_prefix এ অবস্থিত হবে।
Aggregation Service ব্যাচগুলির জন্য যেখানে 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 নামে সারাংশ ফোল্ডারে থাকবে।
ফলাফল.avsc
{
"type": "record",
"name": "AggregatedFact",
"fields": [
{
"name": "bucket",
"type": "bytes",
"doc": "Histogram bucket used in aggregation. 128-bit integer encoded as a 16-byte big-endian bytestring. Leading 0-bits will be left out."
},
{
"name": "metric",
"type": "long",
"doc": "Metric associated with the bucket"
}
]
}
ডিবাগ_রেজাল্ট.এভিএসসি
{
"type": "record",
"name": "DebugAggregatedFact",
"fields": [
{
"name": "bucket",
"type": "bytes",
"doc": "Histogram bucket used in aggregation. 128-bit integer encoded as a 16-byte big-endian bytestring. Leading 0-bits will be left out."
},
{
"name": "unnoised_metric",
"type": "long",
"doc": "Unnoised metric associated with 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 মতো দেখাবে। যখন debug_run সক্রিয় থাকে, তখন debug সারাংশ রিপোর্টটি উদাহরণ debug_results.json এর মতো কিছু ফেরত দেয়।
results.json (উদাহরণ)
অ্যাগ্রিগেশন সার্ভিস থেকে আসা AVRO রিপোর্টগুলি একই রকম দেখতে পারে যেখানে আপনার কাছে বাকেট কী এবং সারাংশ / সমষ্টিগত মান থাকে এবং বাকেট মানের অতিরিক্ত শব্দ থাকে।
{
"bucket": "\u0005Y",
"metric": 26308
}
debug_results.json (উদাহরণ)
Aggregation Service থেকে আসা ডিবাগ AVRO রিপোর্টগুলি নিচের চিত্রের মতো দেখতে হবে যেখানে আপনি আপনার বাকেট কীগুলি পাবেন, unnoised_metric (আওয়াজ ছাড়া বাকেট কীগুলির সারাংশ) এবং unnoised_metric এ যোগ করা শব্দ।
{
"bucket": "\u0005Y",
"unnoised_metric": 128,
"noise": -17948,
"annotations": [
"in_reports",
"in_domain"
]
}
টীকাগুলিতে in_reports এবং / অথবা in_domain ও থাকবে যার অর্থ:
-
in_reports: বাকেট কীটি সমষ্টিগত প্রতিবেদনের ভিতরে উপলব্ধ। -
in_domain: বাকেট কীটিoutput_domainAVRO ফাইলের ভিতরে উপলব্ধ।