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