بانر

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

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

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

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

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

/21775744923/example/adaptive-banner

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

تحميل إعلان

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

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

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = '/21775744923/example/adaptive-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
320x250 مستطيل متوسط 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 = '/21775744923/example/adaptive-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() الاستدعاء.

هذا كل شيء! تطبيقك جاهز الآن لعرض إعلانات البانر.

قيود الانتقال للأعلى أو للأسفل على الإصدار 9 من Android والإصدارات الأقدم

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