ডিক্রিপ্ট বিজ্ঞাপন আইডি

অনুমোদিত ক্রেতারা এখন মোবাইল অ্যাপ্লিকেশন ইনভেন্টরি বিড অনুরোধে Android বিজ্ঞাপন আইডি পাস করা সমর্থন করে।

বিজ্ঞাপন আইডি সম্পর্কে

Google Play পরিষেবা v4.0 এর সাথে, অ্যান্ড্রয়েড বিজ্ঞাপনের জন্য একটি নতুন ব্যবহারকারী-পুনরায় সেটযোগ্য শনাক্তকারী চালু করেছে যাকে বিজ্ঞাপন আইডি বলা হয়।

বিজ্ঞাপন আইডিটি বিজ্ঞাপনদাতারা পুনরায় বিপণন প্রচারাভিযান চালাতে এবং "রূপান্তর" (ক্রয় বা ডাউনলোড) রেকর্ড করতে ব্যবহার করতে পারে। বিজ্ঞাপন আইডির দুটি মূল বৈশিষ্ট্য রয়েছে:

  • ব্যবহারকারীরা যেকোনো সময় বিজ্ঞাপন আইডি রিসেট করতে পারেন।
  • ব্যবহারকারীরা সরাসরি Google সেটিংস অ্যাপ থেকে যে কোনো সময় আগ্রহ-ভিত্তিক বিজ্ঞাপনগুলি অপ্ট আউট করতে পারেন৷ এই সেটিং বিজ্ঞাপন আইডি ব্যবহার করে এমন সমস্ত বিজ্ঞাপন কোম্পানি জুড়ে প্রযোজ্য।

প্রযুক্তিগত সংজ্ঞা

রিয়েল-টাইম বিডিং প্রোটোতে BidRequest.Mobile.encrypted_advertising_id এর মাধ্যমে বিজ্ঞাপন আইডি পাস করা হয়:

optional bytes encrypted_advertising_id = 20;

ক্ষেত্রটি 36 বাইট এবং এতে 3টি বিভাগ রয়েছে:

  • initialization_vector : 16 বাইট।
  • ciphertext : 16 বাইট, বিজ্ঞাপন আইডির এনক্রিপ্ট করা 16-বাইট UUID
  • integrity_signature : 4 বাইট।
{initialization_vector (16 bytes)}{ciphertext (16 bytes)}{integrity_signature (4 bytes)}

সংজ্ঞা

পরিবর্তনশীল বিস্তারিত
initialization_vector 16 বাইট - ছাপ অনন্য।
ciphertext 16 বাইট - এইভাবে তৈরি করা হয়েছে: <advertising_id <xor> hmac(encryption_key, initialization_vector)>
integrity_signature 4 বাইট - প্রথম 4 বাইট হিসাবে তৈরি করা হয়েছে: hmac(integrity_key, advertising_id || initialization_vector)
encryption_key 32 বাইট - অ্যাকাউন্ট সেটআপে সরবরাহ করা হয়েছে।
integrity_key 32 বাইট - অ্যাকাউন্ট সেটআপে সরবরাহ করা হয়েছে।
advertising_id 16 বাইট - আসল, এনক্রিপ্ট করা বিজ্ঞাপন আইডি, যা একটি UUID
final_message 36 বাইট - encrypted_advertising_id ক্ষেত্রের মাধ্যমে পাঠানো বাইট অ্যারে।
অপারেটর বিস্তারিত
hmac(key, data) SHA-1 HMAC, data এনক্রিপ্ট করতে key ব্যবহার করে।
a || b স্ট্রিং a স্ট্রিং b এর সাথে সংযুক্ত।

এনক্রিপশন স্কিম

বিজ্ঞাপন আইডির জন্য এনক্রিপশন স্কিম মূল্য নিশ্চিতকরণ ডিক্রিপ্ট করার জন্য ব্যবহৃত একই স্কিমের উপর ভিত্তি করে।

  1. বিজ্ঞাপন আইডি একটি বাইট অ্যারেতে সংরক্ষিত হয়, যা একটি কাস্টম এনক্রিপশন স্কিম ব্যবহার করে এনক্রিপ্ট করা হয় যা পর্যাপ্ত নিরাপত্তা নিশ্চিত করার সময় ওভারহেডের আকার ছোট করার জন্য ডিজাইন করা হয়েছে।
  2. এনক্রিপশন স্কিমটি initialization_vector উপর ভিত্তি করে একটি গোপন প্যাড তৈরি করতে একটি কীড HMAC অ্যালগরিদম ব্যবহার করে, যা ইমপ্রেশন ইভেন্টের জন্য অনন্য।

এনক্রিপশন সিউডোকোড

advertising_id = advertising ID from mobile device
pad = hmac(encryption_key, initialization_vector) // first 16 bytes
ciphertext = pad <xor> advertising_id
integrity_signature = hmac(integrity_key, advertising_id || initialization_vector)  // first 4 bytes
final_message = initialization_vector || ciphertext || integrity_signature

ডিক্রিপশন স্কিম

আপনার ডিক্রিপশন কোডটি 1) এনক্রিপশন কী ব্যবহার করে encrypted_advertising_id ক্ষেত্রটি ডিক্রিপ্ট করা উচিত এবং ঐচ্ছিকভাবে 2) অখণ্ডতা কী দিয়ে অখণ্ডতা বিটগুলি যাচাই করা উচিত। অ্যাকাউন্ট সেটআপের সময় কীগুলি আপনাকে সরবরাহ করা হবে। আপনি কীভাবে আপনার বাস্তবায়নকে গঠন করেন তার উপর কোন সীমাবদ্ধতা নেই।

  1. আপনার প্যাড তৈরি করুন : hmac(encryption_key, initialization_vector)
  2. XOR : এই ফলাফলটি নিন এবং এনক্রিপশনটি বিপরীত করতে সাইফারটেক্সট সহ <xor>
  3. যাচাই করুন : অখণ্ডতা স্বাক্ষরটি HMAC(integrity_key, advertising_id || initialization_vector) এর 4 বাইট পাস করে

ডিক্রিপশন সিউডোকোড

(initialization_vector, ciphertext, integrity_signature) = final_message // split up according to length
pad = hmac(encryption_key, initialization_vector) // first 16 bytes
advertising_id = ciphertext <xor> pad
confirmation_signature = hmac(integrity_key, advertising_id || initialization_vector) // first 4 bytes
success = (confirmation_signature == integrity_signature)

জাভা লাইব্রেরি

বিজ্ঞাপন আইডি এনকোড এবং ডিকোড করার জন্য ক্রিপ্টো অ্যালগরিদম প্রয়োগ করার পরিবর্তে, আপনি DoubleClickCrypto.java ব্যবহার করতে পারেন। আরও তথ্যের জন্য, ক্রিপ্টোগ্রাফি দেখুন।