این راهنما نحوه بارگذاری یک بنر تبلیغاتی تطبیقی متصل به یک برنامه اندروید را پوشش میدهد.
- کیت توسعه Google Mobile Ads SDK را راهاندازی کنید .
- اختیاری: برای مثالی از پیادهسازی تبلیغات بنری، یکی از برنامههای نمونه زیر را انتخاب کنید:
- مثالی از بنرهای تبلیغاتی تطبیقی متصل به جاوا ، کاتلین یا جتپک کامپوز .
- نسخه آزمایشی ویژگیهای پیشرفته جاوا یا کاتلین .
هنگام ساخت و آزمایش برنامههای خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده میکنید. عدم انجام این کار میتواند منجر به مسدود شدن حساب شما شود.
سادهترین راه برای بارگذاری تبلیغات آزمایشی، استفاده از شناسه اختصاصی واحد تبلیغات آزمایشی ما برای بنرهای اندروید است:
ca-app-pub-3940256099942544/9214589741
این ابزار به طور ویژه برای برگرداندن تبلیغات آزمایشی برای هر درخواست پیکربندی شده است و میتوانید از آن در برنامههای خود هنگام کدنویسی، آزمایش و اشکالزدایی استفاده کنید. فقط قبل از انتشار برنامه، مطمئن شوید که آن را با شناسه واحد تبلیغاتی خود جایگزین میکنید.
برای اطلاعات بیشتر در مورد نحوه عملکرد تبلیغات آزمایشی Google Mobile Ads SDK ، به بخش فعال کردن تبلیغات آزمایشی مراجعه کنید.
یک نما به فایل XML طرحبندی خود اضافه کنید تا به عنوان ظرفی برای بنر تبلیغاتی تطبیقی متصل شما عمل کند:
<!-- Ad view container that fills the width of the screen and adjusts its
height to the content of the ad. -->
<FrameLayout
android:id="@+id/ad_view_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_alignParentBottom="true" />
پوشه JetpackCompose Utilities را اضافه کنید. این پوشه شامل کمککنندههایی برای ترکیب شیء
AdViewو فایلهای آن است.یک
AdViewبسازید:
// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
Box(modifier = modifier.fillMaxWidth()) { BannerAd(adView, modifier) }
}
AdSize روی یک نوع بنر تطبیقی متصل با عرض مشخص تنظیم کنید:
// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360));
// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360))
// Set a large anchored adaptive banner ad size with a given width.
val adSize = AdSize.getLargeAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)
AdView به طرحبندی با استفاده از اندازه تبلیغ، یک AdView ایجاد کنید تا به طرحبندی برنامهتان اضافه شود:
// Create a new ad view.
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT_ID);
// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360));
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
// Create a new ad view.
val adView = AdView(this)
adView.adUnitId = AD_UNIT_ID
// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360))
this.adView = adView
// Replace ad container with new ad view.
binding.adViewContainer.removeAllViews()
binding.adViewContainer.addView(adView)
val adView = remember { AdView(context) }
// Setup and load the adview.
// Set the unique ID for this specific ad unit.
adView.adUnitId = BANNER_AD_UNIT_ID
// Set a large anchored adaptive banner ad size with a given width.
val adSize = AdSize.getLargeAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)
// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
Box(modifier = modifier.fillMaxWidth()) { BannerAd(adView, modifier) }
}
مثال زیر یک بنر تبلیغاتی تطبیقی با عرض ۳۶۰ را در یک شیء اگر واحد تبلیغاتی خود را برای بهروزرسانی پیکربندی کردهاید، در صورت عدم بارگذاری تبلیغ، نیازی به درخواست تبلیغ دیگری ندارید. Google Mobile Ads SDK هر نرخ بهروزرسانی را که در رابط کاربری AdMob مشخص کردهاید، در نظر میگیرد. اگر بهروزرسانی را فعال نکردهاید، یک درخواست جدید ارسال کنید. برای جزئیات بیشتر در مورد بهروزرسانی واحد تبلیغاتی، مانند تنظیم نرخ بهروزرسانی، به بخش «استفاده از بهروزرسانی خودکار برای تبلیغات بنری» مراجعه کنید. وقتی استفاده از بنر تبلیغاتی تمام شد، میتوانید منابع بنر تبلیغاتی را آزاد کنید. برای آزادسازی منبع تبلیغ، تبلیغ را از سلسله مراتب نما حذف کرده و تمام ارجاعات آن را حذف میکنید: هر یک از متدهای overridable در برای اینکه تبلیغات ویدیویی با موفقیت در نمایش بنرهای تبلیغاتی شما نمایش داده شوند، باید شتابدهنده سختافزاری فعال باشد. شتاب سختافزاری به طور پیشفرض فعال است، اما برخی از برنامهها ممکن است آن را غیرفعال کنند. اگر این مورد در مورد برنامه شما صدق میکند، توصیه میکنیم شتاب سختافزاری را برای کلاسهای اگر برنامه شما با فعال بودن شتاب سختافزاری به صورت سراسری به درستی رفتار نمیکند، میتوانید آن را برای فعالیتهای منفرد نیز کنترل کنید. برای فعال یا غیرفعال کردن شتاب سختافزاری، میتوانید از ویژگی برای اطلاعات بیشتر در مورد گزینههای کنترل شتاب سختافزاری، به راهنمای شتاب سختافزاری مراجعه کنید. توجه داشته باشید که اگر فعالیت غیرفعال باشد، نمایش تبلیغات به صورت جداگانه برای شتاب سختافزاری قابل فعال شدن نیست، بنابراین خود فعالیت باید شتاب سختافزاری را فعال کند. Collapsible banner ads are banner ads that are initially presented as a larger overlay, with a button to collapse the ad to a smaller size. Consider using it to further optimize your performance. See collapsible banner ads for more details. بنرهای تطبیقی درون خطی در مقایسه با بنرهای تطبیقی لنگری، بنرهای بزرگتر و بلندتری هستند. ارتفاع آنها متغیر است و میتوانند به اندازه صفحه نمایش دستگاه باشند. بنرهای تطبیقی درون خطی برای برنامههایی که تبلیغات بنری را در محتوای قابل پیمایش قرار میدهند، نسبت به بنرهای تطبیقی لنگری توصیه میشوند. برای جزئیات بیشتر به بنرهای تطبیقی درون خطی مراجعه کنید.AdView بارگذاری میکند:AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)
public void destroyBanner() {
// Remove banner from view hierarchy.
if (adView != null) {
View parentView = (View) adView.getParent();
if (parentView instanceof ViewGroup) {
((ViewGroup) parentView).removeView(adView);
}
// Destroy the banner ad resources.
adView.destroy();
}
// Drop reference to the banner ad.
adView = null;
}
fun destroyBanner() {
// Remove banner from view hierarchy.
val parentView = adView?.parent
if (parentView is ViewGroup) {
parentView.removeView(adView)
}
// Destroy the banner ad resources.
adView?.destroy()
// Drop reference to the banner ad.
adView = null
}
if (adView != null) {
adView.setAdListener(
new AdListener() {
@Override
public void onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
@Override
public void onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError adError) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
});
}
adView?.adListener =
object : AdListener() {
override fun onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
override fun onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Code to be executed when an ad request fails.
}
override fun onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
override fun onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
override fun onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
}
AdListener مربوط به یک رویداد در چرخه حیات یک تبلیغ است. متدهای قابل لغو onAdClicked() متد onAdClicked() زمانی فراخوانی میشود که یک کلیک برای یک تبلیغ ثبت شود. onAdClosed() متد onAdClosed() زمانی فراخوانی میشود که کاربر پس از مشاهدهی آدرس اینترنتی مقصد تبلیغ، به برنامه بازگردد. برنامهی شما میتواند از آن برای از سرگیری فعالیتهای معلق شده یا انجام هر کار دیگری که برای آمادهسازی خود برای تعامل لازم است، استفاده کند. برای پیادهسازی متدهای شنوندهی تبلیغ در برنامهی Android API Demo به مثال AdMob AdListener مراجعه کنید. onAdFailedToLoad() متد onAdFailedToLoad() تنها متدی است که شامل یک پارامتر میشود. پارامتر error از نوع LoadAdError خطای رخ داده را توصیف میکند. برای اطلاعات بیشتر، به مستندات اشکالزدایی خطاهای بارگذاری تبلیغات مراجعه کنید. onAdImpression() The onAdImpression() method is invoked when an impression is recorded for an ad. onAdLoaded() متد onAdLoaded() زمانی اجرا میشود که بارگذاری یک تبلیغ به پایان رسیده باشد. برای مثال، اگر میخواهید اضافه کردن AdView به activity یا fragment خود را تا زمانی که از بارگذاری یک تبلیغ مطمئن شوید، به تأخیر بیندازید، میتوانید این کار را اینجا انجام دهید. onAdOpened() متد onAdOpened() زمانی فراخوانی میشود که یک تبلیغ، لایهای را باز کند که صفحه نمایش را میپوشاند.Activity که از تبلیغات استفاده میکنند، فعال کنید.android:hardwareAccelerated برای عناصر <application> و <activity> در AndroidManifest.xml خود استفاده کنید. مثال زیر شتاب سختافزاری را برای کل برنامه فعال میکند اما آن را برای یک فعالیت غیرفعال میکند: <application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>