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

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

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

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

"إعلانات البانر التكيُّفية الثابتة" هي إعلانات ذات نسبة عرض إلى ارتفاع ثابتة وليست إعلانات ذات حجم ثابت. نسبة العرض إلى الارتفاع مشابهة لـ 320×50. بعد تحديد العرض الكامل المتاح، يعرض 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().

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

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

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

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

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

مزيد من المعلومات عن أنواع البانرات الأخرى

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

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

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

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

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