Sabit uyarlanabilir banner'lar

Uyarlanabilir banner'lar, reklam boyutunu her cihaz için optimize ederek performansı en üst düzeye çıkaran yeni nesil duyarlı reklamlardır. Yalnızca sabit yükseklikleri destekleyen akıllı banner'ların iyileştirilmesi, uyarlanabilir banner'ların reklam genişliğini belirtmenize ve optimum reklam boyutunu belirlemek için bunu kullanmanıza olanak tanı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ın daha tutarlı bir bölümünü kaplayan banner reklamlar elde edilir ve daha iyi performans fırsatları sunulur.

Uyarlanabilir banner'larla çalışırken, belirli bir cihaz ve genişlik için daima sabit bir boyut döndüreceğini unutmayın. Belirli bir cihazda düzeninizi test ettikten sonra, reklam boyutunun değişmeyeceğinden emin olabilirsiniz. Ancak banner reklam öğesinin boyutu farklı cihazlarda değişebilir. Sonuç olarak, düzeninizin reklam yüksekliğindeki farklılıkları içermesini öneririz. Nadir durumlarda tam uyarlanabilir boyut doldurulmayabilir ve bunun yerine standart boyutlu bir reklam öğesi bu alanda ortalanır.

Ön koşullar

Uyarlanabilir banner'lar ne zaman kullanılır?

Uyarlanabilir banner'lar, hem endüstri standardı 320x50 banner boyutu hem de yerini alacakları akıllı banner biçimi için doğrudan yedek olacak şekilde tasarlanmıştır.

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

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


320x50 banner

Uyarlanabilir banner

Akıllı banner

Uyarlanabilir banner, mevcut ekran boyutunun daha iyi kullanılmasını sağlar. Ayrıca, uyarlanabilir banner akıllı banner'a kıyasla daha iyi bir seçimdir çünkü:

  • Genişliği tam ekran yapmaya zorlamak yerine, sağladığınız genişliği kullanır. Bu sayede, iOS'teki güvenli alanı, Android'de ise ekran kesimlerini hesaba katabilirsiniz.

  • Farklı boyuttaki cihazlarda sabit yüksekliğe sahip olmak yerine belirli cihaz için optimum yüksekliği seçerek cihaz parçalanmasının etkilerini azaltır.

Uygulama notları

Uygulamanıza uyarlanabilir banner'lar eklerken aşağıdaki noktaları aklınızda bulundurun:

  • Reklamın yerleştirileceği görünümün genişliğini bilmeniz gerekir, ve bu işlemde cihaz genişliği ve geçerli tüm güvenli alanlar veya kesimler dikkate alınmalıdır.
  • Reklam görüntüleme arka planının, reklam alanını doldurmayan daha küçük reklam boyutları yayınlandığında, AdMob politikalarıyla uyumlu olması için opak olduğundan emin olun.
  • Google Mobil Reklamlar Unity eklentisinin en son sürümünü kullandığınızdan emin olun. Uyumlulaştırma için her bir uyumlulaştırma bağdaştırıcısının en son sürümünü kullanın.
  • Uyarlanabilir banner boyutları, mevcut tam genişlik kullanıldığında en iyi performansı gösterecek şekilde tasarlanmıştır. Çoğu durumda, bu değer, kullanımdaki cihazın ekranının tam genişliğine eşittir. Geçerli güvenli alanları göz önünde bulundurun.
  • Google Mobile Ads SDK'sı, uyarlanabilir AdSize API'lerini kullanırken banner'ı belirtilen genişlik için optimize edilmiş reklam yüksekliğiyle boyutlandırır.
  • Uyarlanabilir reklam boyutu elde etmenin üç yöntemi vardır: yatay için AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth, dikey için AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth ve yürütme sırasında geçerli 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, düzeninizi belirli bir cihazda test ettikten sonra reklam boyutunun değişmeyeceğinden emin olabilirsiniz.
  • Sabit banner yüksekliği, hiçbir zaman cihaz yüksekliğinin %15'inden veya yoğunluktan bağımsız pikselden az olan %15'ten büyük ve hiçbir zaman 50 yoğunluktan bağımsız pikselden küçük olmamalıdır.
  • Tam genişlikte banner'lar için belirli bir genişlik sağlamak yerine AdSize.FullWidth işaretini kullanabilirsiniz.

Hızlı Başlangıç

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ılacaktır. Uyarlanabilir reklam boyutunu almak için aşağıdakileri yaptığınızdan emin olun:
    1. Kullanılan cihaz genişliğini yoğunluktan bağımsız pikseller halinde alın veya ekranın tam genişliğini kullanmak istemiyorsanız kendi genişliğinizi ayarlayın. Screen.width gibi Unity API'ler mutlak pikseller döndürdüğünden, cihaz ölçeğine bölmeniz gerekir (MobileAds.Utils.GetDeviceScale()'dan alınabilir).
    2. Tam genişlikte banner'lar için AdSize.FullWidth işaretini kullanın.
    3. Geçerli yön için uyarlanabilir AdSize nesnesi almak için reklam boyutu sınıfında AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width) gibi uygun statik yöntemleri kullanın.
  2. Reklam birimi kimliğiniz, uyarlanabilir boyut ve reklamınız için alakalı konumla bir BannerView nesnesi oluşturun.
  3. Bir reklam isteği nesnesi oluşturun ve hazırlanan reklam görünümünüzde LoadAd() yöntemini kullanarak banner'ınızı normal bir banner isteğinde olduğu gibi yükleyin.

Kod örneği

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

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
}

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