تبلیغات بنری

تبلیغات بنری، تبلیغات مستطیلی هستند که بخشی از طرح‌بندی برنامه را اشغال می‌کنند. آنها در حالی که کاربران در حال تعامل با برنامه هستند، روی صفحه می مانند، یا در بالا یا پایین صفحه لنگر انداخته می شوند یا در هنگام حرکت کاربر با محتوا در ارتباط هستند. بنرهای تبلیغاتی می توانند پس از مدت زمان مشخصی به طور خودکار به روز شوند. برای اطلاعات بیشتر به نمای کلی تبلیغات بنری مراجعه کنید.

این راهنما به شما نشان می‌دهد که چگونه با تبلیغات بنری تطبیقی ​​لنگردار شروع کنید، که با بهینه‌سازی اندازه آگهی برای هر دستگاه با استفاده از عرض تبلیغی که مشخص می‌کنید، عملکرد را به حداکثر می‌رساند.

تبلیغات بنری تطبیقی ​​لنگر، تبلیغات با نسبت ابعاد ثابت هستند تا تبلیغات با اندازه ثابت معمولی. نسبت تصویر مشابه استاندارد صنعتی 320x50 است. هنگامی که عرض کامل موجود را مشخص کردید، تبلیغی با ارتفاع بهینه برای آن عرض به شما برمی‌گرداند. ارتفاع بهینه در درخواست‌های یک دستگاه تغییر نمی‌کند، و نماهای اطراف نیازی به جابجایی در هنگام بازخوانی آگهی ندارند.

پیش نیازها

همیشه با تبلیغات آزمایشی تست کنید

هنگام ساخت و آزمایش برنامه های خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده می کنید. عدم انجام این کار می تواند منجر به تعلیق حساب شما شود.

ساده ترین راه برای بارگیری تبلیغات آزمایشی استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای بنرهای اندروید است:

ca-app-pub-3940256099942544/9214589741

این به طور ویژه پیکربندی شده است تا تبلیغات آزمایشی را برای هر درخواست بازگرداند، و می‌توانید هنگام کدنویسی، آزمایش و اشکال‌زدایی از آن در برنامه‌های خود استفاده کنید. فقط مطمئن شوید که قبل از انتشار برنامه خود، آن را با شناسه واحد تبلیغاتی خود جایگزین کنید.

برای کسب اطلاعات بیشتر در مورد نحوه عملکرد تبلیغات آزمایشی SDK Ads Mobile، به Test Ads مراجعه کنید.

AdView را به طرح اضافه کنید

شما با تعیین اندازه تبلیغ یک بنر ایجاد می کنید. مراحل زیر را کامل کنید:

  1. اندازه آگهی تطبیقی ​​لنگردار با عرض کامل ایجاد کنید:

    جاوا

    // Get the ad size with screen width.
    public AdSize getAdSize() {
      DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
      int adWidthPixels = displayMetrics.widthPixels;
    
      if (VERSION.SDK_INT >= VERSION_CODES.R) {
        WindowMetrics windowMetrics = this.getWindowManager().getCurrentWindowMetrics();
        adWidthPixels = windowMetrics.getBounds().width();
      }
    
      float density = displayMetrics.density;
      int adWidth = (int) (adWidthPixels / density);
      return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
    }
    

    کاتلین

    // Get the ad size with screen width.
    private val adSize: AdSize
      get() {
        val displayMetrics = resources.displayMetrics
        val adWidthPixels =
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            val windowMetrics: WindowMetrics = this.windowManager.currentWindowMetrics
            windowMetrics.bounds.width()
          } else {
            displayMetrics.widthPixels
          }
        val density = displayMetrics.density
        val adWidth = (adWidthPixels / density).toInt()
        return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
      }
    
    
  2. یک AdView با استفاده از اندازه تبلیغ ایجاد کنید و آن را به طرح‌بندی برنامه خود اضافه کنید:

    جاوا

    // Create a new ad view.
    adView = new AdView(this);
    adView.setAdUnitId(AD_UNIT_ID);
    adView.setAdSize(getAdSize());
    
    // 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
    adView.setAdSize(adSize)
    this.adView = adView
    
    // Replace ad container with new ad view.
    binding.adViewContainer.removeAllViews()
    binding.adViewContainer.addView(adView)
    

یک تبلیغ را بارگیری کنید

هنگامی که AdView در جای خود قرار گرفت، مرحله بعدی بارگذاری آگهی است. این کار با متد loadAd() در کلاس AdView انجام می شود. این یک پارامتر AdRequest را می‌گیرد که اطلاعات زمان اجرا، مانند اطلاعات هدف، را در مورد یک درخواست آگهی نگه می‌دارد.

در اینجا مثالی آورده شده است که نحوه بارگذاری آگهی را نشان می دهد:

جاوا

// Start loading the ad in the background.
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);

کاتلین

// Start loading the ad in the background.
val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)

در صورت موفقیت آمیز بودن، برنامه شما آماده نمایش تبلیغات بنری است.

یک آگهی را تازه کنید

اگر واحد تبلیغات خود را برای بازخوانی پیکربندی کرده‌اید، نیازی به درخواست آگهی دیگری در صورت عدم بارگیری آگهی ندارید. Google Mobile Ads SDK به نرخ تازه‌سازی که در رابط کاربری AdMob مشخص کرده‌اید احترام می‌گذارد. اگر بازخوانی را فعال نکرده‌اید، درخواست جدیدی صادر کنید. برای جزئیات بیشتر در مورد بازخوانی واحد تبلیغات، مانند تنظیم نرخ تجدید، به استفاده از بازخوانی خودکار برای تبلیغات بنر مراجعه کنید.

رویدادهای تبلیغاتی

می‌توانید به تعدادی از رویدادها در چرخه عمر آگهی گوش دهید، از جمله بارگذاری، نمایش آگهی و کلیک، و همچنین رویدادهای باز و بسته شدن آگهی. توصیه می شود قبل از بارگذاری بنر، تماس برگشتی را تنظیم کنید.

جاوا

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(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() زمانی فراخوانی می شود که کاربر پس از مشاهده URL مقصد تبلیغ به برنامه بازگردد. برنامه شما می‌تواند از آن برای از سرگیری فعالیت‌های معلق یا انجام هر کار دیگری که برای آماده‌سازی خود برای تعامل لازم است استفاده کند. برای اجرای روش‌های شنونده تبلیغات در برنامه نمایشی Android API به مثال AdMob AdListener مراجعه کنید.
onAdFailedToLoad() متد onAdFailedToLoad() تنها روشی است که شامل یک پارامتر است. پارامتر خطا از نوع LoadAdError توصیف می کند که چه خطایی رخ داده است. برای اطلاعات بیشتر، به مستندات خطاهای بارگذاری آگهی اشکال زدایی مراجعه کنید.
onAdImpression() متد onAdImpression() زمانی فراخوانی می شود که یک نمایش برای یک تبلیغ ثبت شود.
onAdLoaded() متد onAdLoaded() زمانی اجرا می‌شود که بارگذاری آگهی به پایان برسد. برای مثال، اگر می‌خواهید افزودن AdView به فعالیت یا قطعه خود را تا زمانی که از بارگیری آگهی مطمئن شوید به تأخیر بیاندازید، می‌توانید این کار را از اینجا انجام دهید.
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>

برای اطلاعات بیشتر درباره گزینه‌های کنترل شتاب سخت‌افزار ، راهنمای شتاب سخت‌افزار را ببینید. توجه داشته باشید که در صورت غیرفعال شدن فعالیت، نماهای تبلیغاتی منفرد را نمی توان برای شتاب سخت افزاری فعال کرد، بنابراین خود فعالیت باید شتاب سخت افزاری را فعال کند.

منابع اضافی

نمونه هایی در GitHub

مراحل بعدی

بنرهای جمع شونده

بنرهای جمع‌شونده، بنری‌هایی هستند که در ابتدا به صورت یک پوشش بزرگ‌تر ارائه می‌شوند و دکمه‌ای برای جمع کردن آگهی به اندازه کوچک‌تر وجود دارد. استفاده از آن را برای بهینه سازی بیشتر عملکرد خود در نظر بگیرید. برای جزئیات بیشتر به بنرهای تاشو مراجعه کنید.

بنرهای تطبیقی ​​درون خطی

بنرهای تطبیقی ​​درون خطی در مقایسه با بنرهای تطبیقی ​​لنگردار، بنرهای بزرگتر و بلندتری هستند. ارتفاع آنها متغیر است و می توانند به اندازه صفحه نمایش دستگاه باشند. بنرهای تطبیقی ​​درون خطی برای برنامه‌هایی که آگهی‌های بنر را در محتوای قابل پیمایش قرار می‌دهند، بیش از بنرهای تطبیقی ​​لنگردار توصیه می‌شوند. برای جزئیات بیشتر به بنرهای تطبیقی ​​درون خطی مراجعه کنید.

موضوعات دیگر را بررسی کنید