الإعلانات البينية هي إعلانات بملء الشاشة تغطي واجهة التطبيق المضيف. وعادةً ما تظهر هذه الإعلانات في نقاط الانتقال العادية في تدفق التطبيقات، مثلاً بين الأنشطة أو أثناء فترة الإيقاف المؤقت بين المستويات في الألعاب. عندما يعرض تطبيق إعلانًا بينيًا، يمكن للمستخدم النقر على الإعلان والمتابعة إلى وجهته أو إغلاقه والعودة إلى التطبيق.
يوضّح هذا الدليل كيفية دمج الإعلانات البينية في تطبيق Flutter.
اختبار الإعلانات دائمًا باستخدام الإعلانات الاختبارية
عند إنشاء تطبيقاتك واختبارها، احرص على استخدام إعلانات اختبارية بدلاً من الإعلانات المباشرة في مرحلة الإنتاج. وقد يؤدي عدم إجراء ذلك إلى تعليق حسابك.
أسهل طريقة لتحميل الإعلانات الاختبارية هي استخدام معرّف وحدة الإعلانات الاختبارية المخصّص للإعلانات البينية:
Android
ca-app-pub-3940256099942544/1033173712
iOS
ca-app-pub-3940256099942544/4411468910
تم إعداد الوحدات الإعلانية الاختبارية لعرض إعلانات اختبارية لكل طلب، ويمكنك استخدامها في تطبيقاتك الخاصة أثناء الترميز والاختبار وتصحيح الأخطاء. ما عليك سوى التأكّد من استبدالها بأرقام تعريف الوحدات الإعلانية الخاصة بك قبل نشر تطبيقك.
تحميل إعلان
يعمل المثال التالي على تحميل إعلان بيني:
class InterstitialExampleState extends State<InterstitialExample> { InterstitialAd? _interstitialAd; // TODO: replace this test ad unit with your own ad unit. final adUnitId = Platform.isAndroid ? 'ca-app-pub-3940256099942544/1033173712' : 'ca-app-pub-3940256099942544/4411468910'; /// Loads an interstitial ad. void loadAd() { InterstitialAd.load( adUnitId: adUnitId, request: const AdRequest(), adLoadCallback: InterstitialAdLoadCallback( // Called when an ad is successfully received. onAdLoaded: (ad) { debugPrint('$ad loaded.'); // Keep a reference to the ad so you can show it later. _interstitialAd = ad; }, // Called when an ad request failed. onAdFailedToLoad: (LoadAdError error) { debugPrint('InterstitialAd failed to load: $error'); }, )); } }
أحداث الإعلانات البينية
من خلال استخدام FullScreenContentCallback
، يمكنك الاستماع إلى أحداث دورة الحياة، مثل وقت عرض الإعلان أو رفضه. اضبط قيمة
InterstitialAd.fullScreenContentCallback
قبل عرض الإعلان لتلقّي
إشعارات بشأن هذه الأحداث. ينفّذ هذا المثال كل طريقة:
class InterstitialExampleState extends State<InterstitialExample> { InterstitialAd? _interstitialAd; // TODO: replace this test ad unit with your own ad unit. final adUnitId = Platform.isAndroid ? 'ca-app-pub-3940256099942544/1033173712' : 'ca-app-pub-3940256099942544/4411468910'; /// Loads an interstitial ad. void loadAd() { InterstitialAd.load( adUnitId: adUnitId, request: const AdRequest(), adLoadCallback: InterstitialAdLoadCallback( // Called when an ad is successfully received. onAdLoaded: (ad) { ad.fullScreenContentCallback = FullScreenContentCallback( // Called when the ad showed the full screen content. onAdShowedFullScreenContent: (ad) {}, // Called when an impression occurs on the ad. onAdImpression: (ad) {}, // Called when the ad failed to show full screen content. onAdFailedToShowFullScreenContent: (ad, err) { // Dispose the ad here to free resources. ad.dispose(); }, // Called when the ad dismissed full screen content. onAdDismissedFullScreenContent: (ad) { // Dispose the ad here to free resources. ad.dispose(); }, // Called when a click is recorded for an ad. onAdClicked: (ad) {}); debugPrint('$ad loaded.'); // Keep a reference to the ad so you can show it later. _interstitialAd = ad; }, // Called when an ad request failed. onAdFailedToLoad: (LoadAdError error) { debugPrint('InterstitialAd failed to load: $error'); }, )); } }
عرض إعلان بيني
يتم عرض InterstitialAd
كـ Overlay
في أعلى كل محتوى التطبيق، ويتم وضعه بشكل ثابت، وبالتالي لا يمكن إضافته إلى
شجرة عناصر واجهة مستخدم Flutter. يمكنك اختيار وقت عرض الإعلان من خلال طلب show()
.
_interstitiaAd.show();
بعد استدعاء show()
، لا يمكن إغلاق Ad
المعروض بهذه الطريقة آليًا، بل يتطلّب ذلك إجراءً من المستخدم. لا يمكن عرض InterstitialAd
إلا مرة واحدة. ستؤدي الطلبات اللاحقة لعرض الإعلانات إلى تشغيل onAdFailedToShowFullScreenContent
.
يجب التخلّص من الإعلان عندما لا يعود هناك حاجة إلى الوصول إليه. أفضل ممارسة لتحديد وقت استدعاء dispose()
هي في عمليات معاودة الاتصال FullScreenContentCallback.onAdDismissedFullScreenContent
وFullScreenContentCallback.onAdFailedToShowFullScreenContent
.
هذا كل شيء! أصبح تطبيقك الآن جاهزًا لعرض الإعلانات البينية.
الخطوات التالية
- اطّلِع على أفضل الممارسات الخاصة بالإعلانات البينية وإرشادات الإعلانات البينية.
- اطّلِع على دراسة حالة حول الإعلانات البينية.
- إذا لم يسبق لك إجراء ذلك، أنشِئ وحدة إعلانية بينية خاصة بك في واجهة مستخدم AdMob.