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

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

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

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

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

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

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

Android

ca-app-pub-3940256099942544/9214589741

iOS

ca-app-pub-3940256099942544/2435281174

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

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

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

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

  1. احصل على عرض شاشة الجهاز بوحدات بكسل مستقلة الكثافة باستخدام 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 والإصدارات الأقدم

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

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

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

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

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

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

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

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

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