Sabit uyarlanabilir banner'lar

Uyarlanabilir banner'lar, yeni nesil duyarlı reklamlardır ve reklam boyutunu her cihaz için optimize ederek performansı artırır. Uyarlanabilir banner'lar, yalnızca sabit yükseklikleri destekleyen akıllı banner'lardan gelişmiş versiyonudur. Reklamverenler bu banner'lar için reklam genişliğini belirtebilir. Bu genişlik, en uygun reklam boyutunu belirlemek için kullanılır.

Uyarlanabilir banner'lar, en iyi reklam boyutunu seçmek için sabit yükseklikler yerine sabit en boy oranlarını kullanır. Böylece farklı cihazlarda ekranı daha tutarlı bir şekilde kaplayan banner reklamlar elde edilebilir ve performans artışından yararlanılabilir.

Uyarlanabilir banner'larla çalışırken, belirli bir cihaz ve genişlik için daima sabit bir boyut döndürüleceğini unutmayın. Sayfa düzeninizi belirli bir cihazda test ettikten sonra reklam boyutunun değişmeyeceğinden emin olabilirsiniz. Ancak banner reklam öğesinin boyutu farklı cihazlarda değişiklik gösterebilir. Bu nedenle, düzeninizin reklam yüksekliğindeki farklılıkları karşılamasını öneririz. Nadir durumlarda, tam uyarlanabilir boyut doldurulmayabilir ve bunun yerine bu alana standart boyutlu bir reklam öğesi yerleştirilebilir.

Ön koşullar

Uyarlanabilir banner'ları ne zaman kullanmalısınız?

Uyarlanabilir banner'lar, hem sektör standardı olan 320x50 banner boyutu hem de yerine geçtikleri akıllı banner biçimi için doğrudan uygulanabilen bir alternatif olacak şekilde tasarlanmıştır.

Bu banner boyutları genellikle ekranın üst veya alt kısmına sabitlenmiş sabit banner'lar olarak kullanılır.

Bu tür sabit banner'larda, uyarlanabilir banner'lar kullanıldığında en boy oranı aşağıdaki üç örnekte görüldüğü gibi standart bir 320x50 reklama benzer olacaktır:


320x50 banner

Uyarlanabilir banner

Akıllı banner

Uyarlanabilir banner, mevcut ekran boyutundan daha iyi yararlanır. Ayrıca, akıllı banner'a kıyasla uyarlanabilir banner daha iyi bir seçenektir. Bunun nedenleri şunlardır:

  • Genişliği tam ekrana zorlamak yerine sağladığınız genişliği kullanır. Böylece iOS'te güvenli alanı hesaba katabilir ve Android'de kesik görüntüleri gösterebilirsiniz.

  • Farklı boyutlardaki cihazlarda sabit bir yükseklik kullanmak yerine belirli cihaz için optimum yüksekliği seçerek cihaz parçalanmasının etkilerini azaltır.

Uygulama notları

Uygulamanızda uyarlanabilir banner'ları uygularken aşağıdaki noktaları göz önünde bulundurun:

  • Reklamın yerleştirileceği görünümün genişliğini bilmeniz gerekir. Bu genişlik, cihaz genişliğini ve geçerli olan tüm güvenli alanları veya kesikleri dikkate almalıdır.
  • Reklam alanı boyutunu doldurmayan daha küçük reklam boyutları yayınlandığında AdMob politikalarına uymak için reklam görüntüleme arka planınızın opak olduğundan emin olun.
  • Google Mobile Ads Unity eklentisinin en son sürümünü kullandığınızdan emin olun. Uyumlulaştırma için her uyumlulaştırma bağdaştırıcının en son sürümünü kullanın.
  • Uyarlanabilir banner boyutları, mevcut genişliğin tamamı kullanıldığında en iyi şekilde çalışacak şekilde tasarlanmıştır. Çoğu durumda bu, kullanılan cihazın ekranının tam genişliği olur. Geçerli güvenli alanları göz önünde bulundurduğunuzdan emin olun.
  • Google Mobile Ads SDK'sı, uyarlanabilir AdSize API'leri kullanırken banner'ı belirli bir genişlik için optimize edilmiş reklam yüksekliğiyle boyutlandırır.
  • Uyarlanabilir reklam boyutu almak için üç yöntem vardır: yatay için AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth, dikey için AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth ve yürütme sırasındaki mevcut yön için AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth.
  • Belirli bir cihazda belirli bir genişlik için döndürülen boyut her zaman aynı olur. Bu nedenle, yerleşiminizi belirli bir cihazda test ettikten sonra reklam boyutunun değişmeyeceğinden emin olabilirsiniz.
  • Sabitlenmiş banner yüksekliği, cihazın yüksekliğinin% 15'inden veya 90 yoğunluk bağımsız pikselden hangisi daha küçükse ondan büyük olamaz ve 50 yoğunluk bağımsız pikselden küçük olamaz.
  • Tam genişlikli banner'lar için belirli bir genişlik sağlamak yerine AdSize.FullWidth işaretini kullanabilirsiniz.

Hızlı başlangıç kılavuzu

Basit bir uyarlanabilir sabit banner uygulamak için aşağıdaki adımları uygulayın.

  1. Uyarlanabilir banner reklam boyutu alın. Aldığınız boyut, uyarlanabilir banner'ınızı istemek için kullanılır. Uyarlanabilir reklam boyutunu almak için:
    1. Kullanımdaki cihazın genişliğini yoğunluktan bağımsız piksel cinsinden alın veya ekranın tamamını kullanmak istemiyorsanız kendi genişliğinizi ayarlayın. Screen.width gibi Unity API'leri mutlak piksel döndürdüğü için cihaz ölçeğine (MobileAds.Utils.GetDeviceScale()'ten alınabilir) bölmeniz gerekir.
    2. Tam genişlikli banner'lar için AdSize.FullWidth işaretini kullanın.
    3. Mevcut yön için uyarlanabilir bir AdSize nesnesi almak üzere reklam boyutu sınıfında AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width) gibi uygun statik yöntemleri kullanın.
  2. Reklam birimi kimliğinizi, uyarlanabilir boyutu ve reklamınız için alakalı konumu içeren bir BannerView nesnesi oluşturun.
  3. Bir reklam isteği nesnesi oluşturun ve normal bir banner isteğinde yaptığınız gibi, hazırlanmış reklam görüntülemenizde LoadAd() yöntemini kullanarak banner'ınızı yükleyin.

Kod örneği

Aşağıda, güvenli bölgeyi dikkate alarak ekranın genişliğine sığacak şekilde uyarlanabilir bir banner'ı yükleyip yeniden yükleyen örnek bir komut dosyası verilmiştir:

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
}

Burada, mevcut arayüz yönü için sabit konumdaki bir banner'ın boyutunu almak üzere AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth işlevi kullanılır. Sabitlenmiş bir banner'ı belirli bir yönde önceden yüklemek için AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth ve AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth'daki ilgili işlevi kullanın.