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

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

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

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

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

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

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

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

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


إعلان بانر مقاس 320×50

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

البانر الذكي

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

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

  • ويعمل هذا الإجراء على اختيار الارتفاع الأمثل للجهاز المحدّد، بدلاً من استخدام قياس CONSTANT HEIGHT على الأجهزة المختلفة الأحجام، ما يخفّف من تأثيرات تفتيت الأجهزة.

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

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

  • يجب معرفة عرض مساحة العرض التي سيتم وضع الإعلان فيها، ويجب أن يراعي ذلك عرض الجهاز وأي مناطق آمنة أو مقتطفات قابلة للتطبيق.
  • تأكَّد من أنّ خلفية عرض الإعلان غير شفافة بما يتوافق مع سياسات AdMob عند عرض أحجام إعلانات أصغر حجمًا والتي لا تملأ خانة الإعلان.
  • تأكَّد من استخدام أحدث إصدار من الإضافة "إعلانات Google على الأجهزة الجوّالة" في Unity. لاستخدام التوسّط، استخدِم أحدث إصدار من كلّ محوِّل توسّط.
  • تم تصميم أحجام إعلانات البانر التكيُّفية لتعمل على أفضل نحو عند استخدام العرض المتاح بالكامل. وفي معظم الحالات، سيكون هذا هو العرض الكامل لشاشة الجهاز المستخدَم. احرص على مراعاة المناطق الآمنة السارية.
  • ستحدِّد حزمة "SDK لإعلانات Google على الأجهزة الجوّالة" حجم البانر باستخدام ارتفاع إعلان محسَّن للعرض المحدَّد عند استخدام واجهات برمجة التطبيقات التكيُّفية لحجم الإعلان.
  • هناك ثلاث طرق للحصول على حجم إعلان للإعلانات التكيُّفية: 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.