কিছু অঞ্চলে ডেটা মুছে ফেলার নিয়মকানুন রয়েছে, যা অনুযায়ী পাবলিশারদের তাদের কন্টেন্টের ব্যবহারকারীদের ডেটা মুছে ফেলার অনুরোধ জানানোর একটি উপায় প্রদান করতে হয়। যদি আপনার রিয়েল-টাইম বিডিং ইন্টিগ্রেশন ফার্স্ট-পার্টি আইডেন্টিফায়ার ব্যবহার করে এবং ডেটা মুছে ফেলার নিয়মকানুন আছে এমন অঞ্চল থেকে ইনভেন্টরি গ্রহণ করে, তাহলে গুগল আপনাকে IAB-এর ডেটা ডিলিশন রিকোয়েস্ট ফ্রেমওয়ার্ক-এর সাথে ইন্টিগ্রেট করার পরামর্শ দেয়।
যখন কোনো ব্যবহারকারী কোনো পাবলিশারের অ্যাপ বা সাইট থেকে তাদের আইডেন্টিফায়ার মুছে ফেলার সিদ্ধান্ত নেন, তখন ডেটা ডিলিশন রিকোয়েস্ট ফ্রেমওয়ার্ক পাবলিশারকে একটি ডেটা ডিলিশন রিকোয়েস্ট প্রচার করার সুযোগ দেয়। পাবলিশার এক্সচেঞ্জগুলোর কাছে একটি ডেটা ডিলিশন রিকোয়েস্ট পাঠায়, যা সেই অনুরোধটি আপনার কাছে প্রচার করতে পারে। আপনি যখন একটি ডেটা ডিলিশন রিকোয়েস্ট পান, তখন আপনাকে অবশ্যই সেই এনটিটিগুলোর কাছে অনুরোধটি প্রচার করতে হবে যাদের সাথে আপনি পাবলিশারের ফার্স্ট-পার্টি ডেটা শেয়ার করেছেন। উদাহরণস্বরূপ, যদি আপনার একটি ওপেন বিডিং ইন্টিগ্রেশন থাকে, তবে আপনাকে অবশ্যই আপনার এক্সচেঞ্জের সেইসব বিডারদের কাছে অনুরোধটি প্রচার করতে হবে যাদের সাথে ফার্স্ট-পার্টি ডেটা শেয়ার করা হয়েছে।
এই নির্দেশিকাটি গুগল এক্সচেঞ্জের সাথে আপনার ডেটা ডিলিশন রিকোয়েস্ট ফ্রেমওয়ার্ক ইন্টিগ্রেশনের প্রাথমিক সেটআপ নিয়ে আলোচনা করে এবং গুগল এক্সচেঞ্জের প্রেক্ষাপটে ডেটা ডিলিশন রিকোয়েস্ট ফ্রেমওয়ার্ক ওয়ার্কফ্লো-এর একটি সংক্ষিপ্ত বিবরণ প্রদান করে। অতিরিক্ত নির্দেশনার জন্য, ডেটা ডিলিশন রিকোয়েস্ট ফ্রেমওয়ার্ক দেখুন।
আপনার ইন্টিগ্রেশন সেট আপ করুন
গুগল থেকে ডেটা মুছে ফেলার অনুরোধ পেতে শুরু করার জন্য, আপনাকে অবশ্যই গুগলের সাথে এমন একটি ডোমেইন নিবন্ধন করতে হবে যা আপনি আপনার অ্যাকাউন্টের সাথে যুক্ত করতে চান, এবং আপনার নিবন্ধিত ডোমেইনের রুটে একটি dsrdelete.json ফাইল হোস্ট করতে হবে। গুগলের সাথে আপনার ডোমেইন নিবন্ধন করতে, আপনার অ্যাকাউন্ট ম্যানেজারের সাথে যোগাযোগ করুন। dsrdelete.json ফাইলটি বিভিন্ন উদ্দেশ্যে কাজ করে, যেমন:
- সেই এন্ডপয়েন্টটি শনাক্ত করা যেখানে গুগল ডেটা মুছে ফেলার অনুরোধ পাঠায়।
- আপনার সমর্থিত আইডেন্টিফায়ারগুলো এবং সেগুলোর ফরম্যাটিং-এর তালিকা।
- JSON ওয়েব কী (JWK) স্ট্যান্ডার্ড অনুযায়ী আপনার পাবলিক কী উল্লেখ করা, যা অন্য পক্ষগুলো আপনার পাঠানো ডেটা মুছে ফেলার অনুরোধ বা প্রাপ্তিস্বীকার বার্তার সত্যতা যাচাই করতে ব্যবহার করে।
drsdelete.json ফাইল সম্পর্কে বিস্তারিত জানতে, যেমন কোন কোন আবশ্যিক ও ঐচ্ছিক ফিল্ড আপনি পূরণ করতে পারবেন, তার জন্য ডিসকভারি (Discovery ) দেখুন।
dsrdelete.json ফাইলে নির্দিষ্ট করা আপনার এন্ডপয়েন্টকে অবশ্যই আগত ডেটা মুছে ফেলার অনুরোধ গ্রহণ করতে হবে এবং তার উত্তর দিতে হবে। গুগল আপনার নির্বাচিত প্রোগ্রামিং ভাষার জন্য একটি ক্রিপ্টোগ্রাফিক লাইব্রেরি ব্যবহার করার পরামর্শ দেয়, যা আপনার প্রাপ্ত অনুরোধগুলো যাচাই করতে এবং আপনার পাঠানো স্বীকৃতিপত্রে স্বাক্ষর করতে সাহায্য করবে।
নিম্নলিখিত উদাহরণটি একটি এন্ডপয়েন্ট, আইডেন্টিফায়ার এবং পাবলিক কী দিয়ে একটি dsrdelete.json ফাইল সেট করে:
{
"endpoint": "https://www.doubleclick.net/iab-ddrf",
"identifiers": [
{ "id": 1, "type": "ppuid", "format": "plaintext" },
{ "id": 2, "type": "ifv", "format": "plaintext" },
{ "id": 3, "type": "sco", "format": "plaintext" }
],
"publicKey": [
{
"kty": "EC",
"crv": "P-256",
"x": "_OPPeKSEdi3_JEHla93vOGTx8VD01ozhyYxwQzYCVLs",
"y": "_XHufu2A_hbN5Uj4Wm7JPHE7ly0_4cmqntmz93pweys",
"kid": "yUa3wQ",
"use": "sig",
"alg": "ES256"
}
],
"vendorScriptRequirement": false
}
ডেটা মুছে ফেলার অনুরোধ গ্রহণ করুন
যখন নিম্নলিখিত সমস্ত শর্ত পূরণ হয়, তখন গুগল প্রকাশকদের কাছ থেকে আপনার কাছে ডেটা মুছে ফেলার অনুরোধ পাঠায়:
- আপনি গুগলে নিবন্ধিত একটি ডোমেইনে একটি বৈধ
dsrdelete.jsonফাইল হোস্ট করেন। - প্রকাশক গুগলের কাছে একটি শনাক্তকারীর জন্য ডেটা মুছে ফেলার অনুরোধ পাঠায়।
- গুগল নিশ্চিত করেছে যে, ডেটা মুছে ফেলার অনুরোধে পাঠানো প্রকাশক শনাক্তকারীটি আপনার সাথে শেয়ার করা হয়েছিল।
যখন আপনি ডেটা মুছে ফেলার অনুরোধ পান, তখন নির্দিষ্ট ডেটা মুছে ফেলার দায়িত্ব আপনার। আপনাকে অবশ্যই অন্যান্য ডেটা পার্টনারদের কাছেও ডেটা মুছে ফেলার অনুরোধটি পৌঁছে দিতে হবে, যাদের সাথে আপনি ফার্স্ট-পার্টি পাবলিশার ডেটা শেয়ার করেছেন। Google নিম্নলিখিত আইডেন্টিফায়ারগুলির জন্য ডেটা মুছে ফেলার অনুরোধ সমর্থন করে:
-
ppuid: প্রকাশক কর্তৃক প্রদত্ত শনাক্তকারী। -
sco: ওয়েবের জন্য প্রকাশকের প্রথম-পক্ষীয় শনাক্তকারী। -
ifv: iOS ডিভাইসগুলির জন্য প্রকাশকের ফার্স্ট-পার্টি শনাক্তকারী।
গুগল আপনার dsrdelete.json ফাইলে নির্দিষ্ট করা এন্ডপয়েন্টে একটি HTTP POST অনুরোধ হিসেবে ডেটা মুছে ফেলার অনুরোধ পাঠায়। ডেটা মুছে ফেলার অনুরোধের বডিতে একটি JSON ওয়েব টোকেন (JWT) থাকে, যা নিম্নলিখিত অংশগুলো নিয়ে গঠিত:
- একটি JOSE হেডার যা এনক্রিপশন অ্যালগরিদম বর্ণনা করে।
- একটি JWS পেলোড, যাতে মুছে ফেলার অনুরোধটি রয়েছে।
- অনুরোধটির সত্যতা যাচাই করার জন্য JWS-এর একটি স্বাক্ষর।
গুগল হেডার, পেলোড এবং সিগনেচারকে বেস৬৪-এ এনকোড করে এবং এই আইটেমগুলোকে নিম্নোক্তভাবে বিন্যস্ত করে:
WEB_SAFE_BASE64_ENCODED_HEADER.WEB_SAFE_BASE64_ENCODED_PAYLOAD.WEB_SAFE_BASE64_ENCODED_SIGNATURE
ডেটা ডিলিট করার কাঠামোতে ব্যবহৃত স্বতন্ত্র JWT-গুলো সম্পর্কে আরও জানতে, JSON Web Token (JWT) Implementation দেখুন। Google থেকে আপনি যে ডেটা ডিলিট করার অনুরোধটি পান, সেটি একটি Request JWT (rqJWT), যার মধ্যে Identity JWT (idJWT) অন্তর্ভুক্ত থাকে, যা প্রকাশক ডিলিট করার অনুরোধ করার সময় পাঠিয়েছিল।
হেডারে বৈধতার বিবরণ খুঁজুন
হেডারটি একটি JSON অবজেক্ট, যা সেই অ্যালগরিদমকে বর্ণনা করে যা আপনাকে অনুরোধটির একটি হ্যাশ তৈরি করতে ব্যবহার করতে হবে। এই হ্যাশটি অনুরোধটির সত্যতা যাচাই করার জন্য প্রয়োজনীয়। যদি ইস্যুকারীর কাছে স্বাক্ষর তৈরির জন্য একাধিক প্রাইভেট কী থাকে, তবে হেডারটি এও শনাক্ত করে যে স্বাক্ষরটি যাচাই করার জন্য আপনি ইস্যুকারীর কোন পাবলিক কী ব্যবহার করতে পারবেন।
নিম্নলিখিত উদাহরণটি একটি ডিকোড করা হেডার, যা দেখাচ্ছে যে আপনি কী আইডি abc123 সহ RSA256 অ্যালগরিদম ব্যবহার করে স্বাক্ষরটি যাচাই করতে পারেন:
{
"typ": "JWT",
"alg": "RS256",
"kid": "abc123"
}
অনুরোধটি যাচাই করুন
গুগল যে ডেটা মুছে ফেলার অনুরোধগুলো পাঠিয়েছে, তা আপনি গুগলের dsrdelete.json ফাইলটিতে থাকা পাবলিক কী ব্যবহার করে যাচাই করতে পারেন। গুগলের dsrdelete.json ফাইলটি https://static.doubleclick.net/dsrdelete.json ঠিকানায় হোস্ট করা আছে।
ডেটা মুছে ফেলার অনুরোধের সত্যতা যাচাই করতে, এই ধাপগুলো অনুসরণ করুন:
হেডারে উল্লেখিত অ্যালগরিদম ব্যবহার করে হেডার এবং পেলোডের হ্যাশ নির্ণয় করুন। আপনার হ্যাশিং ফাংশনে প্রেরিত ডেটার গঠন অবশ্যই নিম্নলিখিত রকম হতে হবে:
WEB_SAFE_BASE64_ENCODED_HEADER.WEB_SAFE_BASE64_ENCODED_PAYLOADডিকোড করা স্বাক্ষরটি ডিক্রিপ্ট করতে ইস্যুকারীর
dsrdelete.jsonফাইলে উল্লেখিত পাবলিক কী ব্যবহার করুন।প্রথম ধাপে আপনার তৈরি করা হ্যাশটির সাথে সিগনেচার থেকে ডিক্রিপ্ট করা মানটি তুলনা করুন। যদি এই দুটি অংশ মিলে যায়, তাহলে ডেটা মুছে ফেলার অনুরোধটি খাঁটি।
মুছে ফেলার অনুরোধের পেলোড পার্স করুন
ডেটা মুছে ফেলার অনুরোধের সত্যতা যাচাই করার পরে, কোন আইডেন্টিফায়ারটি মুছতে হবে তা যাচাই করার জন্য আপনাকে পেলোডটি পার্স করতে হবে। ডিকোড করা পেলোডটি একটি rqJWT টোকেন। বিস্তারিত জানতে, rqJWT: Requester “request” JWT দেখুন।
নিম্নলিখিত উদাহরণটি একটি rqJWT টোকেন হিসাবে ডিকোড করা পেলোড দেখায় এবং এতে ঐচ্ছিক প্যারামিটার অন্তর্ভুক্ত রয়েছে:
{
"optionalParameters": "{\"gamNetworkCode\":\"311057\"}",
"sub": "{\n \"identifierValue\": \"crvBtLjLqNUiafwXZiyukLD4Tf6mMUYhBdQaPZ0pjyd\",\n \"identifierType\": \"ppid\",\n \"identifierFormat\": \"plaintext\"\n }",
"iat": 1756257951,
"version": "1.0",
"iss": "test_publisher",
"idJWT": "eyJhbGciOiJFUzI1NiIsImtpZCI6IkVodWR1USIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ0ZXN0X3B1Ymxpc2hlciIsInN1YiI6IntcbiAgICBcImlkZW50aWZpZXJWYWx1ZVwiOiBcImNydkJ0TGpMcU5VaWFmd1haaXl1a0xENFRmNm1NVVloQmRRYVBaMHBqeWRcIixcbiAgICBcImlkZW50aWZpZXJUeXBlXCI6IFwicHBpZFwiLFxuICAgIFwiaWRlbnRpZmllckZvcm1hdFwiOiBcInBsYWludGV4dFwiXG4gIH0iLCJpYXQiOjE3NTYyNTc5NTEsInZlcnNpb24iOiIxLjAifQ.Dh17fv1sxKMnkOa7HOWfVdsIYo8BBy2p9SkDTSfZoW6ypMdl_5wDYtUIYEfuX3n6UbwMoH0WVgGQnFQraMH6XQ"
}
ডেটা মুছে ফেলার অনুরোধে একটি sub ফিল্ড অন্তর্ভুক্ত থাকে, যাতে একটি JSON স্ট্রিং থাকে যা নির্দেশ করে যে প্রকাশক crvBtLjLqNUiafwXZiyukLD4Tf6mMUYhBdQaPZ0pjyd মানের একটি PPID মুছে ফেলার অনুরোধ করছেন। rqJWT টোকেনটিতে এনকোডেড idJWT টোকেন অন্তর্ভুক্ত থাকে। বিস্তারিত জানতে, idJWT: Issuer “identifier” JWT দেখুন।
ডেটা মুছে ফেলার অনুরোধটি প্রচার করুন
আপনাকে অবশ্যই সেই সমস্ত ডেটা পার্টনারদের কাছে ডেটা মুছে ফেলার অনুরোধটি পাঠাতে হবে, যাদের সাথে আপনি নির্দিষ্ট আইডেন্টিফায়ারগুলো শেয়ার করেছেন। উদাহরণস্বরূপ, আপনি যদি ওপেন বিডিং-এর সাথে ইন্টিগ্রেটেড থাকেন, তবে আপনাকে আপনার এক্সচেঞ্জের সেইসব বিডারদের কাছে ডেটা মুছে ফেলার অনুরোধটি পাঠাতে হবে, যাদের সাথে ফার্স্ট-পার্টি আইডেন্টিফায়ারটি শেয়ার করা হয়েছে। এই প্রক্রিয়ার জন্য আপনাকে ডেটা পার্টনারদের একটি rqJWT টোকেন পাঠাতে হবে। rqJWT টোকেনটিতে অবশ্যই প্রাসঙ্গিক আইডেন্টিফায়ারগুলো থাকতে হবে, যা ডেটা পার্টনারের dsrdelete.json ফাইলের কনফিগারেশন অনুযায়ী ফরম্যাট করা থাকবে। এছাড়াও, rqJWT টোকেনটিতে আপনার প্রাইভেট কী দিয়ে তৈরি করা আপনার সিগনেচার অবশ্যই অন্তর্ভুক্ত থাকতে হবে।
ডেটা মুছে ফেলার অনুরোধটি স্বীকার করুন
আপনি যে ডেটা মুছে ফেলার অনুরোধটি পেয়েছেন এবং সে অনুযায়ী কাজ করেছেন, তা স্বীকার করতে, Google-এর dsrdelete.json ফাইলে নির্দিষ্ট করা এন্ডপয়েন্টে একটি Acknowledgement JWT পাঠান। বিস্তারিত জানতে, acJWT: Recipient “acknowledgement” JWT দেখুন।
আপনার প্রতিক্রিয়ার HTTP স্ট্যাটাস কোড নিম্নলিখিত ফলাফলের উপর নির্ভর করে:
- সফলতা : অনুরোধটি সফলভাবে গ্রহণ, বিশ্লেষণ এবং সে অনুযায়ী ব্যবস্থা গ্রহণ করা হলে
HTTP 202ফেরত দিন। - ব্যর্থতা : যদি অনুরোধটি সফলভাবে গ্রহণ, পার্স এবং সে অনুযায়ী ব্যবস্থা গ্রহণ করা না হয়, তাহলে
HTTP 400রিটার্ন করুন।
অনুরোধের বডিতে অবশ্যই একটি acJWT টোকেন অন্তর্ভুক্ত থাকতে হবে, যার পেলোড raResultCode ফিল্ডটিকে একটি পূর্ণসংখ্যা ফলাফল কোড দিয়ে পূরণ করে। আপনি ঐচ্ছিকভাবে raResultString ফিল্ডে ফলাফল সম্পর্কে বর্ণনামূলক টেক্সট প্রদান করতে পারেন। acJWT টোকেনটিতে অবশ্যই আপনার প্রাইভেট কী দিয়ে তৈরি করা আপনার স্বাক্ষর অন্তর্ভুক্ত থাকতে হবে।
ডেটা ডিলিশন রিকোয়েস্ট ফ্রেমওয়ার্কে সমর্থিত রেজাল্ট কোডগুলো সম্পর্কে আরও জানতে, রেজাল্ট কোডসমূহ দেখুন।
acJWT টোকেন হেডার তৈরি করুন
আপনার স্বাক্ষর যাচাই করার সময় প্রাপক যে হ্যাশ ফাংশন এবং পাবলিক কী ব্যবহার করবে বলে আপনি চান, তার উপর ভিত্তি করে হেডারটি পূরণ করুন। নিম্নলিখিত উদাহরণে এনকোডবিহীন হেডারটি নির্দেশ করে যে, আপনি চান প্রাপক হ্যাশ তৈরি করার জন্য ES256 অ্যালগরিদম ব্যবহার করুক, এবং আপনার স্বাক্ষর ডিক্রিপ্ট করার সময় প্রাপককে অবশ্যই আপনার dsrdelete.json ফাইল থেকে EhuduQ কী আইডি-সহ পাবলিক কী ব্যবহার করতে হবে।
{
"alg": "ES256",
"typ": "JWT",
"kid": "EhuduQ"
}
acJWT টোকেন পেলোড তৈরি করুন
ডিলিট করার অনুরোধের ফলাফলের উপর ভিত্তি করে পেলোডটি পূরণ করুন, এবং আপনি যে rqJWT টোকেনটি স্বীকার করছেন তার এনকোডেড রূপ দিয়ে rqJWT ফিল্ডটি পূরণ করুন। নিম্নলিখিত উদাহরণটিতে, অপারেশনটি সফল হয়েছে তা বোঝাতে raResultCode ফিল্ডের মান 0 নির্দিষ্ট করা হয়েছে:
{
"version": "1.0",
"jti": "965492b2-74e5-409a-90f4-f041902db05f",
"raResultString": "",
"iat": 1756408212,
"iss": "doubleclick.net",
"raResultCode": 0,
"rqJWT": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkVodWR1USJ9.eyJvcHRpb25hbFBhcmFtZXRlcnMiOiJ7XCJnYW1OZXR3b3JrQ29kZVwiOlwiMzExMDU3XCJ9Iiwic3ViIjoie1xuICAgIFwiaWRlbnRpZmllclZhbHVlXCI6IFwiY3J2QnRMakxxTlVpYWZ3WFppeXVrTEQ0VGY2bU1VWWhCZFFhUFowcGp5ZFwiLFxuICAgIFwiaWRlbnRpZmllclR5cGVcIjogXCJwcGlkXCIsXG4gICAgXCJpZGVudGlmaWVyRm9ybWF0XCI6IFwicGxhaW50ZXh0XCJcbiAgfSIsImlhdCI6MTc1NjI1Nzk1MSwidmVyc2lvbiI6IjEuMCIsImlzcyI6InRlc3RfcHVibGlzaGVyIiwiaWRKV1QiOiJleUpoYkdjaU9pSkZVekkxTmlJc0ltdHBaQ0k2SWtWb2RXUjFVU0lzSW5SNWNDSTZJa3BYVkNKOS5leUpwYzNNaU9pSjBaWE4wWDNCMVlteHBjMmhsY2lJc0luTjFZaUk2SW50Y2JpQWdJQ0JjSW1sa1pXNTBhV1pwWlhKV1lXeDFaVndpT2lCY0ltTnlka0owVEdwTWNVNVZhV0ZtZDFoYWFYbDFhMHhFTkZSbU5tMU5WVmxvUW1SUllWQmFNSEJxZVdSY0lpeGNiaUFnSUNCY0ltbGtaVzUwYVdacFpYSlVlWEJsWENJNklGd2ljSEJwWkZ3aUxGeHVJQ0FnSUZ3aWFXUmxiblJwWm1sbGNrWnZjbTFoZEZ3aU9pQmNJbkJzWVdsdWRHVjRkRndpWEc0Z0lIMGlMQ0pwWVhRaU9qRTNOVFl5TlRjNU5URXNJblpsY25OcGIyNGlPaUl4TGpBaWZRLkRoMTdmdjFzeEtNbmtPYTdIT1dmVmRzSVlvOEJCeTJwOVNrRFRTZlpvVzZ5cE1kbF81d0RZdFVJWUVmdVgzbjZVYndNb0gwV1ZnR1FuRlFyYU1INlhRIn0.zZnuUsUDzkARg31RzkhLOJCSXD5jPca8qff5IqyYrrRITgRgm29T__6gC3oOOK5RAcd_AFFYWzE8onx6Kj1w8A"
}