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

اختيار النظام الأساسي: Android iOS Unity Flutter Android (الإصدار القديم)

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

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

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

قبل المتابعة، عليك إعداد Google Mobile Ads Unity Plugin.

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

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

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

/21775744923/example/interstitial

إعداد Google Mobile Ads Unity Plugin

قبل تحميل الإعلانات، يجب أن يبدأ تطبيقك Google Mobile Ads Unity Plugin من خلال استدعاء MobileAds.Initialize(). يجب إجراء ذلك مرة واحدة فقط، ويُفضّل عند تشغيل التطبيق.

using GoogleMobileAds;
using GoogleMobileAds.Api;

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

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

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

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

// 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() في مثيل AdManagerInterstitialAd. قد يتم عرض الإعلانات مرة واحدة لكل عملية تحميل. استخدِم الطريقة CanShowAd() للتأكّد من أنّ الإعلان جاهز للعرض.

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

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

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

interstitialAd.OnAdPaid += (AdValue adValue) =>
{
    // Raised when the ad is estimated to have earned money.
};
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.
};

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

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

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

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

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

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

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

مراجع إضافية