بانر

تشغل إعلانات البانر موضعًا داخل تصميم التطبيق، سواء في الجزء العلوي أو السفلي من التطبيق شاشة الجهاز. يبقى على الشاشة أثناء تفاعل المستخدمين مع التطبيق، ويمكن إعادة تحميلها تلقائيًا بعد فترة زمنية محددة.

يوضِّح هذا الدليل كيفية دمج إعلانات البانر من "مدير الإعلانات" في تطبيق Flutter بالإضافة إلى مقتطفات التعليمات البرمجية والتعليمات، تتضمن أيضًا معلومات حول تغيير حجم إعلانات البانر بشكل صحيح.

الاختبار دائمًا باستخدام الإعلانات الاختبارية

عند إنشاء تطبيقاتك واختبارها، احرص على استخدام إعلانات تجريبية بدلاً من إعلانات بث مباشر وقد يؤدي عدم الالتزام بذلك إلى تعليق حسابك.

أسهل طريقة لتحميل الإعلانات الاختبارية هي استخدام الرقم التعريفي المخصص للوحدة الإعلانية الاختبارية إعلانات البانر:

  • /6499/example/banner

يتم ضبط الوحدات الإعلانية الاختبارية لعرض إعلانات اختبارية لكل طلب يمكنك استخدامها في تطبيقاتك الخاصة أثناء الترميز والاختبار وتصحيح الأخطاء. ما عليك سوى التأكد من استبدالها بأرقام تعريف الوحدات الإعلانية لديك قبل نشر التطبيق.

تحميل إعلان

ينشئ المثال التالي مثيلاً لإعلان بانر:

class BannerExampleState extends State<BannerExample> {
  AdManagerBannerAd? _bannerAd;
  bool _isLoaded = false;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = '/6499/example/banner';

  /// Loads a banner ad.
  void loadAd() {
    _bannerAd = AdManagerBannerAd(
      adUnitId: adUnitId,
      request: const AdManagerAdRequest(),
      size: AdSize.banner,
      listener: AdManagerBannerAdListener(
        // Called when an ad is successfully received.
        onAdLoaded: (ad) {
          debugPrint('$ad loaded.');
          setState(() {
            _isLoaded = true;
          });
        },
        // Called when an ad request failed.
        onAdFailedToLoad: (ad, err) {
          debugPrint('AdManagerBannerAd failed to load: $error');
          // Dispose the ad here to free resources.
          ad.dispose();
        },
      ),
    )..load();
  }
}

يسرد الجدول التالي الأحجام العادية لإعلانات البانر.

الحجم بوحدات بكسل مستقلة الكثافة (عرض × ارتفاع) الوصف حجم الإعلان ثابت
320×50 بانر عادي banner
100x320 بانر كبير largeBanner
320×250 مستطيل متوسط mediumRectangle
468×60 بانر بالحجم الكامل fullBanner
728×90 قائمة الصدارة leaderboard
العرض المقدّم × الارتفاع التكيُّفي بانر تكيُّفي لا ينطبق

لتحديد حجم بانر مخصص، يمكنك ضبط AdSize المفضّل:

final AdSize adSize = AdSize(300, 50);

من خلال استخدام "AdManagerBannerAdListener"، يمكنك الاطّلاع على أحداث مراحل النشاط، مثل عند تحميل إعلان ينفّذ هذا المثال كل طريقة ويسجّل رسالة. إلى وحدة التحكم:

class BannerExampleState extends State<BannerExample> {
  AdManagerBannerAd? _bannerAd;
  bool _isLoaded = false;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = '/6499/example/banner';


  /// Loads a banner ad.
  void loadAd() {
    _bannerAd = AdManagerBannerAd(
      adUnitId: adUnitId,
      request: const AdManagerAdRequest(),
      size: AdSize.banner,
      listener: AdManagerBannerAdListener(
        // Called when an ad is successfully received.
        onAdLoaded: (ad) {
          debugPrint('$ad loaded.');
          setState(() {
            _isLoaded = true;
          });
        },
        // Called when an ad request failed.
        onAdFailedToLoad: (ad, err) {
          debugPrint('AdManagerBannerAd failed to load: $error');
          // Dispose the ad here to free resources.
          ad.dispose();
        },
        // Called when an ad opens an overlay that covers the screen.
        onAdOpened: (Ad ad) {},
        // Called when an ad removes an overlay that covers the screen.
        onAdClosed: (Ad ad) {},
        // Called when an impression occurs on the ad.
        onAdImpression: (Ad ad) {},
      ),
    )..load();
  }
}

عرض إعلان بانر

لعرض AdManagerBannerAd كأداة، يجب إنشاء مثيل لـ AdWidget بإعلان متوافق بعد الاتصال بـ load(). يمكنك إنشاء الأداة قبل جارٍ استدعاء 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 9 أو سابقًا قد يكون أداؤها دون المستوى عند عرض إعلانات بانر مضمّنة ضمن طرق عرض التمرير. نقترح عليك فقط باستخدام هذه الأنواع من إعلانات البانر على نظام التشغيل Android 10 أو الإصدارات الأحدث. إعلانات البانر ذات الموضع الثابت، مثل لأنّ إعلانات البانر الثابتة لا تتأثر ويمكن استخدامها مع الأداء الأمثل لجميع مستويات واجهة برمجة تطبيقات Android.