الإعلانات البينية

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

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

يوضّح هذا الدليل كيفية دمج الإعلانات البينية في تطبيق Android.

المتطلبات الأساسية

  • حزمة "SDK لإعلانات Google على الأجهزة الجوّالة"، الإصدار 19.7.0 أو إصدار أحدث
  • أكمِل دليل البدء.

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

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

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

ca-app-pub-3940256099942544/1033173712

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

لمزيد من المعلومات عن آلية عمل الإعلانات الاختبارية لحزمة "SDK لإعلانات Google على الأجهزة الجوّالة"، اطّلِع على مقالة الإعلانات الاختبارية.

تحميل إعلان

لتحميل إعلان بيني، يمكنك استدعاء الطريقة InterstitialAd static load() وإدخال InterstitialAdLoadCallback لتلقّي الإعلان الذي تم تحميله أو أي أخطاء محتملة. يُرجى العلم أنّه، مثل وظائف الاستدعاء الأخرى لتحميل التنسيق، InterstitialAdLoadCallback تستفيد LoadAdError من تقديم تفاصيل أخطاء بدقة أعلى.

Java

InterstitialAd.load(
    this,
    AD_UNIT_ID,
    new AdRequest.Builder().build(),
    new InterstitialAdLoadCallback() {
      @Override
      public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
        Log.d(TAG, "Ad was loaded.");
        MyActivity.this.interstitialAd = interstitialAd;
      }

      @Override
      public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        Log.d(TAG, loadAdError.getMessage());
        interstitialAd = null;
    });

Kotlin

InterstitialAd.load(
  this,
  AD_UNIT_ID,
  AdRequest.Builder().build(),
  object : InterstitialAdLoadCallback() {
    override fun onAdLoaded(ad: InterstitialAd) {
      Log.d(TAG, "Ad was loaded.")
      interstitialAd = ad
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      Log.d(TAG, adError.message)
      interstitialAd = null
    }
  },
)

ضبط FullScreenContentCallback

يعالج FullScreenContentCallback الأحداث ذات الصلة بعرض InterstitialAd. قبل عرض InterstitialAd، تأكَّد من ضبط الاستدعاء:

Java

interstitialAd.setFullScreenContentCallback(
    new FullScreenContentCallback() {
      @Override
      public void onAdDismissedFullScreenContent() {
        // Called when fullscreen content is dismissed.
        Log.d(TAG, "The ad was dismissed.");
        // Make sure to set your reference to null so you don't
        // show it a second time.
        MyActivity.this.interstitialAd = null;
      }

      @Override
      public void onAdFailedToShowFullScreenContent(AdError adError) {
        // Called when fullscreen content failed to show.
        Log.d(TAG, "The ad failed to show.");
        // Make sure to set your reference to null so you don't
        // show it a second time.
        MyActivity.this.interstitialAd = null;
      }

      @Override
      public void onAdShowedFullScreenContent() {
        // Called when fullscreen content is shown.
        Log.d(TAG, "The ad was shown.");
      }

      @Override
      public void onAdImpression() {
        // Called when an impression is recorded for an ad.
        Log.d(TAG, "The ad recorded an impression.");
      }

      @Override
      public void onAdClicked() {
        // Called when ad is clicked.
        Log.d(TAG, "The ad was clicked.");
      }
    });

Kotlin

interstitialAd?.fullScreenContentCallback =
  object : FullScreenContentCallback() {
    override fun onAdDismissedFullScreenContent() {
      // Called when fullscreen content is dismissed.
      Log.d(TAG, "Ad was dismissed.")
      // Don't forget to set the ad reference to null so you
      // don't show the ad a second time.
      interstitialAd = null
    }

    override fun onAdFailedToShowFullScreenContent(adError: AdError) {
      // Called when fullscreen content failed to show.
      Log.d(TAG, "Ad failed to show.")
      // Don't forget to set the ad reference to null so you
      // don't show the ad a second time.
      interstitialAd = null
    }

    override fun onAdShowedFullScreenContent() {
      // Called when fullscreen content is shown.
      Log.d(TAG, "Ad showed fullscreen content.")
    }

    override fun onAdImpression() {
      // Called when an impression is recorded for an ad.
      Log.d(TAG, "Ad recorded an impression.")
    }

    override fun onAdClicked() {
      // Called when ad is clicked.
      Log.d(TAG, "Ad was clicked.")
    }
  }

عرض الإعلان

يجب عرض الإعلانات البينية أثناء الفواصل الإعلانية الطبيعية في مسار عرض التطبيق. ومثال جيد على ذلك هو الفواصل بين مستويات اللعبة أو بعد إكمال المستخدم لمهمة معيّنة. لعرض إعلان بيني، استخدِم الطريقة show().

Java

if (interstitialAd != null) {
  interstitialAd.show(this);
} else {
  Log.d(TAG, "The interstitial ad is still loading.");
}

Kotlin

interstitialAd?.show(this)

بعض أفضل الممارسات

ننصحك بالتفكير في ما إذا كانت الإعلانات البينية هي النوع المناسب من الإعلانات لتطبيقك.
تُحقّق الإعلانات البينية أفضل أداء في التطبيقات التي تتضمّن نقاط انتقال طبيعية. ويحدث ذلك عند إكمال مهمة في التطبيق، مثل مشاركة صورة أو إكمال أحد مستويات الالتفاف. احرص على تحديد النقاط التي ستعرض فيها الإعلانات البينية في عملية سير عمل تطبيقك وكيفية احتمال ردّ العميل عليها.
تذكَّر إيقاف الإجراء مؤقتًا عند عرض إعلان بيني.
هناك العديد من أنواع الإعلانات البينية المختلفة: الإعلانات النصية والإعلانات المصوّرة وإعلانات الفيديو وغيرها. من المهم التأكّد من أنّ تطبيقك يوقف أيضًا استخدام بعض الموارد عندما يعرض إعلانًا بينيًا للسماح للإعلان بالاستفادة منها. على سبيل المثال، عند طلب عرض إعلان بيني، احرص على إيقاف أي صوت يصدر من تطبيقك مؤقتًا.
يجب الانتظار لفترة كافية لتحميل المحتوى.
كما أنّه من المهم التأكّد من عرض الإعلانات البينية في وقت مناسب، من المهم أيضًا التأكّد من أنّ المستخدم لا يحتاج إلى الانتظار إلى أن يتم تحميلها. من خلال تحميل الإعلان مسبقًا من خلال الاتصال بـ load() قبل أن تنوي الاتصال بـ show()، يمكنك التأكّد من أنّ تطبيقك يحتوي على إعلان بيني محمَّل بالكامل عند الجاهزية عندما يحين وقت عرض إعلان.
لا تُغرق المستخدم بالإعلانات.
على الرغم من أنّ زيادة معدّل تكرار الإعلانات البينية في تطبيقك قد تبدو كطريقة رائعة لزيادة الأرباح، إلا أنّها يمكن أن تؤدي أيضًا إلى خفض تجربة المستخدم وانخفاض معدّلات النقر إلى الظهور. تأكَّد من عدم انقطاع عملية استخدام المستخدمين لتطبيقك بشكل متكرر إلى درجة عدم تمكّنهم من الاستفادة منه.

رمز مصدر

أمثلة على GitHub

  • مثال على الإعلانات البينية: Java | Kotlin

قصص النجاح

الخطوات التالية