Zakotwiczone banery adaptacyjne

Banery adaptacyjne to nowa generacja reklam elastycznych, które maksymalizują skuteczność reklam, optymalizując rozmiar reklamy na każdym urządzeniu. To ulepszenie banerów inteligentnych, które obsługiwały tylko stałe wysokości. Banery adaptacyjne pozwalają określić szerokość reklamy i wykorzystać ją do określenia optymalnego rozmiaru reklamy.

Aby wybrać najlepszy rozmiar reklamy, banery adaptacyjne używają stałych proporcji zamiast stałych wysokości. Dzięki temu banery reklamowe zajmują bardziej spójną część ekranu na różnych urządzeniach i zwiększają skuteczność.

Podczas pracy z banerami adaptacyjnymi pamiętaj, że zawsze zwracają one stały rozmiar dla danego urządzenia i danej szerokości. Po przetestowaniu układu na danym urządzeniu możesz mieć pewność, że rozmiar reklamy się nie zmieni. Rozmiar kreacji banerowej może się jednak zmieniać na różnych urządzeniach. Dlatego zalecamy, aby układ uwzględniał różnice w wysokości reklamy. W rzadkich przypadkach pełny rozmiar adaptacyjny może nie zostać wypełniony i kreacja o standardowym rozmiarze zostanie wyśrodkowana w tym boksie.

Wymagania wstępne

Kiedy używać banerów adaptacyjnych

Banery adaptacyjne zostały zaprojektowane z myślą o zastępowaniu standardowych banerów 320 x 50 oraz banerów inteligentnych, które zastępują.

Najczęściej są używane jako zakotwiczone banery, które są zwykle zablokowane u góry lub u dołu ekranu.

W przypadku banerów zakotwiczonych ich współczynnik proporcji jest podobny do standardowych reklam w rozmiarze 320 x 50, co widać w 3 przykładach poniżej:


Baner 320 x 50

Baner adaptacyjny

Baner inteligentny

Baner adaptacyjny lepiej wykorzystuje dostępny rozmiar ekranu. Poza tym baner adaptacyjny jest lepszym wyborem w porównaniu z banerem inteligentnym, ponieważ:

  • Wykorzystuje ona dowolną podaną przez Ciebie szerokość, nie wymuszając jej tylko na pełnym ekranie. Dzięki temu uwzględnia bezpieczny obszar w iOS i wycięcia w Androidzie.

  • Wybiera optymalną wysokość dla określonego urządzenia, a nie stałą wysokość dla urządzeń o różnych rozmiarach, co łagodzi efekt fragmentacji urządzenia.

Uwagi dotyczące implementacji

Wdrażając banery adaptacyjne w swojej aplikacji, pamiętaj o tych kwestiach:

  • Musisz znać szerokość widoku, w którym będzie umieszczona reklama, z uwzględnieniem szerokości urządzenia oraz wszelkich odpowiednich obszarów i wycięć.
  • Zadbaj o to, aby tło widoku reklamy było nieprzezroczyste, aby było zgodne z zasadami AdMob, jeśli wyświetlają się mniejsze reklamy, które nie wypełniają boksu reklamowego.
  • Upewnij się, że używasz najnowszej wersji wtyczki do reklam mobilnych Google w wersji Unity. Do zapośredniczenia używaj najnowszej wersji każdego adaptera zapośredniczenia.
  • Rozmiary banerów adaptacyjnych zaprojektowano tak, aby sprawdzały się najlepiej, gdy mają pełną dostępną szerokość. W większości przypadków będzie to pełna szerokość ekranu używanego urządzenia. Pamiętaj, aby wziąć pod uwagę odpowiednie bezpieczne obszary.
  • Jeśli używasz adaptacyjnych interfejsów API AdSize, pakiet SDK do reklam mobilnych Google dostosuje rozmiar banera do danej szerokości reklamy.
  • Istnieją 3 metody uzyskiwania rozmiaru reklamy adaptacyjnej: AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth – pozioma, AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth pionowa i AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth dla bieżącej orientacji w momencie wykonywania.
  • Rozmiar zwracany dla danej szerokości na danym urządzeniu będzie zawsze taki sam, dlatego po przetestowaniu układu na danym urządzeniu rozmiar reklamy się nie zmieni.
  • Wysokość zakotwiczonego banera nigdy nie jest większa niż mniej niż mniej niż 15% wysokości urządzenia lub 90 niezależnych pikseli oraz nigdy nie może być mniejsza niż 50 pikseli niezależnych od gęstości.
  • W przypadku banerów o pełnej szerokości możesz użyć flagi AdSize.FullWidth zamiast podawania konkretnej szerokości.

Krótkie wprowadzenie

Aby wdrożyć prosty zakotwiczony baner adaptacyjny, wykonaj podane niżej czynności.

  1. Wybierz rozmiar adaptacyjnego banera reklamowego Zostanie on wykorzystany do wysłania żądania banera adaptacyjnego. Aby móc korzystać z rozmiaru reklamy adaptacyjnej, musisz:
    1. Określ szerokość używanego urządzenia w pikselach niezależnych od gęstości lub ustaw własną szerokość, jeśli nie chcesz korzystać z pełnej szerokości ekranu. Interfejsy API Unity, takie jak Screen.width, zwracają piksele bezwzględne, więc musisz podzielić dane według skali urządzenia (można pobrać z MobileAds.Utils.GetDeviceScale()).
    2. W przypadku banerów o pełnej szerokości użyj flagi AdSize.FullWidth.
    3. Użyj odpowiednich metod statycznych klasy rozmiaru reklamy, np. AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width), aby uzyskać adaptacyjny obiekt AdSize dla bieżącej orientacji.
  2. Utwórz obiekt BannerView z identyfikatorem jednostki reklamowej, rozmiarem adaptacyjnym i odpowiednim pozycją reklamy.
  3. Utwórz obiekt żądania reklamy i wczytaj baner za pomocą metody LoadAd() w gotowym widoku reklamy, tak jak w przypadku zwykłego żądania banera.

Przykładowy kod

Oto przykładowy skrypt, który wczytuje i wczytuje baner adaptacyjny tak, aby pasował do szerokości ekranu, biorąc pod uwagę bezpieczny obszar:

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
}

W tym przypadku funkcja AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth pozwala określić rozmiar banera w pozycji zakotwiczonej w bieżącej orientacji interfejsu. Aby wstępnie wczytywać zakotwiczony baner w danej orientacji, użyj odpowiedniej funkcji z funkcji AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth i AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth.