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

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

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

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

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

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

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

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

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

Android

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

إعداد 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. تتطلّب طريقة التحميل رقم تعريف وحدة إعلانية وكائن 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) =>
{
    // 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.
};

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

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

مراجع إضافية

  • مثال HelloWorld: هو عملية تنفيذ بسيطة لجميع أشكال الإعلانات.
* نموذج لحالة استخدام