إعلانات البانر

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

يوضح لك هذا الدليل كيفية دمج إعلانات البانر من AdMob في تطبيق Unity. بالإضافة إلى مقتطفات الرمز والتعليمات، يتضمّن أيضًا معلومات عن تغيير حجم إعلانات البانر بشكلٍ سليم وروابط لموارد إضافية.

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

أكمِل البدء. يجب أن يتم تثبيت المكوّن الإضافي Google Mobile Ads Unity على تطبيق Unity.

إنشاء إعلان بانر

تتمثل الخطوة الأولى لعرض إعلان البانر في إنشاء كائن BannerView في نص برمجي C# مرتبط بـ GameObject.

لتسهيل دمج الإعلانات باستخدام "محرّر Unity"، يمكنك استخدام الإصدار التجريبي من مواضع الإعلانات التجريبية الجديد.

using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;
    ...
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize(initStatus => { });

        this.RequestBanner();
    }

    private void RequestBanner()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);
    }
}

تشتمل أداة إنشاء BannerView على المعلّمات التالية:

  • adUnitId: رقم تعريف الوحدة الإعلانية في AdMob الذي يجب أن يتم تحميل الإعلانات منه بواسطة BannerView.
  • AdSize - حجم إعلان AdMob الذي تريد استخدامه (اطّلع على أحجام إعلانات البانر للحصول على التفاصيل).
  • AdPosition - الموضع الذي يجب وضع إعلان البانر فيه. يُدرج العدّد AdPosition قيم موضع الإعلان الصالحة.

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

(اختياري) موضع الإعلان المخصّص

للتحكّم بشكل أكبر في مواضع إدراج BannerView على الشاشة مقارنةً بما هو مقدّم من خلال قيم AdPosition، يمكنك استخدام BannerViewconstructor الذي يحتوي على الإحداثيَين x وy كمعلَمات:

// Create a 320x50 banner ad at coordinate (0,50) on screen.
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, 0, 50);

سيتم وضع الزاوية العلوية اليسرى من BannerView في القيم "x" و"y" التي يتم تمريرها إلى المُنشئ، حيث يكون الأصل في أعلى يمين الشاشة.

(اختياري) أحجام الإعلانات المخصّصة

إضافةً إلى استخدام ثابت AdSize، يمكنك أيضًا تحديد حجم مخصص لإعلانك:

AdSize adSize = new AdSize(250, 250);
BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);

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

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

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

تحميل إعلان

بعد إنشاء مثيل BannerView، تتمثل الخطوة التالية في تحميل إعلان. تم هذا باستخدام الطريقة loadAd() في صف BannerView. ويتم استخدام وسيطة AdRequest التي تحتفظ بمعلومات وقت التشغيل (مثل معلومات الاستهداف) عن طلب إعلان واحد.

في ما يلي مثال يوضح كيفية تحميل إعلان:

...
    private void RequestBanner()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }
...

أكملت هذه الخطوة. تطبيقك جاهز الآن لعرض إعلانات البانر من AdMob.

أحداث الإعلانات

لمزيد من التخصيص لسلوك إعلانك، يمكنك الانضمام إلى عدد من الأحداث في مراحل نشاط الإعلان: التحميل والفتح والإغلاق، وما إلى ذلك. استمع إلى هذه الأحداث من خلال تسجيل مفوّض لـ EventHandler المناسب، كما هو موضّح أدناه.

...
using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;

    public void Start()
    {
        this.RequestBanner();
    }

    private void RequestBanner()
    {

        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Called when an ad request has successfully loaded.
        this.bannerView.OnAdLoaded += this.HandleOnAdLoaded;
        // Called when an ad request failed to load.
        this.bannerView.OnAdFailedToLoad += this.HandleOnAdFailedToLoad;
        // Called when an ad is clicked.
        this.bannerView.OnAdOpening += this.HandleOnAdOpened;
        // Called when the user returned from the app after an ad click.
        this.bannerView.OnAdClosed += this.HandleOnAdClosed;
        // Called when the ad click caused the user to leave the application.
        this.bannerView.OnAdLeavingApplication += this.HandleOnAdLeavingApplication;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }

    public void HandleOnAdLoaded(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLoaded event received");
    }

    public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                            + args.Message);
    }

    public void HandleOnAdOpened(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdOpened event received");
    }

    public void HandleOnAdClosed(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdClosed event received");
    }

    public void HandleOnAdLeavingApplication(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLeavingApplication event received");
    }
}

يحتوي الحدث OnAdFailedToLoad على وسيطات أحداث خاصة. تجتاز مثيلاً لـ HandleAdFailedToLoadEventArgs مع Message تصف الخطأ:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
  MonoBehaviour.print("Banner failed to load: " + args.Message);
  // Handle the ad failed to load event.
};
حدث الإعلانالوصف
OnAdLoaded يتم تنفيذ الفعالية OnAdLoaded عند الانتهاء من تحميل الإعلان.
OnAdFailedToLoad يتم استدعاء الحدث OnAdFailedToLoad عندما يتعذّر تحميل أحد الإعلانات. تصف المعلَمة Message نوع الإخفاق الذي حدث.
OnAdOpening يتم استدعاء هذه الطريقة عندما ينقر المستخدم على أحد الإعلانات. وإذا كنت تستخدم حزمة إحصاءات لتتبُّع نسب النقر إلى الظهور، يُعدّ هذا مكانًا مناسبًا لتسجيل إحدى هذه الإحصاءات.
OnAdClosed عند رجوع المستخدم إلى التطبيق بعد مشاهدة عنوان URL المقصود للإعلان، يتم استدعاء هذه الطريقة. يمكن للتطبيق استخدامه لاستئناف الأنشطة المعلّقة أو تنفيذ أي عمل آخر ضروري لجعل نفسه جاهزًا للتفاعل.
OnAdLeavingApplication تم استدعاء هذه الطريقة بعد onAdOpened، عندما يفتح المستخدِم نقرةً على تطبيق آخر (مثل "متجر Google Play")، يتم تشغيل التطبيق في الخلفية.

يسرد الجدول أدناه أحجام إعلانات البانر القياسية.

الحجم بالكثافة (WxH) الوصف مدى التوفّر ثابت حجم الإعلان
320 × 50 بانر عادي الهواتف والأجهزة اللوحية BANNER
320×100 بانر كبير الهواتف والأجهزة اللوحية LARGE_BANNER
300 × 250 إعلان مستطيل متوسط مقاس IAB الهواتف والأجهزة اللوحية MEDIUM_RECTANGLE
468×60 بانر IAB بالحجم الكامل الأجهزة اللوحية FULL_BANNER
728×90 قائمة الإعلانات المتصدِّرة في مكتب الإعلانات التفاعلية (IAB) الأجهزة اللوحية LEADERBOARD
العرض المُقدَّم x الارتفاع التكيُّفي إعلان بانر تكيُّفي الهواتف والأجهزة اللوحية لا ينطبق
عرض الشاشة x 32|50|90 إعلان بانر ذكي الهواتف والأجهزة اللوحية SMART_BANNER
اطّلِع على مزيد من المعلومات عن إعلانات البانر التكيُّفية، التي تهدف إلى استبدال إعلانات البانر الذكية.

تنظيم إعلانات البانر

عندما تنتهي من استخدام BannerView، تأكَّد من استدعاء الطريقة Destroy() قبل إفلات المرجع إليها:

bannerView.Destroy();

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

مراجع إضافية

النماذج

قصص النجاح