«واسطهگری 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 را دنبال کنید تا شرکای میانجیگریتان را به فهرست شرکای آگهی GDPR یا ایالتهای ایالات متحده در «حریمخصوصی و پیامرسانی» AdMob اضافه کنید. انجام ندادن این کار میتواند منجر به عدم ارائه آگهی در برنامه شما توسط شرکا شود.
درباره فعال کردن پردازش دادههای محدودشده (RDP) و کسب رضایت با مقررات کلی حفاظت از داده با کیت توسعه نرمافزار پلاتفرم پیامرسانی کاربر Google (UMP) بیشتر بدانید.