إعلان بيني
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
اختيار النظام الأساسي:
Android
iOS
Unity
Flutter
الإعلانات البينية هي إعلانات بملء الشاشة تغطي واجهة التطبيق المضيف.
وعادةً ما تظهر هذه الإعلانات في نقاط الانتقال العادية في تدفق التطبيقات،
مثلاً بين الأنشطة أو أثناء فترة الإيقاف المؤقت بين المستويات في الألعاب. عندما يعرض تطبيق إعلانًا بينيًا، يمكن للمستخدم النقر على الإعلان والمتابعة إلى وجهته أو إغلاقه والعودة إلى التطبيق.
يوضّح هذا الدليل كيفية دمج الإعلانات البينية في تطبيق Flutter.
اختبار الإعلانات دائمًا باستخدام الإعلانات الاختبارية
عند إنشاء تطبيقاتك واختبارها، احرص على استخدام إعلانات اختبارية بدلاً من الإعلانات المباشرة في مرحلة الإنتاج. وقد يؤدي عدم إجراء ذلك إلى تعليق حسابك.
أسهل طريقة لتحميل الإعلانات الاختبارية هي استخدام معرّف وحدة الإعلانات الاختبارية المخصّص للإعلانات البينية:
Android
ca-app-pub-3940256099942544/1033173712
iOS
ca-app-pub-3940256099942544/4411468910
تم إعداد الوحدات الإعلانية الاختبارية لعرض إعلانات اختبارية لكل طلب، ويمكنك استخدامها في تطبيقاتك الخاصة أثناء الترميز والاختبار وتصحيح الأخطاء.
ما عليك سوى التأكّد من استبدالها بأرقام تعريف الوحدات الإعلانية الخاصة بك قبل نشر تطبيقك.
تحميل إعلان
يعمل المثال التالي على تحميل إعلان بيني:
استبدِل _adUnitId برقم تعريف وحدتك الإعلانية.
أحداث الإعلانات البينية
من خلال استخدام FullScreenContentCallback
، يمكنك الاستماع إلى أحداث دورة الحياة، مثل وقت عرض الإعلان أو رفضه. اضبط قيمة
InterstitialAd.fullScreenContentCallback
قبل عرض الإعلان لتلقّي
إشعارات بشأن هذه الأحداث. ينفّذ هذا المثال كل طريقة:
ad.fullScreenContentCallback = FullScreenContentCallback(
onAdShowedFullScreenContent: (ad) {
// Called when the ad showed the full screen content.
debugPrint('Ad showed full screen content.');
},
onAdFailedToShowFullScreenContent: (ad, err) {
// Called when the ad failed to show full screen content.
debugPrint('Ad failed to show full screen content with error: $err');
// Dispose the ad here to free resources.
ad.dispose();
},
onAdDismissedFullScreenContent: (ad) {
// Called when the ad dismissed full screen content.
debugPrint('Ad was dismissed.');
// Dispose the ad here to free resources.
ad.dispose();
},
onAdImpression: (ad) {
// Called when an impression occurs on the ad.
debugPrint('Ad recorded an impression.');
},
onAdClicked: (ad) {
// Called when a click is recorded for an ad.
debugPrint('Ad was clicked.');
},
);
عرض إعلان بيني
يتم عرض InterstitialAd
كـ Overlay
في أعلى كل محتوى التطبيق، ويتم وضعه بشكل ثابت، وبالتالي لا يمكن إضافته إلى
شجرة عناصر واجهة مستخدم Flutter. يمكنك اختيار وقت عرض الإعلان من خلال طلب show()
.
_interstitialAd?.show();
بعد استدعاء show()
، لا يمكن إغلاق Ad
المعروض بهذه الطريقة آليًا، بل يتطلّب ذلك إجراءً من المستخدم. لا يمكن عرض InterstitialAd
إلا مرة واحدة. ستؤدي الطلبات اللاحقة لعرض الإعلانات إلى تشغيل onAdFailedToShowFullScreenContent
.
يجب التخلّص من الإعلان عندما لا يعود هناك حاجة إلى الوصول إليه. أفضل ممارسة لتحديد وقت استدعاء dispose()
هي في عمليات معاودة الاتصال FullScreenContentCallback.onAdDismissedFullScreenContent
وFullScreenContentCallback.onAdFailedToShowFullScreenContent
.
هذا كل شيء! أصبح تطبيقك الآن جاهزًا لعرض الإعلانات البينية.
الخطوات التالية
مثال كامل على GitHub
الإعلانات البينية
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-08-22 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-08-22 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eInterstitial ads are full-screen ads displayed at natural transition points in an app, giving users the choice to interact or close them.\u003c/p\u003e\n"],["\u003cp\u003eThis guide provides instructions on integrating interstitial ads into Flutter apps using the google_mobile_ads package.\u003c/p\u003e\n"],["\u003cp\u003eAlways test with dedicated test ad unit IDs provided to avoid account suspension before publishing your app with your own ad unit IDs.\u003c/p\u003e\n"],["\u003cp\u003eUtilize \u003ccode\u003eFullScreenContentCallback\u003c/code\u003e to manage ad lifecycle events like display, dismissal, and errors and to properly dispose of the ad.\u003c/p\u003e\n"],["\u003cp\u003eDisplay the loaded interstitial ad by calling \u003ccode\u003eshow()\u003c/code\u003e, keeping in mind that it can only be shown once and dismissed by user interaction.\u003c/p\u003e\n"]]],["Interstitial ads are full-screen ads shown at natural app transitions. To integrate them into a Flutter app, use test ad unit IDs (Android: `ca-app-pub-3940256099942544/1033173712`, iOS: `ca-app-pub-3940256099942544/4411468910`) during development. Load an ad using `InterstitialAd.load`, handling success or failure. Utilize `FullScreenContentCallback` to manage ad lifecycle events like showing or dismissal. Display the ad with `show()`, noting it's a one-time action. Finally, dispose of the ad in `onAdDismissedFullScreenContent` and `onAdFailedToShowFullScreenContent`.\n"],null,["Select platform: [Android](/admob/android/interstitial \"View this page for the Android platform docs.\") [iOS](/admob/ios/interstitial \"View this page for the iOS platform docs.\") [Unity](/admob/unity/interstitial \"View this page for the Unity platform docs.\") [Flutter](/admob/flutter/interstitial \"View this page for the Flutter platform docs.\")\n\n\u003cbr /\u003e\n\nInterstitial ads are full-screen ads that cover the interface of their host app.\nThey're typically displayed at natural transition points in the flow of an app,\nsuch as between activities or during the pause between levels in a game. When an\napp shows an interstitial ad, the user has the choice to either tap on the ad\nand continue to its destination or close it and return to the app.\n\nThis guide explains how to integrate interstitial ads into a Flutter app.\n\nAlways test with test ads\n\nWhen building and testing your apps, make sure you use test ads rather than\nlive, production ads. Failure to do so can lead to suspension of your account.\n\nThe easiest way to load test ads is to use our dedicated test ad unit ID for\ninterstitials: \n\nAndroid \n\n ca-app-pub-3940256099942544/1033173712\n\niOS \n\n ca-app-pub-3940256099942544/4411468910\n\nThe test ad units are configured to return test ads for every request, and\nyou're free to use them in your own apps while coding, testing, and debugging.\nJust make sure you replace them with your own ad unit IDs before publishing your\napp.\n\nLoad an ad\n\nThe following example loads an interstitial ad: \n\n```gdscript\nclass InterstitialExampleState extends State\u003cInterstitialExample\u003e {\n InterstitialAd? _interstitialAd;\n\n // TODO: replace this test ad unit with your own ad unit.\n final adUnitId = Platform.isAndroid\n ? 'ca-app-pub-3940256099942544/1033173712'\n : 'ca-app-pub-3940256099942544/4411468910';\n\n /// Loads an interstitial ad.\n void loadAd() {\n InterstitialAd.load(\n adUnitId: adUnitId,\n request: const AdRequest(),\n adLoadCallback: InterstitialAdLoadCallback(\n // Called when an ad is successfully received.\n onAdLoaded: (ad) {\n debugPrint('$ad loaded.');\n // Keep a reference to the ad so you can show it later.\n _interstitialAd = ad;\n },\n // Called when an ad request failed.\n onAdFailedToLoad: (LoadAdError error) {\n debugPrint('InterstitialAd failed to load: $error');\n },\n ));\n }\n}\n```\n\nInterstitial ad events\n\nThrough the use of `FullScreenContentCallback`, you can listen for lifecycle\nevents, such as when the ad is shown or dismissed. Set\n`InterstitialAd.fullScreenContentCallback` before showing the ad to receive\nnotifications for these events. This example implements each method: \n\n```gdscript\nclass InterstitialExampleState extends State\u003cInterstitialExample\u003e {\n InterstitialAd? _interstitialAd;\n\n // TODO: replace this test ad unit with your own ad unit.\n final adUnitId = Platform.isAndroid\n ? 'ca-app-pub-3940256099942544/1033173712'\n : 'ca-app-pub-3940256099942544/4411468910';\n\n /// Loads an interstitial ad.\n void loadAd() {\n InterstitialAd.load(\n adUnitId: adUnitId,\n request: const AdRequest(),\n adLoadCallback: InterstitialAdLoadCallback(\n // Called when an ad is successfully received.\n onAdLoaded: (ad) {\n ad.fullScreenContentCallback = FullScreenContentCallback(\n // Called when the ad showed the full screen content.\n onAdShowedFullScreenContent: (ad) {},\n // Called when an impression occurs on the ad.\n onAdImpression: (ad) {},\n // Called when the ad failed to show full screen content.\n onAdFailedToShowFullScreenContent: (ad, err) {\n // Dispose the ad here to free resources.\n ad.dispose();\n },\n // Called when the ad dismissed full screen content.\n onAdDismissedFullScreenContent: (ad) {\n // Dispose the ad here to free resources.\n ad.dispose();\n },\n // Called when a click is recorded for an ad.\n onAdClicked: (ad) {});\n\n debugPrint('$ad loaded.');\n // Keep a reference to the ad so you can show it later.\n _interstitialAd = ad;\n },\n // Called when an ad request failed.\n onAdFailedToLoad: (LoadAdError error) {\n debugPrint('InterstitialAd failed to load: $error');\n },\n ));\n }\n}\n```\n\nDisplay an interstitial ad\n\nAn `InterstitialAd` is displayed as an [`Overlay`](//api.flutter.dev/flutter/widgets/Overlay-class.html)\non top of all app content and is statically placed; thus, it can't be added to\nthe Flutter widget tree. You can choose when to show the ad by calling `show()`. \n\n```scdoc\n_interstitiaAd.show();\n```\n\nOnce `show()` is called, an `Ad` displayed this way can't be dismissed\nprogrammatically and requires user input. An `InterstitialAd` can only be shown\nonce. Subsequent calls to show will trigger `onAdFailedToShowFullScreenContent`.\n\nAn ad must be disposed when access to it is no longer needed. The best practice\nfor when to call `dispose()` is in the\n`FullScreenContentCallback.onAdDismissedFullScreenContent` and\n`FullScreenContentCallback.onAdFailedToShowFullScreenContent` callbacks.\n\nThat's it! Your app is now ready to display interstitial ads.\n\nNext steps\n\n- See [Interstitial best\n practices](//www.youtube.com/watch?v=r2RgFD3Apyo&index=5&list=PLOU2XLYxmsIKX0pUJV3uqp6N3NeHwHh0c) and [interstitial ad guidance](//support.google.com/admob/answer/6066980).\n- Check out an [Interstitial ads case\n study](//admob.google.com/home/resources/freaking-math-powers-revenue-increase-with-google-admob-support/).\n- If you haven't already, create your own interstitial ad unit in the [AdMob\n UI](//apps.admob.com/).\n\nComplete example on GitHub\n\n[Interstitial](//github.com/googleads/googleads-mobile-flutter/tree/main/samples/admob/interstitial_example)"]]