تبلیغات بنری یک نقطه را در طرحبندی برنامه اشغال میکنند، چه در بالا یا پایین صفحه دستگاه. در حالی که کاربران در حال تعامل با برنامه هستند، روی صفحه می مانند و می توانند پس از مدت زمان مشخصی به طور خودکار بازخوانی شوند. اگر در زمینه تبلیغات موبایلی تازه کار هستید، آنها مکان خوبی برای شروع هستند.مطالعه موردی .
این راهنما به شما نشان می دهد که چگونه تبلیغات بنری را ازAdMob در یک برنامه اندروید ادغام کنید. علاوه بر تکههای کد و دستورالعملها، اطلاعاتی در مورد اندازهبندی صحیح بنرها و پیوندهایی به منابع اضافی نیز دارد.
پیش نیازها
- راهنمای شروع را کامل کنید.
AdView را به طرح اضافه کنید
اولین قدم برای نمایش یک بنر این است که AdView
را در طرح Activity
یا Fragment
ای که می خواهید در آن نمایش دهید قرار دهید. ساده ترین راه برای انجام این کار اضافه کردن یکی به فایل طرح بندی XML مربوطه است. در اینجا یک مثال آمده است که AdView
یک فعالیت را نشان می دهد:
# main_activity.xml ... <com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto" android:id="@+id/adView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" ads:adSize="BANNER" ads:adUnitId="ca-app-pub-3940256099942544/6300978111"> </com.google.android.gms.ads.AdView> ...
به ویژگی های مورد نیاز زیر توجه کنید:
-
ads:adSize
- این را روی اندازه تبلیغی که می خواهید استفاده کنید تنظیم کنید. اگر نمی خواهید از اندازه استاندارد تعریف شده توسط ثابت استفاده کنید، می توانید به جای آن یک اندازه سفارشی تنظیم کنید. برای جزئیات بیشتر به بخش اندازه بنر زیر مراجعه کنید. -
ads:adUnitId
- این را روی شناسه منحصربهفردی که به واحد تبلیغات در برنامهتان داده میشود، تنظیم کنید، جایی که تبلیغات قرار است نمایش داده شوند. اگر تبلیغات بنری را در فعالیت های مختلف نشان دهید، هر کدام به یک واحد تبلیغات نیاز دارند.
همچنین میتوانید AdView
را به صورت برنامهنویسی ایجاد کنید:
جاوا
AdView adView = new AdView(this); adView.setAdSize(AdSize.BANNER); adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111"); // TODO: Add adView to your view hierarchy.
کاتلین
val adView = AdView(this) adView.adSize = AdSize.BANNER adView.adUnitId = "ca-app-pub-3940256099942544/6300978111" // TODO: Add adView to your view hierarchy.
همیشه با تبلیغات آزمایشی تست کنید
هنگام ساخت و آزمایش برنامه های خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده می کنید. عدم انجام این کار می تواند منجر به تعلیق حساب شما شود.
ساده ترین راه برای بارگیری تبلیغات آزمایشی استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای بنرهای اندروید است:
ca-app-pub-3940256099942544/6300978111
این بهطور ویژه پیکربندی شده است تا تبلیغات آزمایشی را برای هر درخواست بازگرداند، و شما میتوانید هنگام کدنویسی، آزمایش و اشکالزدایی از آن در برنامههای خود استفاده کنید. فقط مطمئن شوید که قبل از انتشار برنامه خود، آن را با شناسه واحد تبلیغاتی خود جایگزین کنید.
برای کسب اطلاعات بیشتر در مورد نحوه عملکرد تبلیغات آزمایشی SDK Ads Mobile، به Test Ads مراجعه کنید.
یک تبلیغ را بارگیری کنید
هنگامی که AdView در محل قرار گرفت، گام بعدی بارگذاری آگهی است. این کار با loadAd()
در کلاس AdView
انجام می شود. این یک پارامتر AdRequest
را میگیرد که اطلاعات زمان اجرا (مانند اطلاعات هدفیابی) را در مورد یک درخواست آگهی نگه میدارد.
در اینجا مثالی آورده شده است که نشان می دهد چگونه یک تبلیغ را در onCreate()
یک Activity
بارگیری کنید:
MainActivity (گزیده)
جاوا
package ... import ... import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdView; public class MainActivity extends AppCompatActivity { private AdView mAdView; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MobileAds.initialize(this, new OnInitializationCompleteListener() { @Override public void onInitializationComplete(InitializationStatus initializationStatus) { } }); mAdView = findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest); } }
کاتلین
package ... import ... import com.google.android.gms.ads.AdRequest import com.google.android.gms.ads.AdView class MainActivity : AppCompatActivity() { lateinit var mAdView : AdView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) MobileAds.initialize(this) {} mAdView = findViewById(R.id.adView) val adRequest = AdRequest.Builder().build() mAdView.loadAd(adRequest) } }
خودشه! اکنون برنامه شما برای نمایش تبلیغات بنری آماده است.
رویدادهای تبلیغاتی
برای سفارشیسازی بیشتر رفتار تبلیغ خود، میتوانید به تعدادی از رویدادها در چرخه عمر آگهی متصل شوید: بارگیری، باز کردن، بسته شدن و غیره. می توانید از طریق کلاس AdListener
به این رویدادها گوش دهید.
برای استفاده از AdListener
با AdView
، setAdListener()
را فراخوانی کنید:
جاوا
mAdView.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(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. } });
کاتلین
mAdView.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() زمانی فراخوانی می شود که کاربر پس از مشاهده URL مقصد تبلیغ به برنامه بازگردد. برنامه شما میتواند از آن برای از سرگیری فعالیتهای معلق یا انجام هر کار دیگری که برای آمادهسازی خود برای تعامل لازم است استفاده کند.برای اجرای روش های شنونده تبلیغات در برنامه نمایشی Android API به مثال AdMob AdListener مراجعه کنید. |
onAdFailedToLoad() | onAdFailedToLoad() تنها روشی است که شامل یک پارامتر است. پارامتر خطا از نوع LoadAdError توصیف می کند که چه خطایی رخ داده است. برای اطلاعات بیشتر، به مستندات خطاهای بارگذاری آگهی اشکال زدایی مراجعه کنید. |
onAdImpression() | onAdImpression() زمانی فراخوانی می شود که یک نمایش برای یک تبلیغ ثبت شود. |
onAdLoaded() | onAdLoaded() زمانی اجرا میشود که بارگذاری آگهی به پایان برسد. برای مثال، اگر میخواهید افزودن AdView به فعالیت یا قطعه خود را تا زمانی که مطمئن شوید آگهی بارگیری میشود به تأخیر بیاندازید، میتوانید این کار را از اینجا انجام دهید. |
onAdOpened() | onAdOpened() زمانی فراخوانی می شود که یک تبلیغ پوششی را باز می کند که صفحه را می پوشاند. |
اندازه های بنر
جدول زیر اندازه های استاندارد بنر را فهرست می کند.
اندازه بر حسب dp (WxH) | شرح | دسترسی | AdSize ثابت |
---|---|---|---|
320x50 | بنر | گوشی و تبلت | BANNER |
320x100 | بنر بزرگ | گوشی و تبلت | LARGE_BANNER |
300x250 | مستطیل متوسط IAB | گوشی و تبلت | MEDIUM_RECTANGLE |
468x60 | بنر سایز کامل IAB | قرص | FULL_BANNER |
728x90 | تابلوی امتیازات IAB | قرص | LEADERBOARD |
عرض ارائه شده x ارتفاع تطبیقی | بنر تطبیقی | گوشی و تبلت | N/A |
عرض صفحه x 32|50|90 | بنر هوشمند | گوشی و تبلت | SMART_BANNER |
درباره بنرهای تطبیقی که برای جایگزینی بنرهای هوشمند در نظر گرفته شده است، بیشتر بیاموزید. |
برای تعریف اندازه بنر سفارشی، AdSize
مورد نظر خود را مطابق با اینجا تنظیم کنید:
جاوا
AdSize adSize = new AdSize(300, 50);
کاتلین
val adSize = AdSize(300, 50)
شتاب سخت افزاری برای تبلیغات ویدیویی
برای اینکه تبلیغات ویدیویی با موفقیت در بازدیدهای تبلیغات بنری شما نمایش داده شود، شتاب سخت افزاری باید فعال باشد.
شتاب سختافزاری بهطور پیشفرض فعال است، اما برخی از برنامهها ممکن است آن را غیرفعال کنند. اگر این مورد در مورد برنامه شما صدق می کند، توصیه می کنیم شتاب سخت افزاری را برای کلاس های 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>
برای اطلاعات بیشتر در مورد گزینه های کنترل شتاب سخت افزاری، راهنمای شتاب HW را ببینید. توجه داشته باشید که در صورت غیرفعال شدن Activity، نماهای تبلیغاتی منفرد را نمی توان برای شتاب سخت افزاری فعال کرد، بنابراین خود Activity باید شتاب سخت افزاری را فعال کند.
منابع اضافی
نمونه هایی در GitHub
بنر RecyclerView نمونه برنامه: جاوا