إعداد إعلانات البانر

اختيار النظام الأساسي: Android iOS Unity Flutter Android (الإصدار القديم)

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

يساعدك هذا الدليل في بدء استخدام إعلانات البانر التكيُّفية الثابتة. تعمل "إعلانات البانر التكيّفية الثابتة" على تحسين حجم الإعلان لكل جهاز باستخدام عرض الإعلان الذي تحدّده.

"إعلانات البانر التكيّفية الثابتة" هي إعلانات بنسبة عرض إلى ارتفاع ثابتة بدلاً من إعلانات الحجم الثابت. نسبة العرض إلى الارتفاع مشابهة لنسبة 320x50. بعد تحديد العرض الكامل المتاح، تعرض Google Mobile Ads Flutter Plugin إعلانًا بارتفاع مثالي لهذا العرض. يظل الارتفاع الأمثل للإعلان ثابتًا في مختلف طلبات الإعلانات، ويبقى المحتوى المحيط بالإعلان في مكانه عند إعادة تحميل الإعلان.

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

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

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

Android

ca-app-pub-3940256099942544/9214589741

iOS

ca-app-pub-3940256099942544/2435281174

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

الحصول على حجم الإعلان

توفّر "إعلانات البانر التكيّفية" الكبيرة تنسيقًا أكبر مصمّمًا للتنسيقات غير القابلة للتمرير. مقارنةً بـ "إعلانات البانر التكيّفية الثابتة" العادية، تسمح هذه الإعلانات بحدّ أقصى أكبر للارتفاع (يصل إلى% 20 من ارتفاع الشاشة، بين 50 و150 بكسل مستقل الكثافة). تم تحسين هذه المساحة المتزايدة لتناسب محتوى الفيديو.

لطلب إعلان بانر بالحجم المناسب، اتّبِع الخطوات التالية:

  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 _loadAd() 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 AdRequest(),
      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 برقم تعريف وحدتك الإعلانية.

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

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 تحترم أي معدّل إعادة تحميل حدّدته في واجهة مستخدم AdMob. إذا لم تفعّل إعادة التحميل، أرسِل طلبًا جديدًا. لمزيد من التفاصيل حول إعادة تحميل الوحدات الإعلانية، مثل ضبط معدّل إعادة التحميل، يُرجى الاطّلاع على ضبط خيار إعادة التحميل التلقائية لإعلانات البانر.

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

لعرض BannerAd كتطبيق مصغّر، يجب إنشاء مثيل AdWidget مع إعلان متوافق بعد استدعاء load(). يمكنك إنشاء التطبيق المصغّر قبل استدعاء load()، ولكن يجب استدعاء load() قبل إضافته إلى شجرة التطبيق المصغّر.

يرث AdWidget من فئة Widget في Flutter ويمكن استخدامه مثل أي عنصر واجهة مستخدم آخر. على أجهزة iOS، تأكَّد من وضع التطبيق المصغّر في تطبيق مصغّر يتضمّن عرضًا وارتفاعًا محدّدَين. وفي حال عدم توفّرها، قد لا يتم عرض إعلانك. يمكن وضع BannerAd في حاوية بحجم مطابق لحجم الإعلان:

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 من شجرة عناصر واجهة المستخدم أو في دالة معاودة الاتصال BannerAdListener.onAdFailedToLoad().

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

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

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

مثال كامل على GitHub

للاطّلاع على المثال الكامل، يُرجى الانتقال إلى عرض توضيحي لواجهة برمجة التطبيقات.

التعرّف على أنواع أخرى من البانرات

تعرَّف على أنواع البانرات الأخرى المحدّدة في هذا القسم لتطبيق Flutter.

إعلانات البانر التكيّفية المضمّنة

تتميّز "إعلانات البانر التكيُّفية المضمّنة" بارتفاع متغيّر، وهي أكبر وأطول مقارنةً بـ "إعلانات البانر التكيُّفية الثابتة". ننصح باستخدام "إعلانات البانر التكيُّفية المضمّنة" بدلاً من "إعلانات البانر التكيُّفية الثابتة" في التطبيقات التي تعرض إعلانات البانر في محتوى قابل للتمرير. لمزيد من التفاصيل، اطّلِع على إعلانات البانر التكيُّفية المضمّنة.

إعلانات البانر القابلة للتصغير

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