بنرهای تبلیغاتی، قسمتی از طرحبندی یک برنامه را در بالا یا پایین صفحه نمایش دستگاه اشغال میکنند. آنها در حین تعامل کاربران با برنامه، روی صفحه باقی میمانند و میتوانند پس از مدت زمان مشخصی به طور خودکار بهروزرسانی شوند.
این راهنما به شما کمک میکند تا با تبلیغات بنری تطبیقی لنگری شروع کنید. بنرهای تطبیقی لنگری، اندازه تبلیغ را برای هر دستگاه با استفاده از عرض تبلیغی که شما مشخص میکنید، بهینه میکنند.
بنرهای تبلیغاتی تطبیقی لنگری، تبلیغاتی با نسبت ابعاد ثابت هستند، نه تبلیغات با اندازه ثابت . نسبت ابعاد آنها مشابه 320x50 است. هنگامی که عرض کامل موجود را مشخص میکنید، SDK تبلیغات موبایلی گوگل، تبلیغی با ارتفاع بهینه برای آن عرض را برمیگرداند. ارتفاع بهینه برای تبلیغ در درخواستهای مختلف تبلیغ ثابت میماند و محتوای اطراف تبلیغ هنگام بهروزرسانی تبلیغ، در جای خود باقی میماند.
همیشه با تبلیغات آزمایشی تست کنید
هنگام ساخت و آزمایش برنامههای خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده میکنید. عدم انجام این کار میتواند منجر به مسدود شدن حساب شما شود.
سادهترین راه برای بارگذاری تبلیغات آزمایشی، استفاده از شناسه اختصاصی واحد تبلیغات آزمایشی ما برای بنرها است:
 /21775744923/example/adaptive-banner
واحدهای تبلیغاتی آزمایشی طوری پیکربندی شدهاند که برای هر درخواست، تبلیغات آزمایشی را برگردانند و شما میتوانید هنگام کدنویسی، آزمایش و اشکالزدایی از آنها در برنامههای خود استفاده کنید. فقط قبل از انتشار برنامه، مطمئن شوید که آنها را با شناسههای واحدهای تبلیغاتی خود جایگزین میکنید.
اندازه تبلیغ را دریافت کنید
برای درخواست بنر تبلیغاتی با اندازه صحیح، مراحل زیر را دنبال کنید:
- با استفاده از - MediaQuery.of(context)عرض صفحه نمایش دستگاه را بر حسب پیکسلهای مستقل از چگالی (dp) دریافت کنید. اگر نمیخواهید از عرض کامل صفحه استفاده کنید، میتوانید عرض دلخواه خود را تنظیم کنید.
- برای دریافت یک شیء - AdSizeاز متد استاتیک مناسب در کلاس- AdSizeاستفاده کنید. برای مثال، از- AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(int width)برای دریافت اندازه تبلیغ برای جهت فعلی استفاده کنید.
// Get an AnchoredAdaptiveBannerAdSize before loading the ad.
final size = await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
  MediaQuery.sizeOf(context).width.truncate(),
);
بارگذاری یک تبلیغ
مثال زیر یک بنر تبلیغاتی را بارگذاری میکند:
به جای _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 an 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.");
},
تازه کردن یک آگهی
اگر واحد تبلیغاتی خود را برای بهروزرسانی پیکربندی کردهاید، در صورت عدم بارگیری تبلیغ، نیازی به درخواست تبلیغ دیگری ندارید. SDK تبلیغات موبایل گوگل هر نرخ بهروزرسانی را که در رابط کاربری مدیر تبلیغات مشخص کردهاید، در نظر میگیرد. اگر بهروزرسانی را فعال نکردهاید، یک درخواست جدید ارسال کنید. برای جزئیات بیشتر در مورد بهروزرسانی واحد تبلیغاتی، مانند تنظیم نرخ بهروزرسانی، به نرخ بهروزرسانی برای تبلیغات در برنامههای تلفن همراه مراجعه کنید.
نمایش بنر تبلیغاتی
 برای نمایش یک AdManagerBannerAd به عنوان یک ویجت، باید پس از فراخوانی load() یک AdWidget با یک تبلیغ پشتیبانیشده نمونهسازی کنید. میتوانید ویجت را قبل از فراخوانی load() ایجاد کنید، اما load() باید قبل از افزودن آن به درخت ویجت فراخوانی شود.
 AdWidget از کلاس Widget در 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() است.
تمام! برنامه شما اکنون آماده نمایش تبلیغات بنری است.
محدودیت پیمایش در اندروید ۹ و پایینتر
ما میدانیم که برخی از دستگاههای قدیمیتر یا ضعیفتر که اندروید ۹ یا قبلتر را اجرا میکنند، ممکن است هنگام نمایش بنرهای تبلیغاتی درونخطی در نماهای پیمایشی، عملکرد نامطلوبی داشته باشند. توصیه میکنیم فقط از این نوع بنرها در اندروید ۱۰ یا بالاتر استفاده کنید. بنرهای با موقعیت ثابت مانند بنرهای لنگری تحت تأثیر قرار نمیگیرند و میتوانند با عملکرد مطلوب در تمام سطوح API اندروید استفاده شوند.
آشنایی با انواع دیگر بنر
با انواع دیگر بنرهای تعریف شده در این بخش برای برنامه Flutter خود آشنا شوید.
بنرهای تطبیقی درون خطی
بنرهای تطبیقی درون خطی ارتفاع متغیری دارند و در مقایسه با بنرهای تطبیقی لنگری، بنرهای بزرگتر و بلندتری هستند. بنرهای تطبیقی درون خطی برای برنامههایی که تبلیغات بنری را در محتوای قابل پیمایش قرار میدهند، نسبت به بنرهای تطبیقی لنگری توصیه میشوند. برای جزئیات بیشتر، به بنرهای تطبیقی درون خطی مراجعه کنید.
بنرهای تاشو
بنرهای تبلیغاتی تاشو، بنرهایی هستند که در ابتدا به صورت یک لایه بزرگتر ارائه میشوند و دکمهای برای جمع کردن تبلیغ به اندازه کوچکتر وجود دارد. برای بهینهسازی بیشتر عملکرد خود، استفاده از این بنر را در نظر بگیرید. برای جزئیات بیشتر، به بنرهای تبلیغاتی تاشو مراجعه کنید.