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

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

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

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

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

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

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

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

Android

ca-app-pub-3940256099942544/9214589741

iOS

ca-app-pub-3940256099942544/2435281174

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

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

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

  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;
  }

  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 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.");
},

إعادة تحميل إعلان

إذا ضبطت وحدتك الإعلانية على إعادة التحميل، لن تحتاج إلى طلب إعلان آخر عندما يتعذّر تحميل الإعلان. 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

يمكنك الاطّلاع على مثال كامل لعملية دمج إعلانات البانر التي تم تناولها في هذه الصفحة في banner_example.

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

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

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

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

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

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