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