AdMob Mediation হল এমন একটি বৈশিষ্ট্য যা আপনাকে একাধিক উৎস থেকে আপনার অ্যাপে বিজ্ঞাপন পরিবেশন করতে দেয়, যার মধ্যে রয়েছে AdMob নেটওয়ার্ক এবং তৃতীয় পক্ষের বিজ্ঞাপন উৎস, একই জায়গায়। AdMob Mediation আপনার ভরাট হার সর্বাধিক করতে এবং বিজ্ঞাপন পরিবেশনের জন্য সেরা উপলব্ধ নেটওয়ার্ক খুঁজে পেয়েছেন কিনা তা যাচাই করার জন্য একাধিক নেটওয়ার্কে বিজ্ঞাপনের অনুরোধ পাঠিয়ে আপনার নগদীকরণ বৃদ্ধি করতে সাহায্য করে। কেস স্টাডি ।
পূর্বশর্ত
কোনও বিজ্ঞাপন ফর্ম্যাটের জন্য মধ্যস্থতা সংহত করার আগে, আপনাকে সেই বিজ্ঞাপন ফর্ম্যাটটি আপনার অ্যাপে সংহত করতে হবে:
- ব্যানার বিজ্ঞাপন
- ইন্টারস্টিশিয়াল বিজ্ঞাপন
- নেটিভ বিজ্ঞাপন
- পুরস্কৃত বিজ্ঞাপন
- পুরস্কৃত ইন্টারস্টিশিয়াল বিজ্ঞাপন
মধ্যস্থতায় নতুন? AdMob মধ্যস্থতার সারসংক্ষেপ পড়ুন।
GMA নেক্সট জেনারেশন 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 নেক্সট জেন SDK-এর উপর নির্ভরশীল। তবে, GMA নেক্সট জেন SDK-তে মেডিয়েশন অ্যাডাপ্টারের জন্য প্রয়োজনীয় সকল ক্লাস অন্তর্ভুক্ত থাকে। ডুপ্লিকেট প্রতীক সম্পর্কিত কম্পাইল ত্রুটি এড়াতে, আপনাকে মেডিয়েশন অ্যাডাপ্টার দ্বারা নির্ভরতা হিসেবে বর্তমান GMA নেক্সট জেন SDK-কে বাদ দিতে হবে।
আপনার অ্যাপ-লেভেল build.gradle ফাইলে, সমস্ত নির্ভরতা থেকে বিশ্বব্যাপী play-services-ads এবং play-services-ads-lite মডিউল উভয়কেই বাদ দিন।
configurations {
all {
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());
}
}
);
AdMob মধ্যস্থতার মাধ্যমে ব্যানার বিজ্ঞাপন ব্যবহার করুন
AdMob Mediation-এ ব্যবহৃত ব্যানার বিজ্ঞাপন ইউনিটের জন্য সমস্ত থার্ড-পার্টি বিজ্ঞাপন সোর্স UI-তে রিফ্রেশ বন্ধ করতে ভুলবেন না। এটি দ্বিগুণ রিফ্রেশ প্রতিরোধ করে কারণ AdMob আপনার ব্যানার বিজ্ঞাপন ইউনিটের রিফ্রেশ রেটের উপর ভিত্তি করে রিফ্রেশ ট্রিগার করে।
মার্কিন যুক্তরাষ্ট্রের গোপনীয়তা আইন এবং জিডিপিআর
যদি আপনার মার্কিন যুক্তরাষ্ট্রের গোপনীয়তা আইন বা জেনারেল ডেটা প্রোটেকশন রেগুলেশন (GDPR) মেনে চলতে হয়, তাহলে AdMob Privacy & messaging-এর মার্কিন যুক্তরাষ্ট্রের রাজ্য বা GDPR বিজ্ঞাপন অংশীদারদের তালিকায় আপনার মধ্যস্থতা অংশীদারদের যোগ করতে মার্কিন যুক্তরাষ্ট্রের রাজ্য নিয়ন্ত্রণ সেটিংস বা GDPR সেটিংসের ধাপগুলি অনুসরণ করুন। এটি না করলে অংশীদাররা আপনার অ্যাপে বিজ্ঞাপন পরিবেশন করতে ব্যর্থ হতে পারে।
Google ব্যবহারকারী বার্তা প্ল্যাটফর্ম (UMP) SDK এর মাধ্যমে সীমাবদ্ধ ডেটা প্রক্রিয়াকরণ (RDP) সক্ষম করা এবং GDPR সম্মতি নেওয়া সম্পর্কে আরও জানুন।