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

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

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

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

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

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

تم تصميم إعلانات البانر التكيُّفية لتكون بديلاً مريحًا لكل من حجم إعلان البانر 320 × 50 القياسي في المجال وتنسيق البانر الذكي الذي يحل محله.

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

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


إعلان بانر بحجم 320×50

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

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

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

  • فهو يستخدم أي عرض تقدمه بدلاً من فرض العرض على وضع ملء الشاشة، مما يتيح لك حساب المنطقة الآمنة على نظام التشغيل 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/ad-manager/mobile-ads-sdk/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.