এই নির্দেশিকাটি আপনাকে দেখাবে কীভাবে আপনার অ্যান্ড্রয়েড অ্যাপের সাথে একটি মিডিয়েশন অ্যাডাপ্টার সংযুক্ত করতে হয়।
পূর্বশর্ত
কোনো বিজ্ঞাপন ফরম্যাটের জন্য মিডিয়েশন ইন্টিগ্রেট করার আগে, আপনাকে সেই বিজ্ঞাপন ফরম্যাটটি আপনার অ্যাপে ইন্টিগ্রেট করতে হবে:
- ব্যানার বিজ্ঞাপন
- ইন্টারস্টিশিয়াল বিজ্ঞাপন
- স্থানীয় বিজ্ঞাপন
- পুরস্কৃত বিজ্ঞাপন
- পুরস্কারপ্রাপ্ত ইন্টারস্টিশিয়াল বিজ্ঞাপন
মধ্যস্থতায় নতুন? মধ্যস্থতার পরিচিতি পড়ুন।
GMA Next-Gen SDK শুরু করুন
কুইক স্টার্ট গাইড আপনাকে দেখায় কিভাবে GMA Next-Gen SDK ইনিশিয়ালাইজ করতে হয়। সেই ইনিশিয়ালাইজেশন কলের সময়, মিডিয়েশন অ্যাডাপ্টারগুলোও ইনিশিয়ালাইজ হয়ে যায়। প্রথম অ্যাড রিকোয়েস্টে প্রতিটি অ্যাড নেটওয়ার্কের সম্পূর্ণ অংশগ্রহণ যাচাই করার জন্য, অ্যাড লোড করার আগে ইনিশিয়ালাইজেশন সম্পূর্ণ হওয়া পর্যন্ত অপেক্ষা করা জরুরি।
নিম্নলিখিত নমুনা কোডটি দেখায় যে, একটি অ্যাড রিকোয়েস্ট করার আগে আপনি কীভাবে প্রতিটি অ্যাডাপ্টারের ইনিশিয়ালাইজেশন স্ট্যাটাস চেক করতে পারেন।
কোটলিন
import com.google.android.libraries.ads.mobile.sdk.MobileAds
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val backgroundScope = CoroutineScope(Dispatchers.IO)
backgroundScope.launch {
// Initialize GMA Next-Gen SDK on a background thread.
MobileAds.initialize(this@MainActivity, InitializationConfig.Builder("SAMPLE_APP_ID").build()) {
initializationStatus ->
for ((adapterName, adapterStatus) in initializationStatus.adapterStatusMap) {
Log.d(
"MyApp",
String.format(
"Adapter name: %s, Status code: %s, Status string: %s, Latency: %d",
adapterName,
adapterStatus.initializationState,
adapterStatus.description,
adapterStatus.latency,
),
)
}
// Adapter initialization is complete.
}
// Other methods on MobileAds can now be called.
}
}
}
জাভা
import com.google.android.libraries.ads.mobile.sdk.MobileAds;
import com.google.android.libraries.ads.mobile.sdk.initialization.AdapterStatus;
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig;
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(
() -> {
// Initialize GMA Next-Gen SDK on a background thread.
MobileAds.initialize(
this,
new InitializationConfig.Builder("SAMPLE_APP_ID")
.build(),
initializationStatus -> {
Map<String, AdapterStatus> adapterStatusMap =
initializationStatus.getAdapterStatusMap();
for (String adapterClass : adapterStatusMap.keySet()) {
AdapterStatus adapterStatus = adapterStatusMap.get(adapterClass);
Log.d(
"MyApp",
String.format(
"Adapter name: %s, Status code: %s, Status description: %s,"
+ " Latency: %d",
adapterClass,
adapterStatus.getInitializationState(),
adapterStatus.getDescription(),
adapterStatus.getLatency()));
}
// Adapter initialization is complete.
});
// Other methods on MobileAds can now be called.
})
.start();
}
}
মিডিয়েশন ইন্টিগ্রেশনে com.google.android.gms মডিউলগুলো বাদ দিন
মিডিয়েশন অ্যাডাপ্টারগুলো বর্তমান GMA Next-Gen SDK উপর নির্ভরশীল। তবে, GMA Next-Gen SDK মিডিয়েশন অ্যাডাপ্টারগুলোর জন্য প্রয়োজনীয় সমস্ত ক্লাস অন্তর্ভুক্ত রয়েছে। ডুপ্লিকেট সিম্বল সম্পর্কিত কম্পাইল ত্রুটি এড়াতে, আপনাকে মিডিয়েশন অ্যাডাপ্টারগুলোর ডিপেন্ডেন্সি হিসেবে বর্তমান GMA Next-Gen SDK অন্তর্ভুক্ত করা থেকে বাদ দিতে হবে।
আপনার অ্যাপ-স্তরের build.gradle ফাইলে, play-services-ads এবং play-services-ads-lite উভয় মডিউলকে বিশ্বব্যাপী সমস্ত নির্ভরতা থেকে বাদ দিন:
কোটলিন
configurations.configureEach { exclude(group = "com.google.android.gms", module = "play-services-ads") exclude(group = "com.google.android.gms", module = "play-services-ads-lite") }
গ্রুভি
configurations.configureEach { exclude group: "com.google.android.gms", module: "play-services-ads" exclude group: "com.google.android.gms", module: "play-services-ads-lite" }
কোন বিজ্ঞাপন নেটওয়ার্ক অ্যাডাপ্টার ক্লাস বিজ্ঞাপনটি লোড করেছে তা পরীক্ষা করুন
এখানে একটি নমুনা কোড দেওয়া হলো যা একটি ব্যানার বিজ্ঞাপনের জন্য বিজ্ঞাপন নেটওয়ার্ক ক্লাসের নাম লগ করে:
কোটলিন
BannerAd.load(
BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
object : AdLoadCallback<BannerAd> {
override fun onAdLoaded(ad: BannerAd) {
Log.d(
"MyApp", "Adapter class name: " +
ad.getResponseInfo().mediationAdapterClassName
)
}
}
)
জাভা
BannerAd.load(
new BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
new AdLoadCallback<BannerAd>() {
@Override
public void onAdLoaded(@NonNull BannerAd ad) {
Log.d("MyApp",
"Adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
}
}
);
মিডিয়েশনের সাথে ব্যানার বিজ্ঞাপন ব্যবহার করুন
মিডিয়েশনে ব্যবহৃত ব্যানার অ্যাড ইউনিটগুলির জন্য সমস্ত থার্ড-পার্টি অ্যাড সোর্স UI-তে রিফ্রেশ নিষ্ক্রিয় করা নিশ্চিত করুন। এটি ডাবল রিফ্রেশ প্রতিরোধ করে, কারণ অ্যাড ম্যানেজারও আপনার ব্যানার অ্যাড ইউনিটের রিফ্রেশ রেটের উপর ভিত্তি করে একটি রিফ্রেশ ট্রিগার করে।
মার্কিন যুক্তরাষ্ট্রের রাজ্যগুলির গোপনীয়তা আইন এবং GDPR
যদি আপনাকে মার্কিন যুক্তরাষ্ট্রের অঙ্গরাজ্যগুলির গোপনীয়তা আইন বা জেনারেল ডেটা প্রোটেকশন রেগুলেশন (জিডিপিআর) মেনে চলতে হয়, তাহলে অ্যাড ম্যানেজার প্রাইভেসি অ্যান্ড মেসেজিং-এর মার্কিন অঙ্গরাজ্য বা জিডিপিআর বিজ্ঞাপন অংশীদারদের তালিকায় আপনার মিডিয়েশন পার্টনারদের যুক্ত করতে ইউএস স্টেট রেগুলেশন সেটিংস বা জিডিপিআর সেটিংস- এর ধাপগুলি অনুসরণ করুন। এটি করতে ব্যর্থ হলে পার্টনাররা আপনার অ্যাপে বিজ্ঞাপন পরিবেশন করতে ব্যর্থ হতে পারে।
Google User Messaging Platform (UMP) SDK ব্যবহার করে সীমাবদ্ধ ডেটা প্রক্রিয়াকরণ (RDP) সক্রিয় করা এবং GDPR সম্মতি প্রাপ্তি সম্পর্কে আরও জানুন।