بنرهای تطبیقی ​​لنگردار

بنرهای تطبیقی ​​نسل بعدی تبلیغات ریسپانسیو هستند که با بهینه سازی اندازه تبلیغات برای هر دستگاه، عملکرد را به حداکثر می‌رسانند. بنرهای تطبیقی ​​با بهبود بنرهای هوشمند، که فقط از ارتفاعات ثابت پشتیبانی می‌کنند، به شما امکان می‌دهند عرض آگهی را مشخص کنید و از آن برای تعیین اندازه بهینه آگهی استفاده کنید.

برای انتخاب بهترین اندازه تبلیغات، بنرهای تطبیقی ​​به جای ارتفاع ثابت از نسبت ابعاد ثابت استفاده می کنند. این منجر به تبلیغات بنری می شود که بخش ثابت تری از صفحه نمایش را در سراسر دستگاه ها اشغال می کند و فرصت هایی را برای بهبود عملکرد فراهم می کند.

هنگام کار با بنرهای تطبیقی، توجه داشته باشید که آنها همیشه یک اندازه ثابت برای یک دستگاه و عرض معین برمی گردند. هنگامی که طرح‌بندی خود را روی یک دستگاه مشخص آزمایش کردید، می‌توانید مطمئن باشید که اندازه تبلیغ تغییر نخواهد کرد. با این حال، اندازه خلاقیت بنر ممکن است در دستگاه‌های مختلف تغییر کند. در نتیجه، توصیه می‌کنیم که طرح‌بندی شما واریانس ارتفاع آگهی را در نظر بگیرد. در موارد نادر، ممکن است اندازه کامل تطبیقی ​​پر نشود و به جای آن یک خلاقیت با اندازه استاندارد در این شکاف متمرکز شود.

پیش نیازها

زمان استفاده از بنرهای تطبیقی

بنرهای تطبیقی ​​به گونه ای طراحی شده اند که جایگزینی برای اندازه بنر استاندارد صنعتی 320x50 و فرمت بنر هوشمندی باشند که جایگزین آن می شوند.

این اندازه بنرها معمولاً به عنوان بنرهای لنگردار استفاده می شوند که معمولاً در بالا یا پایین صفحه قفل می شوند.

برای چنین بنرهای لنگردار، نسبت ابعاد هنگام استفاده از بنرهای تطبیقی ​​مشابه تبلیغات استاندارد 320x50 خواهد بود، همانطور که در سه مثال زیر مشاهده می شود:


بنر 320x50

بنر تطبیقی

بنر هوشمند

بنر تطبیقی ​​از اندازه صفحه نمایش موجود بهتر استفاده می کند. علاوه بر این، در مقایسه با یک بنر هوشمند، یک بنر تطبیقی ​​انتخاب بهتری است زیرا:

  • از هر عرضی که شما ارائه می‌کنید استفاده می‌کند، نه اینکه عرض را مجبور کند تمام صفحه باشد، و شما را قادر می‌سازد ناحیه امن را در iOS حساب کنید، و بریدگی‌های نمایش را در Android نشان دهید.

  • این یک ارتفاع بهینه را برای دستگاه خاص انتخاب می کند، به جای داشتن یک ارتفاع ثابت در دستگاه های با اندازه های مختلف، و اثرات تکه تکه شدن دستگاه را کاهش می دهد.

یادداشت های اجرایی

هنگام اجرای بنرهای تطبیقی ​​در برنامه خود، نکات زیر را در نظر داشته باشید:

  • شما باید عرض نمایی که آگهی در آن قرار می گیرد را بدانید، و این باید عرض دستگاه و هر ناحیه ایمن یا بریدگی قابل اجرا را در نظر بگیرد .
  • هنگامی که تبلیغات کوچک‌تر ارائه می‌شوند که فضای تبلیغات را پر نمی‌کنند، پس‌زمینه نمایش تبلیغات شما مبهم باشد تا با خط‌مشی‌های AdMob مطابقت داشته باشد.
  • مطمئن شوید که از آخرین نسخه افزونه Google Mobile Ads Unity استفاده می کنید. برای میانجیگری، از آخرین نسخه هر آداپتور میانجی استفاده کنید.
  • اندازه‌های بنر تطبیقی ​​به گونه‌ای طراحی شده‌اند که هنگام استفاده از عرض کامل موجود، بهترین عملکرد را داشته باشند. در بیشتر موارد، این عرض تمام صفحه نمایش دستگاه در حال استفاده خواهد بود. حتماً مناطق امن قابل اجرا را در نظر بگیرید.
  • Google Mobile Ads SDK هنگام استفاده از APIهای AdSize تطبیقی، بنر را با ارتفاع تبلیغات بهینه شده برای عرض معین اندازه می‌دهد.
  • سه روش برای به دست آوردن یک اندازه تبلیغ برای تطبیق وجود دارد: AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth برای landscape، AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth برای عمودی، و AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth در زمان اجرا
  • اندازه ای که برای یک عرض معین در یک دستگاه معین بازگردانده می شود همیشه یکسان خواهد بود، از این رو هنگامی که طرح بندی خود را در دستگاه مشخصی آزمایش کردید، می توانید مطمئن باشید که اندازه تبلیغ تغییر نخواهد کرد.
  • ارتفاع بنر لنگر هرگز از کمتر از 15 درصد ارتفاع دستگاه یا 90 پیکسل مستقل با چگالی بزرگتر نیست و هرگز از 50 پیکسل مستقل با چگالی کوچکتر نیست.
  • برای بنرهای تمام عرض، می توانید به جای ارائه یک عرض خاص، از پرچم AdSize.FullWidth استفاده کنید.

شروع سریع

برای پیاده سازی یک بنر لنگر تطبیقی ​​ساده مراحل زیر را دنبال کنید.

  1. اندازه تبلیغات بنری تطبیقی ​​دریافت کنید. اندازه ای که دریافت می کنید برای درخواست بنر تطبیقی ​​شما استفاده می شود. برای دریافت اندازه آگهی تطبیقی، مطمئن شوید که:
    1. عرض دستگاه مورد استفاده را در پیکسل‌های مستقل از چگالی دریافت کنید، یا اگر نمی‌خواهید از عرض کامل صفحه استفاده کنید، عرض خود را تنظیم کنید. از آنجایی که API های 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 استفاده کنید.