راه‌اندازی آگهی‌های برنمایی

پلاتفرم را انتخاب کنید: Android iOS Unity Flutter Android (Legacy)

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

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

آگهی‌های برنمای تطبیقی لنگردار آگهی‌هایی با نسبت ابعادی ثابت هستند نه آگهی‌هایی با اندازه ثابت. نسبت ابعادی مشابه 320x50 است. وقتی کل عرض دردسترس را مشخص کردید، Google Mobile Ads Flutter Plugin آگهی‌ای با ارتفاع بهینه برای آن عرض برمی‌گرداند. ارتفاع بهینه برای آگهی در درخواست‌های آگهی مختلف ثابت می‌ماند و محتوای اطراف آگهی هنگام بازآوری آگهی در جای خود باقی می‌ماند.

همیشه با آگهی‌های آزمایشی آزمایش کنید

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

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

/21775744923/example/adaptive-banner

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

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

برنماهای تطبیقی بزرگ قالب بزرگ‌تری را ارائه می‌دهند که برای چیدمان‌های غیرپیمایشی طراحی شده است. درمقایسه با برنمای تطبیقی لنگرانداخته استاندارد، این برنماها حداکثر ارتفاع بلندتری را امکان‌پذیر می‌کنند (تا ۲۰٪ از ارتفاع صفحه‌نمایش، بین ۵۰ و ۱۵۰ دی‌پی). این فضای افزایش‌یافته برای محتوای ویدیویی بهینه‌سازی شده است.

برای درخواست آگهی برنمایی با اندازه آگهی صحیح، این مراحل را دنبال کنید:

  1. عرض صفحه‌نمایش دستگاه را در واحد پیکسل‌های مستقل از تراکم (dp) بااستفاده از MediaQuery.of(context) دریافت کنید. اگر نمی‌خواهید از کل عرض صفحه استفاده کنید، می‌توانید عرض موردنظرتان را تنظیم کنید.

  2. از روش ایستا مناسب در کلاس AdSize برای دریافت شیء AdSize استفاده کنید. برای مثال، از AdSize.getLargeAnchoredAdaptiveBannerAdSize(int width) برای دریافت اندازه آگهی برای جهت فعلی استفاده کنید.

// Get an AnchoredAdaptiveBannerAdSize before loading the ad.
final size = await AdSize.getLargeAnchoredAdaptiveBannerAdSize(
  MediaQuery.sizeOf(context).width.truncate(),
);

بار کردن آگهی

مثال زیر آگهی برنمایی را بار می‌کند:

void _loadAdManagerBannerAd() async {
  // Get an AnchoredAdaptiveBannerAdSize before loading the ad.
  final size = await AdSize.getLargeAnchoredAdaptiveBannerAdSize(
    MediaQuery.sizeOf(context).width.truncate(),
  );

  if (size == null) {
    // Unable to get width of anchored banner.
    return;
  }

  unawaited(
    BannerAd(
      adUnitId: "_adUnitId",
      request: const AdManagerAdRequest(),
      size: size,
      listener: BannerAdListener(
        onAdLoaded: (ad) {
          // Called when an ad is successfully received.
          debugPrint('Ad was loaded.');
          setState(() {
            _bannerAd = ad as BannerAd;
          });
        },
        onAdFailedToLoad: (ad, err) {
          // Called when an ad request failed.
          debugPrint('Ad failed to load with error: $err');
          ad.dispose();
        },
      ),
    ).load(),
  );
}

_adUnitId را با شناسه واحد آگهی خودتان جایگزین کنید.

بااستفاده از AdManagerBannerAdListener، می‌توانید به رویدادهای چرخه حیات گوش دهید، مثلاً وقتی آگهی بار می‌شود. این مثال هر روش را پیاده‌سازی می‌کند و پیامی را در کنسول ثبت می‌کند:

onAdOpened: (Ad ad) {
  // Called when an ad opens an overlay that covers the screen.
  debugPrint('Ad was opened.');
},
onAdClosed: (Ad ad) {
  // Called when an ad removes an overlay that covers the screen.
  debugPrint('Ad was closed.');
},
onAdImpression: (Ad ad) {
  // Called when an impression occurs on the ad.
  debugPrint('Ad recorded an impression.');
},
onAdClicked: (Ad ad) {
  // Called when a click event occurs on the ad.
  debugPrint('Ad was clicked.');
},
onAdWillDismissScreen: (Ad ad) {
  // iOS only. Called before dismissing a full screen view.
  debugPrint('Ad will be dismissed.');
},

بازآوری آگهی

اگر واحد آگهی‌تان را برای بازآوری پیکربندی کرده‌اید، وقتی آگهی بار نمی‌شود، لازم نیست آگهی دیگری درخواست کنید. Google Mobile Ads Flutter Plugin از هر نرخ بازآوری که در واسط کاربر Ad Manager مشخص کرده‌اید پیروی می‌کند. اگر بازآوری را فعال نکرده‌اید، درخواست جدیدی صادر کنید. برای جزئیات بیشتر درباره بازآوری واحد آگهی، مانند تنظیم نرخ بازآوری، به نرخ بازآوری برای آگهی‌ها در برنامه‌های تلفن همراه مراجعه کنید.

نمایش آگهی برنمایی

برای نمایش AdManagerBannerAd به‌عنوان ابزارک، باید پس‌از فراخوانی load()، AdWidget را با آگهی پشتیبانی‌شده‌ای نمونه‌سازی کنید. می‌توانید ابزاره را قبل‌از فراخوانی load() ایجاد کنید، اما load() باید قبل‌از افزودن آن به درخت ابزاره فراخوانی شود.

AdWidget از کلاس «ابزاره» Flutter ارث‌بری می‌کند و می‌تواند مانند هر ابزاره دیگری استفاده شود. در iOS، مطمئن شوید ابزاره را در ابزاره‌ای با عرض و ارتفاع مشخص قرار دهید. درغیراین‌صورت، ممکن است آگهی‌تان نمایش داده نشود. AdManagerBannerAd می‌تواند در ظرفی با اندازه مطابق با آگهی قرار گیرد:

if (_bannerAd != null)
  Align(
    alignment: Alignment.bottomCenter,
    child: SafeArea(
      child: SizedBox(
        width: _bannerAd!.size.width.toDouble(),
        height: _bannerAd!.size.height.toDouble(),
        child: AdWidget(ad: _bannerAd!),
      ),
    ),
  ),

وقتی دیگر به آگهی نیازی نیست، باید آن را دور انداخت. بهترین روش برای زمان فراخوانی dispose() یا پس‌از حذف AdWidget از درخت ابزاره است یا در فراخوانی برگشتی AdManagerBannerAdListener.onAdFailedToLoad().

فقط همین! اکنون برنامه‌تان برای نمایش آگهی‌های برنمای آماده است.

محدودیت پیمایش در Android 9 و نسخه‌های قدیمی‌تر

می‌دانیم که برخی‌از دستگاه‌های قدیمی‌تر یا ضعیف‌تر که Android نسخه ۹ یا پایین‌تر دارند ممکن است هنگام نمایش آگهی‌های برنمای به‌خط در نماهای پیمایشی عملکردی کمتر از حد مطلوب داشته باشند. توصیه می‌کنیم فقط از این نوع برنماها در Android 10 یا نسخه‌های جدیدتر استفاده کنید. برنماهای با موقعیت ثابت، مثل برنماهای لنگردار، تحت‌تأثیر قرار نمی‌گیرند و می‌توانند با عملکرد بهینه در همه سطوح میانای برنامه‌سازی کاربردی Android استفاده شوند.

آشنایی با انواع دیگر برنما

با انواع دیگر برنماهای تعریف‌شده در این بخش برای برنامه Flutter خود آشنا شوید.

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

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

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

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