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

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

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

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

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

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

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

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

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


إعلان بانر 320×50

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

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

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

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

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

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

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

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