Zakotwiczone banery adaptacyjne

Banery adaptacyjne to nowy format reklam elastycznych, który maksymalizuje skuteczność, ponieważ optymalizuje rozmiar reklamy pod kątem każdego urządzenia. To ulepszona wersja banerów inteligentnych, które obsługiwały jedynie ustalone wysokości. Banery adaptacyjne pozwalają określić szerokość reklamy i na tej podstawie określić optymalny rozmiar reklamy.

Aby wybrać najlepszy rozmiar, banery adaptacyjne stosują stały format obrazu zamiast stałej wysokości. Dzięki temu banery reklamowe zajmują bardziej spójną część ekranu na różnych urządzeniach i pomagają zwiększyć skuteczność.

Podczas korzystania z banerów adaptacyjnych pamiętaj, że zawsze zwracają stały rozmiar dla danego urządzenia i szerokości. Po przetestowaniu układu na określonym urządzeniu możesz mieć pewność, że rozmiar reklamy się nie zmieni. Rozmiar baneru może się jednak zmieniać na różnych urządzeniach. Dlatego zalecamy, aby układ pasował do wysokości reklam. W rzadkich przypadkach boks ten może nie zostać wypełniony w całości, a w tym boksie zostanie wyśrodkowany kreacja w standardowym rozmiarze.

Wymagania wstępne

Kiedy warto używać banerów adaptacyjnych

Banery adaptacyjne mają zastępować standardowe rozmiary banerów 320 x 50 i formaty banerów inteligentnych, które je zastępują.

Banery te są zwykle używane jako zakotwiczone banery, które są zwykle zablokowane u góry lub u dołu ekranu.

W przypadku takich zakotwiczonych banerów współczynnik proporcji podczas użycia banerów adaptacyjnych jest podobny do standardowego reklamy 320 x 50, tak jak widać w 3 przykładach poniżej:


Baner 320 x 50

Baner adaptacyjny

Inteligentny baner

Baner adaptacyjny pozwala lepiej wykorzystać dostępny rozmiar ekranu. W porównaniu z banerami inteligentnymi baner adaptacyjny sprawdza się lepiej, ponieważ:

  • Zamiast korzystać z wybranej szerokości, wymuś stosowanie szerokości na pełnym ekranie, co pozwoli uwzględnić bezpieczny obszar na urządzeniach z iOS i wyświetlić wycięcia w Androidzie.

  • Wybiera optymalną wysokość dla danego urządzenia, a nie jest stała na różnych urządzeniach, minimalizując skutki fragmentacji urządzenia.

Uwagi dotyczące implementacji

Gdy implementujesz banery adaptacyjne w swojej aplikacji, pamiętaj o tych kwestiach:

  • Musisz znać szerokość widoku, w którym chcesz umieścić reklamę, i należy wziąć pod uwagę szerokość urządzenia oraz wszelkie odpowiednie obszary lub wycięcia.
  • Jeśli masz mniejsze rozmiary reklam, które nie wypełniają boksu reklamowego, upewnij się, że tło widoku reklamy jest nieprzezroczyste, zgodnie z zasadami AdMob.
  • Sprawdź, czy używasz najnowszej wersji wtyczki do reklam mobilnych Google. W zapośredniczeniu użyj najnowszej wersji każdego adaptera zapośredniczenia.
  • Rozmiary banerów adaptacyjnych najlepiej sprawdzają się w przypadku korzystania z pełnej dostępnej szerokości. W większości przypadków jest to pełna szerokość ekranu używanego urządzenia. Weź pod uwagę odpowiednie strefy zabezpieczeń.
  • Jeśli korzystasz z interfejsów API AdSize, pakiet SDK do reklam mobilnych Google będzie dopasowywać rozmiar banera do zoptymalizowanej wysokości reklamy dla danej szerokości.
  • Istnieją 3 sposoby uzyskiwania rozmiaru reklamy adaptacyjnej: AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth w orientacji poziomej, AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth w orientacji pionowej i AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth w bieżącej orientacji.
  • Rozmiar zwrócony dla danej szerokości na danym urządzeniu będzie zawsze taki sam, więc po przetestowaniu układu na danym urządzeniu możesz mieć pewność, że rozmiar reklamy się nie zmieni.
  • Wysokość zakotwiczonego banera nigdy nie jest większa niż 15% pikseli niezależnych od urządzenia lub 90 pikseli niezależnych od gęstości i 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 podawać szerokość.

Krótkie wprowadzenie

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

  1. Rozmiar banera adaptacyjnego. Otrzymany rozmiar zostanie użyty w żądaniu banera adaptacyjnego. Aby uzyskać rozmiar reklamy adaptacyjnej:
    1. Pobierz szerokość urządzenia używanego w pikselach niezależnych od gęstości lub ustaw własną szerokość, jeśli nie chcesz używać pełnej szerokości ekranu. Interfejsy Unity API, takie jak Screen.width, zwracają bezwzględne piksele, musisz podzielić je według skali urządzenia (pobierane z MobileAds.Utils.GetDeviceScale()).
    2. Użyj flagi AdSize.FullWidth w przypadku banerów o pełnej szerokości.
    3. Użyj odpowiednich metod statycznych w klasie 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 położeniem reklamy.
  3. Utwórz obiekt żądania reklamy i wczytaj baner, korzystając z metody LoadAd() w przygotowanym widoku reklamy, tak jak w przypadku zwykłego żądania banera.

Przykładowy kod

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

using UnityEngine;
using System;
using GoogleMobileAds.Api;

public class NewMonoBehaviour : MonoBehaviour
{
    private BannerView bannerView;

    // Use this for initialization
    void Start()
    {
        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 (this.bannerView != null)
        {
            this.bannerView.Destroy();
        }

        AdSize adaptiveSize =
                AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);

        this.bannerView = new BannerView(adUnitId, adaptiveSize, AdPosition.Bottom);

        // Register for ad events.
        this.bannerView.OnAdLoaded += this.HandleAdLoaded;
        this.bannerView.OnAdFailedToLoad += this.HandleAdFailedToLoad;
        this.bannerView.OnAdOpening += this.HandleAdOpening;
        this.bannerView.OnAdClosed += this.HandleAdClosed;

        AdRequest adRequest = new AdRequest.Builder()
            .AddTestDevice(AdRequest.TestDeviceSimulator)
            .AddTestDevice("0123456789ABCDEF0123456789ABCDEF")
            .Build();

        // Load a banner ad.
        this.bannerView.LoadAd(adRequest);
    }

    #region Banner callback handlers

    public void HandleAdLoaded(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLoaded event received");
        MonoBehaviour.print(String.Format("Ad Height: {0}, width: {1}",
            this.bannerView.GetHeightInPixels(),
            this.bannerView.GetWidthInPixels()));
    }

    public void HandleAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        MonoBehaviour.print(
                "HandleFailedToReceiveAd event received with message: " + args.Message);
    }

    public void HandleAdOpening(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdOpening event received");
    }

    public void HandleAdClosed(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdClosed event received");
    }

    #endregion
}

Tutaj funkcja AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth służy do pobierania rozmiaru banera w pozycji zakotwiczonej dla bieżącej orientacji interfejsu. Do wstępnego zakotwiczenia banera w określonej orientacji użyj odpowiedniej funkcji z tagów AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth i AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth.