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

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

يشرح هذا الدليل كيفية دمج الإعلانات البينية في نظام Android. التطبيق.

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

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

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

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

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

ca-app-pub-3940256099942544/1033173712

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

لمزيد من المعلومات عن آلية عمل الإعلانات الاختبارية لحزمة تطوير البرامج (SDK) لعرض الإعلانات للأجهزة الجوّالة، يُرجى الاطّلاع على اختبار الإعلانات:

تحميل إعلان

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

Java

import com.google.android.gms.ads.interstitial.InterstitialAd;
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback;

public class MainActivity extends Activity {

  private InterstitialAd mInterstitialAd;
  private static final String TAG = "MainActivity";

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    AdRequest adRequest = new AdRequest.Builder().build();

    InterstitialAd.load(this,"ca-app-pub-3940256099942544/1033173712", adRequest,
        new InterstitialAdLoadCallback() {
      @Override
      public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
        // The mInterstitialAd reference will be null until
        // an ad is loaded.
        mInterstitialAd = interstitialAd;
        Log.i(TAG, "onAdLoaded");
      }

      @Override
      public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        // Handle the error
        Log.d(TAG, loadAdError.toString());
        mInterstitialAd = null;
      }
    });
  }
}

Kotlin

import com.google.android.gms.ads.interstitial.InterstitialAd;
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback;

class MainActivity : AppCompatActivity() {

  private var mInterstitialAd: InterstitialAd? = null
  private final val TAG = "MainActivity"

    override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      setContentView(R.layout.activity_main)

      val adRequest = AdRequest.Builder().build()

      InterstitialAd.load(this,"ca-app-pub-3940256099942544/1033173712", adRequest, object : InterstitialAdLoadCallback() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
          Log.d(TAG, adError?.toString())
          mInterstitialAd = null
        }

        override fun onAdLoaded(interstitialAd: InterstitialAd) {
          Log.d(TAG, 'Ad was loaded.')
          mInterstitialAd = interstitialAd
        }
      })
    }
}

إعداد ميزة FullscreenContentCallback

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

Java

mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){
  @Override
  public void onAdClicked() {
    // Called when a click is recorded for an ad.
    Log.d(TAG, "Ad was clicked.");
  }

  @Override
  public void onAdDismissedFullScreenContent() {
    // Called when ad is dismissed.
    // Set the ad reference to null so you don't show the ad a second time.
    Log.d(TAG, "Ad dismissed fullscreen content.");
    mInterstitialAd = null;
  }

  @Override
  public void onAdFailedToShowFullScreenContent(AdError adError) {
    // Called when ad fails to show.
    Log.e(TAG, "Ad failed to show fullscreen content.");
    mInterstitialAd = null;
  }

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

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

Kotlin

mInterstitialAd?.fullScreenContentCallback = object: FullScreenContentCallback() {
  override fun onAdClicked() {
    // Called when a click is recorded for an ad.
    Log.d(TAG, "Ad was clicked.")
  }

  override fun onAdDismissedFullScreenContent() {
    // Called when ad is dismissed.
    Log.d(TAG, "Ad dismissed fullscreen content.")
    mInterstitialAd = null
  }

  override fun onAdFailedToShowFullScreenContent(adError: AdError?) {
    // Called when ad fails to show.
    Log.e(TAG, "Ad failed to show fullscreen content.")
    mInterstitialAd = null
  }

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

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

عرض الإعلان

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

Java

if (mInterstitialAd != null) {
  mInterstitialAd.show(MyActivity.this);
} else {
  Log.d("TAG", "The interstitial ad wasn't ready yet.");
}

Kotlin

if (mInterstitialAd != null) {
  mInterstitialAd?.show(this)
} else {
  Log.d("TAG", "The interstitial ad wasn't ready yet.")
}

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

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

رمز مصدر

أمثلة على GitHub

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

قصص النجاح

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