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

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

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

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

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

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

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

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

ca-app-pub-3940256099942544/1033173712

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

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

تحميل إعلان

لتحميل إعلان بيني، يمكنك طلب InterstitialAd. ثابتة 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

قصص النجاح

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