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

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

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

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

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

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

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

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

Android

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

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

قبل تحميل الإعلانات، يجب أن يُعدّ تطبيقك حزمة تطوير البرامج (SDK) لعرض الإعلانات على الأجهزة الجوّالة من خلال استدعاء MobileAds.Initialize(). يجب إجراء ذلك مرة واحدة فقط، ويُفضّل عند تشغيل التطبيق.

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

في حال استخدام التوسّط، انتظِر إلى أن يتم تنفيذ معاودة الاتصال قبل تحميل الإعلانات، لأنّ ذلك سيضمن تهيئة جميع محوّلات التوسّط.

تحميل الإعلان البيني

يتم تحميل إعلان بيني باستخدام الطريقة الثابتة Load() في الفئة InterstitialAd. تتطلّب طريقة التحميل رقم تعريف وحدة إعلانية وكائن AdRequest ومعالج إكمال يتم استدعاؤه عند نجاح تحميل الإعلان أو تعذّره. يتم توفير الكائن InterstitialAd الذي تم تحميله كمعلَمة في معالج الإكمال. يحمّل المثال التالي InterstitialAd:

// Create our request used to load the ad.
var adRequest = new AdRequest();

// Send the request to load the ad.
InterstitialAd.Load("AD_UNIT_ID", adRequest, (InterstitialAd ad, LoadAdError error) =>
{
    if (error != null)
    {
        // The ad failed to load.
        return;
    }
    // The ad loaded successfully.
});

استبدِل AD_UNIT_ID برقم تعريف وحدتك الإعلانية.

عرض الإعلان البيني

لعرض إعلان بيني تم تحميله، استدعِ طريقة Show() على مثيل InterstitialAd. قد يتم عرض الإعلانات مرة واحدة لكل عملية تحميل. استخدِم الطريقة CanShowAd() للتأكّد من أنّ الإعلان جاهز للعرض.

if (interstitialAd != null && interstitialAd.CanShowAd()) { interstitialAd.Show(); }

الاستماع إلى أحداث الإعلانات البينية

لتخصيص سلوك إعلانك بشكل أكبر، يمكنك ربط عدد من الأحداث في دورة حياة الإعلان. يستمع المثال التالي إلى أحداث الإعلانات:

interstitialAd.OnAdPaid += (AdValue adValue) => { // يتم تفعيل هذا الحدث عندما يُقدّر أنّ الإعلان قد حقّق أرباحًا. }; interstitialAd.OnAdImpressionRecorded += () => { // Raised when an impression is recorded for an ad. }; interstitialAd.OnAdClicked += () => { // Raised when a click is recorded for an ad. }; interstitialAd.OnAdFullScreenContentOpened += () => { // Raised when the ad opened full screen content. }; interstitialAd.OnAdFullScreenContentClosed += () => { // Raised when the ad closed full screen content. }; interstitialAd.OnAdFullScreenContentFailed += (AdError error) => { // Raised when the ad failed to open full screen content. };

تنظيف الإعلان البيني

عند الانتهاء من استخدام InterstitialAd، احرص على استدعاء الطريقة Destroy() قبل إسقاط مرجعك إليها:

if (interstitialAd != null) { interstitialAd.Destroy(); }

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

التحميل المُسبَق للإعلان البيني التالي

الإعلانات البينية هي عنصر يُستخدَم لمرة واحدة. وهذا يعني أنّه بعد عرض إعلان بيني، لا يمكن استخدام العنصر مرة أخرى. لطلب إعلان بيني آخر، أنشئ عنصر InterstitialAd جديدًا.

لإعداد إعلان بيني لفرصة الظهور التالية، يمكنك التحميل المُسبَق للإعلان البيني عند ظهور حدث الإعلان OnAdFullScreenContentClosed أو OnAdFullScreenContentFailed.

interstitialAd.OnAdFullScreenContentClosed += () =>
{
    // Reload the ad so that we can show another as soon as possible.
    var adRequest = new AdRequest();
    InterstitialAd.Load("AD_UNIT_ID", adRequest, (InterstitialAd ad, LoadAdError error) =>
    {
        // Handle ad loading here.
    });
};

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

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

مراجع إضافية

* مثال على حالة استخدام