«میانجیگری AdMob» ویژگیای است که به شما امکان میدهد آگهیهای برنامههایتان را از منابع مختلف، ازجمله «شبکه AdMob» و منابع آگهی طرف سوم، در یک مکان ارائه کنید. «واسطهگری AdMob» با ارسال درخواستهای آگهی به چندین شبکه به شما کمک میکند نرخ تکمیل خود را به حداکثر برسانید و درآمدزایی خود را افزایش دهید تا مطمئن شوید بهترین شبکه دردسترس را برای ارائه آگهی پیدا میکنید. مطالعه موردی.
پیشنیازها
قبلاز اینکه بتوانید میانجیگری را برای قالب آگهی ادغام کنید، باید آن قالب آگهی را در برنامهتان ادغام کنید:
در میانجیگری تازهکار هستید؟ نمای کلی واسطهگری AdMob را بخوانید.
مقداردهی اولیه GMA Next-Gen SDK
راهنمای شروع سریع نحوه مقداردهی اولیه GMA Next-Gen SDK را به شما نشان میدهد. درطول آن تماس مقداردهی اولیه، میانجیهای واسطهگری نیز مقداردهی اولیه میشوند. مهم است که قبلاز بار کردن آگهیها منتظر بمانید تا مقداردهی اولیه تکمیل شود تا مشارکت کامل از هر شبکه آگهی در اولین درخواست آگهی تأیید شود.
کد نمونه زیر نشان میدهد که چگونه میتوانید وضعیت مقداردهی اولیه هر آداپتور را قبلاز درخواست آگهی بررسی کنید.
Kotlin
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 واحد در یکپارچهسازیهای میانجیگری
کاربران میانجیگری همچنان به Google Mobile Ads SDK (Legacy) وابسته هستند. بااینحال، GMA Next-Gen SDK شامل همه کلاسهای موردنیاز آداپتورهای واسطهگری میشود. برای جلوگیری از خطاهای کامپایل مربوط به نمادهای تکراری، باید Google Mobile Ads SDK (Legacy) را از اینکه توسط میانجیگری آداپتورها بهعنوان وابستگی کشیده شود مستثنا کنید.
در فایل build.gradle سطح برنامه، هر دو واحد play-services-ads و
play-services-ads-lite را بهصورت سراسری از همه وابستگیها مستثنا کنید:
Kotlin
configurations.configureEach { exclude(group = "com.google.android.gms", module = "play-services-ads") exclude(group = "com.google.android.gms", module = "play-services-ads-lite") }
Groovy
configurations.configureEach { exclude group: "com.google.android.gms", module: "play-services-ads" exclude group: "com.google.android.gms", module: "play-services-ads-lite" }
بررسی کنید کدام کلاس آداپتور شبکه آگهی آگهی را بار کرده است
در اینجا چند نمونه کد وجود دارد که نام کلاس شبکه آگهی را برای آگهی برنمایی ثبت میکند:
Kotlin
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» استفاده میشوند غیرفعال کنید. این کار از بازآوری مضاعف جلوگیری میکند زیرا AdMob نیز براساس نرخ بازآوری واحد آگهی برنمایی شما، بازآوری را راهاندازی میکند.
قوانین حریم خصوصی ایالتی در ایالات متحده و «مقررات عمومی حفاظت از دادهها»
اگر باید از قوانین حریم خصوصی ایالتهای امریکا یا مقررات عمومی حفاظت از دادهها (GDPR) پیروی کنید، مراحل تنظیمات مقررات ایالتی امریکا یا تنظیمات GDPR را دنبال کنید تا شرکای واسطهگری خود را به فهرست شرکای آگهی «ایالتهای امریکا» یا «مقررات عمومی حفاظت از دادهها» در «حریم خصوصی و پیامرسانی AdMob» اضافه کنید. انجام ندادن این کار میتواند منجر به این شود که شرکا نتوانند در برنامه شما آگهی ارائه کنند.
درباره فعال کردن پردازش دادههای محدودشده (RDP) و دریافت موافقت GDPR با کیت توسعه نرمافزار پلاتفرم پیامرسانی کاربر Google (UMP) بیشتر بدانید.