AdMob Mediation قابلیتی است که به شما امکان میدهد تبلیغات را از منابع مختلف، از جمله شبکه AdMob و منابع تبلیغاتی شخص ثالث، در یک مکان به برنامههای خود ارائه دهید. AdMob Mediation با ارسال درخواستهای تبلیغاتی به چندین شبکه، به حداکثر رساندن نرخ پر شدن و افزایش درآمد شما کمک میکند. مطالعه موردی .
پیشنیازها
قبل از اینکه بتوانید میانجیگری را برای یک قالب تبلیغاتی ادغام کنید، باید آن قالب تبلیغاتی را در برنامه خود ادغام کنید:
تازه با میانجیگری آشنا شدهاید؟ مرور کلی میانجیگری ادموب را بخوانید.
مقداردهی اولیه 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 {
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 Mediation
مطمئن شوید که قابلیت رفرش (Refresh) را در تمام رابطهای کاربری منبع تبلیغات شخص ثالث برای واحدهای تبلیغاتی بنری مورد استفاده در AdMob Mediation غیرفعال کردهاید. این کار از رفرش دوگانه جلوگیری میکند، زیرا AdMob نیز بر اساس نرخ رفرش واحد تبلیغاتی بنری شما، رفرش را فعال میکند.
قوانین حفظ حریم خصوصی ایالتهای آمریکا و GDPR
اگر نیاز به رعایت قوانین حفظ حریم خصوصی ایالتهای ایالات متحده یا مقررات عمومی حفاظت از دادهها (GDPR) دارید، مراحل موجود در تنظیمات مقررات ایالتهای ایالات متحده یا تنظیمات GDPR را دنبال کنید تا شرکای میانجی خود را در فهرست شرکای تبلیغاتی GDPR یا ایالتهای ایالات متحده در AdMob Privacy & messaging اضافه کنید. عدم انجام این کار میتواند منجر به عدم نمایش تبلیغات توسط شرکا در برنامه شما شود.
درباره فعال کردن پردازش دادههای محدود (RDP) و دریافت رضایت GDPR با SDK پلتفرم پیامرسانی کاربر گوگل (UMP) بیشتر بدانید.