إعلانات البانر التكيُّفية الثابتة

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

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

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

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

حالات استخدام إعلانات البانر التكيُّفية

تم تصميم إعلانات البانر التكيُّفية لتكون بديلاً بسهولة

تُستخدم أحجام البانر هذه عادةً كإعلانات بانر ثابتة، ويتم تأمينها عادةً في أعلى الشاشة أو أسفلها.

بالنسبة إلى إعلانات البانر الثابتة هذه، ستكون نسبة العرض إلى الارتفاع عند استخدام إعلانات البانر التكيُّفية مشابهة لنسبة الإعلان العادي مقاس 320×50، كما يتضّح في الأمثلة الثلاثة أدناه:


بانر 320x50

إعلان البانر التكيُّفي

إعلان بانر ذكي

يستفيد إعلان البانر التكيُّفي من حجم الشاشة المتاح بشكلٍ أفضل. بالإضافة إلى ذلك، مقارنةً بإعلان البانر الذكي، يُعد إعلان البانر التكيّفي خيارًا أفضل للأسباب التالية:

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

  • يحدد الارتفاع الأمثل للجهاز المحدد، بدلاً من وجود ارتفاع ثابت عبر الأجهزة ذات الأحجام المختلفة، للتخفيف من آثار تقسيم الأجهزة.

ملاحظات التنفيذ

عند تنفيذ إعلانات البانر التكيُّفية في تطبيقك، يُرجى مراعاة النقاط التالية:

  • يجب أن تعرف عرض العرض الذي سيتم وضع الإعلان فيه، ويجب أن يأخذ ذلك في الاعتبار عرض الجهاز وأي مناطق آمنة أو قطع يمكن تطبيقها.
  • تأكَّد من أنّ خلفية عرض الإعلان معتمة بما يتوافق مع سياسات AdMob عندما يتم عرض أحجام إعلانات أصغر لا تملأ الخانة الإعلانية.
  • تأكّد من استخدام أحدث إصدار من المكوّن الإضافي Unity لإعلانات Google على الأجهزة الجوّالة. بالنسبة إلى التوسّط، استخدِم أحدث إصدار من كل محوِّل توسّط.
  • تم تصميم أحجام البانر التكيُّفية لتعمل على أفضل وجه عند استخدام العرض الكامل المتاح. في معظم الحالات، سيكون هذا هو العرض الكامل لشاشة الجهاز المستخدم. تأكَّد من مراعاة المناطق الآمنة السارية.
  • ستعمل حزمة "SDK لإعلانات Google على الأجهزة الجوّالة" على تحديد حجم إعلان البانر بارتفاع إعلان محسّن للعرض المحدّد عند استخدام واجهات برمجة تطبيقات AdSize التكيُّفية.
  • تتوفّر ثلاث طرق للحصول على حجم إعلان تكيّفي: AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth للصورة الأفقية، وAdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth للوضع العمودي، وAdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth للاتجاه الحالي في وقت التنفيذ.
  • وسيكون الحجم الذي يظهر بعرض معيّن على جهاز معيّن هو نفسه دائمًا، وبالتالي بعد اختبار التنسيق على جهاز معيّن، يمكنك التأكد من أنّ حجم الإعلان لن يتغيّر.
  • لا يكون ارتفاع إعلان البانر الثابت أكبر من القيمة الأقل من ارتفاع 15% في ارتفاع الجهاز أو عن 90 بكسل مستقل للكثافة، ولا يقلّ أبدًا عن 50 وحدة بكسل مستقلة الكثافة.
  • بالنسبة إلى إعلانات البانر ذات العرض الكامل، يمكنك استخدام العلامة AdSize.FullWidth بدلاً من توفير عرض محدَّد.

التشغيل السريع

اتّبِع الخطوات التالية لتنفيذ إعلان بانر ثابت تكيُّفي بسيط.

  1. احصل على حجم إعلان بانر تكيُّفي. سيُستخدم الحجم الذي تحصل عليه لطلب إعلان البانر التكيّفي. للحصول على حجم الإعلان التكيُّفي، يُرجى التأكُّد ممّا يلي:
    1. اطّلِع على عرض الجهاز المستخدَم بوحدات بكسل مستقلة الكثافة، أو اضبط عرضك الخاص إذا لم تكن تريد استخدام عرض الشاشة الكامل. بما أنّ واجهات برمجة تطبيقات Unity مثل Screen.width تعرض وحدات بكسل مطلقة، يجب التقسيم حسب مقياس الجهاز (يمكن استرداده من MobileAds.Utils.GetDeviceScale()).
    2. استخدِم العلامة AdSize.FullWidth لإعلانات البانر ذات العرض الكامل.
    3. استخدِم الطرق الثابتة المناسبة لفئة حجم الإعلان، مثل AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)للحصول على كائن AdSize تكيُّفي للاتجاه الحالي.
  2. أنشئ عنصر BannerView يتضمّن رقم تعريف الوحدة الإعلانية والحجم المتكيف والموضع الملائم لإعلانك.
  3. أنشئ كائن طلب إعلان وحمِّل البانر باستخدام طريقة LoadAd() في طريقة العرض المعدّة للإعلان، تمامًا كما تفعل مع طلب بانر عادي.

مثال الرمز البرمجي

في ما يلي مثال لنص برمجي يتم من خلاله تحميل إعلان بانر تكيُّفي وإعادة تحميله ليناسب عرض الشاشة، مع مراعاة المنطقة الآمنة:

using UnityEngine;
using System;
using GoogleMobileAds.Api;

public class AdaptiveBannerSample : MonoBehaviour
{
    private BannerView _bannerView;

    // Use this for initialization
    void Start()
    {
        // Set your test devices.
        // https://developers.google.com/admob/unity/test-ads
        RequestConfiguration requestConfiguration = new RequestConfiguration
        {
            TestDeviceIds = new List<string>
            {
                AdRequest.TestDeviceSimulator,
                // Add your test device IDs (replace with your own device IDs).
                #if UNITY_IPHONE
                "96e23e80653bb28980d3f40beb58915c"
                #elif UNITY_ANDROID
                "75EF8D155528C04DACBBA6F36F433035"
                #endif
            }
        };
        MobileAds.SetRequestConfiguration(requestConfiguration);

        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus status) => 
        {
            RequestBanner();
        });
    }

    public void OnGUI()
    {
        GUI.skin.label.fontSize = 60;
        Rect textOutputRect = new Rect(
          0.15f * Screen.width,
          0.25f * Screen.height,
          0.7f * Screen.width,
          0.3f * Screen.height);
        GUI.Label(textOutputRect, "Adaptive Banner Example");
    }

    private void RequestBanner()
    {
        // These ad units are configured to always serve test ads.
        #if UNITY_EDITOR
            string adUnitId = "unused";
        #elif UNITY_ANDROID
            string adUnitId = "ca-app-pub-3212738706492790/6113697308";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3212738706492790/5381898163";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Clean up banner ad before creating a new one.
        if (_bannerView != null)
        {
            _bannerView.Destroy();
        }

        AdSize adaptiveSize =
                AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);

        _bannerView = new BannerView(adUnitId, adaptiveSize, AdPosition.Bottom);

        // Register for ad events.
        _bannerView.OnBannerAdLoaded += OnBannerAdLoaded;
        _bannerView.OnBannerAdLoadFailed += OnBannerAdLoadFailed;

        AdRequest adRequest = new AdRequest();

        // Load a banner ad.
        _bannerView.LoadAd(adRequest);
    }

    #region Banner callback handlers

    private void OnBannerAdLoaded(object sender, EventArgs args)
    {
        Debug.Log("Banner view loaded an ad with response : "
                 + _bannerView.GetResponseInfo());
        Debug.Log("Ad Height: {0}, width: {1}",
                _bannerView.GetHeightInPixels(),
                _bannerView.GetWidthInPixels());
    }

    private void OnBannerAdLoadFailed(LoadAdError error)
    {
        Debug.LogError("Banner view failed to load an ad with error : "
                + error);
    }

    #endregion
}

تُستخدم هنا الدالة AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidthللحصول على حجم إعلان البانر في موضع ثابت لاتجاه الواجهة الحالية. لتحميل بانر ثابت مسبقًا في اتجاه معيّن، استخدِم الدالة ذات الصلة من AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth وAdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth.