ব্যবহারকারী-রিসেটযোগ্য একটি বিজ্ঞাপনী আইডি পান । এটি অ্যান্ড্রয়েড জেটপ্যাকের একটি অংশ।
ব্যবহারকারীর গোপনীয়তা রক্ষা করার জন্য, সমস্ত অ্যান্ড্রয়েড অ্যাপের ব্যবহারকারী-রিসেটযোগ্য আইডেন্টিফায়ার ব্যবহার করা একটি উত্তম অভ্যাস। এরকম একটি আইডেন্টিফায়ার হলো অ্যাডভার্টাইজিং আইডি , যা বিজ্ঞাপন ব্যবহারের ক্ষেত্রে, যেমন বিজ্ঞাপনের ব্যক্তিগতকরণের জন্য, কোনো নির্দিষ্ট ব্যবহারকারীকে অনন্যভাবে শনাক্ত করে।
আপনার অ্যাপ চালিত ডিভাইসগুলোতে একটি প্রমিত বিজ্ঞাপন-ট্র্যাকিং সমাধান সমর্থন করার জন্য, আপনি অ্যাডভার্টাইজিং আইডি লাইব্রেরি ব্যবহার করতে পারেন। এই লাইব্রেরিটি, যা অ্যান্ড্রয়েড ৪.০ (এপিআই লেভেল ১৪) এবং তার উচ্চতর সংস্করণে চালিত ডিভাইসগুলোতে উপলব্ধ, সিস্টেম-স্তরের বিজ্ঞাপন সরবরাহকারীদের সাথে যোগাযোগের জন্য একটি ইন্টারফেস নির্ধারণ করে। এই ইন্টারফেসটি আপনার অ্যাপকে সামঞ্জস্যপূর্ণ অ্যাডভার্টাইজিং আইডি মান গ্রহণ করতে দেয়।
অ্যাডভার্টাইজিং আইডি লাইব্রেরির সাথে অন্তর্ভুক্ত বিজ্ঞাপন প্রদানকারীটি একটি সেটিংস স্ক্রিন খোলার জন্য একটি স্ট্যান্ডার্ড ইন্টেন্টও সংজ্ঞায়িত করে, যা বিজ্ঞাপন প্রদানকারীটিই বাস্তবায়ন করে। এই সেটিংস স্ক্রিনটি ব্যবহারকারীকে তার বিজ্ঞাপন আইডি রিসেট করতে এবং বিজ্ঞাপনের ব্যক্তিগতকরণ থেকে বেরিয়ে আসতে (অপট আউট) সুযোগ দেয়।
এই নির্দেশিকাটি ব্যাখ্যা করে যে কীভাবে অ্যাডভারটাইজিং আইডি লাইব্রেরির ক্লায়েন্ট মডিউল ব্যবহার করে প্রতিটি ডিভাইস ব্যবহারকারীর জন্য একটি সামঞ্জস্যপূর্ণ অ্যাডভারটাইজিং আইডি পাওয়া যায়। এরপর এই নির্দেশিকাটি লাইব্রেরিটির স্থাপত্যের একটি সংক্ষিপ্ত বিবরণ উপস্থাপন করে।
আপনার ক্লায়েন্ট অ্যাপ কনফিগার করুন
অ্যাডভার্টাইজিং আইডি লাইব্রেরির ক্লায়েন্ট মডিউলের সাথে ইন্টারঅ্যাক্ট করার মাধ্যমে, আপনার অ্যাপ একটি সামঞ্জস্যপূর্ণ অ্যাডভার্টাইজিং আইডি পুনরুদ্ধার করতে পারে, যা অ্যাপটির সাথে ইন্টারঅ্যাক্টকারী ব্যবহারকারীকে প্রতিনিধিত্ব করে।
বিজ্ঞাপন আইডিটি সার্বজনীনভাবে অনন্য শনাক্তকারী (UUID) ফরম্যাটের সংস্করণ ৩ অথবা একটি সমতুল্য ১২৮-বিট ফরম্যাট ব্যবহার করে উপস্থাপন করা হয়:
38400000-8cf0-11bd-b23e-10b96e40000d
অ্যাডভারটাইজিং আইডি লাইব্রেরি এই ফরম্যাট ব্যবহার করে আইডি প্রদানের জন্য প্রয়োজন অনুযায়ী রিটার্ন ভ্যালুকে স্বাভাবিক করে।
আপনার অ্যাপের ব্যবহারকারী-রিসেটযোগ্য বিজ্ঞাপন আইডি পুনরুদ্ধার করতে, নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:
AdvertisingIdClient.isAdvertisingIdProviderAvailable()কল করে কোনো বিজ্ঞাপন প্রদানকারী উপলব্ধ আছে কিনা তা পরীক্ষা করুন। যদি এই পদ্ধতিটিfalseরিটার্ন করে, তাহলে আপনার অ্যাপকে প্রয়োজনীয় বিজ্ঞাপন-ট্র্যাকিং ব্যবহারের জন্য অন্য কোনো উপায় অবলম্বন করতে হবে।AdvertisingIdClient.getAdvertisingIdInfo()কল করে বিজ্ঞাপন আইডি সহ বিজ্ঞাপন শনাক্তকারীর বিবরণ পান। Advertising ID লাইব্রেরি এই পদ্ধতিটি একটি ওয়ার্কার থ্রেডে সম্পাদন করে এবং ১০-সেকেন্ডের সংযোগ টাইমআউট ব্যবহার করে।
নিম্নলিখিত কোড স্নিপেটটি দেখায় কিভাবে বিজ্ঞাপন প্রদানকারীর কাছ থেকে অন্যান্য তথ্যের সাথে বিজ্ঞাপন আইডি পুনরুদ্ধার করতে হয়:
অ্যাপ/বিল্ড.গ্রেডল
গ্রুভি
dependencies { implementation 'androidx.ads:ads-identifier:1.0.0-alpha01' // Used for the calls to addCallback() in the snippets on this page. implementation 'com.google.guava:guava:28.0-android' }
কোটলিন
dependencies { implementation("androidx.ads:ads-identifier:1.0.0-alpha01") // Used for the calls to addCallback() in the snippets on this page. implementation("com.google.guava:guava:28.0-android") }
MyAdIdClient
কোটলিন
// Used for the call to addCallback() within this snippet.
import com.google.common.util.concurrent.Futures.addCallback
private fun determineAdvertisingInfo() {
if (AdvertisingIdClient.isAdvertisingIdProviderAvailable()) {
val advertisingIdInfoListenableFuture =
AdvertisingIdClient.getAdvertisingIdInfo(applicationContext)
addCallback(advertisingIdInfoListenableFuture,
object : FutureCallback<AdvertisingIdInfo> {
override fun onSuccess(adInfo: AdvertisingIdInfo?) {
val id: String = adInfo?.id
val providerPackageName: String = adInfo?.providerPackageName
val isLimitTrackingEnabled: Boolean =
adInfo?.isLimitTrackingEnabled
}
// Any exceptions thrown by getAdvertisingIdInfo()
// cause this method to be called.
override fun onFailure(t: Throwable) {
Log.e("MY_APP_TAG",
"Failed to connect to Advertising ID provider.")
// Try to connect to the Advertising ID provider again or fall
// back to an ad solution that doesn't require using the
// Advertising ID library.
}
}, Executors.newSingleThreadExecutor())
} else {
// The Advertising ID client library is unavailable. Use a different
// library to perform any required ad use cases.
}
}
জাভা
// Used for the call to addCallback() within this snippet.
import com.google.common.util.concurrent.Futures;
private void determineAdvertisingInfo() {
if (AdvertisingIdClient.isAdvertisingIdProviderAvailable()) {
ListenableFuture<AdvertisingIdInfo> advertisingIdInfoListenableFuture =
AdvertisingIdClient.getAdvertisingIdInfo(getApplicationContext());
Futures.addCallback(advertisingIdInfoListenableFuture,
new FutureCallback<AdvertisingIdInfo>() {
@Override
public void onSuccess(AdvertisingIdInfo adInfo) {
String id = adInfo.getId();
String providerPackageName =
adInfo.getProviderPackageName();
boolean isLimitTrackingEnabled =
adInfo.isLimitTrackingEnabled();
// Any exceptions thrown by getAdvertisingIdInfo()
// cause this method to be called.
@Override
public void onFailure(Throwable throwable) {
Log.e("MY_APP_TAG",
"Failed to connect to Advertising ID provider.");
// Try to connect to the Advertising ID provider again
// or fall back to an ad solution that doesn't require
// using the Advertising ID library.
}
});
} else {
// The Advertising ID client library is unavailable. Use a different
// library to perform any required ad use cases.
}
}
বিজ্ঞাপন আইডি লাইব্রেরি স্থাপত্য
চিত্র ১-এ অ্যাডভার্টাইজিং আইডি লাইব্রেরির কাঠামো দেখানো হয়েছে। লাইব্রেরিটি নিম্নলিখিত মডিউলগুলো নিয়ে গঠিত:
- ক্লায়েন্ট মডিউল হলো অ্যাপে অন্তর্ভুক্ত একটি পাতলা স্তর।
- একটি প্রোভাইডার মডিউল , যা ডিভাইস প্রস্তুতকারক সরবরাহ করে থাকে। এই মডিউলের বাস্তবায়নে অবশ্যই একটি সেটিংস UI সংজ্ঞায়িত করতে হবে, যাতে ব্যবহারকারীরা তাদের বিজ্ঞাপনী আইডি রিসেট করতে এবং বিজ্ঞাপন ট্র্যাকিংয়ের পছন্দগুলো পরিবর্তন করতে পারেন।
ক্লায়েন্ট মডিউলটি বিজ্ঞাপন আইডি এবং বিজ্ঞাপন ট্র্যাকিং সংক্রান্ত ব্যবহারকারীর পছন্দসমূহ সংগ্রহ করার জন্য প্রোভাইডার মডিউলের সাথে যোগাযোগ করে।
লাইব্রেরিটি কীভাবে একাধিক প্রোভাইডার পরিচালনা করে
একটি ডিভাইসের পক্ষে একই সময়ে একাধিক সিস্টেম-লেভেল বিজ্ঞাপন প্রদানকারীকে সমর্থন করা সম্ভব। যদি অ্যাডভার্টাইজিং আইডি লাইব্রেরি এই পরিস্থিতি শনাক্ত করে, তবে এটি যাচাই করে যে আপনার অ্যাপ সর্বদা একই প্রদানকারীর কাছ থেকে তথ্য সংগ্রহ করছে, এই শর্তে যে প্রদানকারীটি উপলব্ধ থাকবে। এই প্রক্রিয়াটি অ্যাডভার্টাইজিং আইডি-কে সামঞ্জস্যপূর্ণ রাখে।
সময়ের সাথে সাথে যদি উপলব্ধ বিজ্ঞাপন প্রদানকারীদের তালিকা পরিবর্তিত হয় এবং আপনার অ্যাপ একটি ভিন্ন বিজ্ঞাপন শনাক্তকারী প্রদানকারীর সাথে সংযোগ স্থাপন করে, তাহলে অন্য সব ক্লায়েন্ট অ্যাপও সেই নতুন প্রদানকারীকে ব্যবহার করা শুরু করে। ব্যবহারকারী যদি তার বিজ্ঞাপন আইডি রিসেট করার অনুরোধ করতেন, তাহলে যে আচরণটি ঘটত, আপনার অ্যাপে ঠিক সেই একই আচরণ দেখা যায়।
অ্যাডভার্টাইজিং আইডি প্রোভাইডার লাইব্রেরি প্রোভাইডারদের র্যাঙ্ক করার জন্য নিম্নলিখিত সুনির্দিষ্ট ক্রম ব্যবহার করে:
- যেসব প্রোভাইডার
androidx.ads.identifier.provider.HIGH_PRIORITYপারমিশনের জন্য অনুরোধ করেছে। - যেসব প্রোভাইডার ডিভাইসে সবচেয়ে দীর্ঘ সময় ধরে ইনস্টল করা আছে।
- বর্ণানুক্রমিকভাবে প্রথমে থাকা পরিষেবা প্রদানকারীগণ।