এই নির্দেশিকাটি আপনাকে দেখাবে কিভাবে আপনার অ্যান্ড্রয়েড অ্যাপের সাথে একটি মেডিয়েশন অ্যাডাপ্টার ইন্টিগ্রেট করবেন।
পূর্বশর্ত
কোনও বিজ্ঞাপন ফর্ম্যাটের জন্য মধ্যস্থতা সংহত করার আগে, আপনাকে সেই বিজ্ঞাপন ফর্ম্যাটটি আপনার অ্যাপে সংহত করতে হবে:
- ব্যানার বিজ্ঞাপন
- ইন্টারস্টিশিয়াল বিজ্ঞাপন
- নেটিভ বিজ্ঞাপন
- পুরস্কৃত বিজ্ঞাপন
- পুরস্কৃত ইন্টারস্টিশিয়াল বিজ্ঞাপন
মধ্যস্থতায় নতুন? মধ্যস্থতার ভূমিকা পড়ুন।
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());
}
}
);
মধ্যস্থতার সাথে ব্যানার বিজ্ঞাপন ব্যবহার করুন
মধ্যস্থতায় ব্যবহৃত ব্যানার বিজ্ঞাপন ইউনিটের জন্য সমস্ত তৃতীয় পক্ষের বিজ্ঞাপন উৎস UI-তে রিফ্রেশ বন্ধ করতে ভুলবেন না। এটি দ্বিগুণ রিফ্রেশ প্রতিরোধ করে কারণ বিজ্ঞাপন পরিচালক আপনার ব্যানার বিজ্ঞাপন ইউনিটের রিফ্রেশ রেটের উপর ভিত্তি করে একটি রিফ্রেশ ট্রিগার করে।
মার্কিন যুক্তরাষ্ট্রের গোপনীয়তা আইন এবং জিডিপিআর
যদি আপনার মার্কিন যুক্তরাষ্ট্রের গোপনীয়তা আইন বা জেনারেল ডেটা প্রোটেকশন রেগুলেশন (GDPR) মেনে চলতে হয়, তাহলে মার্কিন যুক্তরাষ্ট্রের রাজ্যের নিয়মাবলী সেটিংস বা GDPR সেটিংসের ধাপগুলি অনুসরণ করে আপনার মধ্যস্থতাকারী অংশীদারদের Ad Manager Privacy & Messaging-এর মার্কিন যুক্তরাষ্ট্রের রাজ্য বা GDPR বিজ্ঞাপন অংশীদারদের তালিকায় যোগ করুন। এটি না করলে অংশীদাররা আপনার অ্যাপে বিজ্ঞাপন পরিবেশন করতে ব্যর্থ হতে পারে।
Google ব্যবহারকারী বার্তা প্ল্যাটফর্ম (UMP) SDK এর মাধ্যমে সীমাবদ্ধ ডেটা প্রক্রিয়াকরণ (RDP) সক্ষম করা এবং GDPR সম্মতি নেওয়া সম্পর্কে আরও জানুন।