Banery adaptacyjne to następna generacja reklam elastycznych, która maksymalizuje skuteczność przez optymalizację rozmiaru reklamy dla każdego urządzenia. Są lepsze od banerów inteligentnych, które obsługiwały tylko stałe wysokości, i 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 współczynników proporcji zamiast stałej wysokości. Dzięki temu banery reklamowe zajmują bardziej spójną część ekranu na różnych urządzeniach, co umożliwia zwiększenie skuteczności.
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. Jednak rozmiar banera może się zmieniać w zależności od urządzenia. Dlatego zalecamy, aby układ uwzględniał różnice w wysokości reklamy. W rzadkich przypadkach pełny rozmiar adaptacyjny może nie być wypełniony i kreacja o standardowym rozmiarze będzie zamiast tego wyśrodkowana w tym boksie.
Wymagania wstępne
- Wykonaj instrukcje podane w Przewodniku dla początkujących, aby dowiedzieć się, jak zaimportować wtyczkę do reklam mobilnych Unity i dołączyć pakiet SDK do reklam mobilnych.
Kiedy używać banerów adaptacyjnych
Banery adaptacyjne zostały zaprojektowane z myślą o zastępowaniu banerów standardowych standardowych o rozmiarze 320 x 50 oraz banerów inteligentnych.
Te rozmiary banerów 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 będzie podobny do standardowych reklam w rozmiarze 320 x 50, co widać w trzech przykładach poniżej:
Baner 320 x 50 |
Baner adaptacyjny |
Baner inteligentny |
Baner adaptacyjny w większym stopniu wykorzystuje dostępny rozmiar ekranu. Poza tym w porównaniu z banerami inteligentnymi baner adaptacyjny jest lepszym wyborem, ponieważ:
Wykorzystuje ona dowolną podaną szerokość i nie wymusza jej wyświetlania na pełnym ekranie, dzięki czemu uwzględnia bezpieczny obszar w iOS i wycięcia w Androidzie.
Wybiera optymalną wysokość dla danego urządzenia, zamiast stosować stałą wysokość dla urządzeń o różnych rozmiarach, co eliminuje skutki fragmentacji urządzenia.
Uwagi dotyczące implementacji
Implementując banery adaptacyjne w swojej aplikacji, pamiętaj o tych kwestiach:
- Musisz znać szerokość widoku, w którym ma zostać umieszczona reklama, oraz wziąć pod uwagę szerokość urządzenia oraz wszelkie odpowiednie bezpieczne obszary i wycięcia.
- Upewnij się, że tło widoku reklamy jest nieprzezroczyste, aby zachować zgodność z zasadami AdMob, jeśli mniejsze rozmiary reklam nie wypełniają boksu reklamowego.
- Upewnij się, że używasz najnowszej wersji wtyczki dla Unity do reklam mobilnych Google. Do zapośredniczenia użyj najnowszej wersji każdego adaptera zapośredniczenia.
- Rozmiary banerów adaptacyjnych zostały zaprojektowane tak, aby działały najlepiej przy pełnej dostępnej szerokości. 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 korzystasz z interfejsów API AdSize, pakiet SDK do reklam mobilnych Google dopasuje baner do wysokości reklamy dostosowanej do danej szerokości.
- Istnieją 3 metody uzyskiwania rozmiaru reklamy adaptacyjnej:
AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
w przypadku orientacji poziomej,AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
pionowej iAdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
w przypadku bieżącej orientacji w momencie wykonywania. - Rozmiar zwracany dla danej szerokości na danym urządzeniu jest zawsze taki sam, dlatego po przetestowaniu układu na danym urządzeniu możesz mieć pewność, że rozmiar reklamy się nie zmieni.
- Wysokość zakotwiczonego banera nigdy nie może przekraczać mniej niż 15% wysokości urządzenia lub 90 niezależnych pikseli. Wysokość zakotwiczonego banera nigdy nie może być mniejsza niż 50 niezależnych pikseli.
- 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.
- Uzyskaj rozmiar banera adaptacyjnego Wyświetlony rozmiar będzie używany
do wysłania żądania banera adaptacyjnego. Aby móc korzystać z rozmiaru reklamy adaptacyjnej, musisz:
- Określ szerokość 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 je pobrać zMobileAds.Utils.GetDeviceScale()
). - W przypadku banerów o pełnej szerokości użyj flagi
AdSize.FullWidth
. - W klasie rozmiaru reklamy użyj odpowiednich metod statycznych, np.
AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)
, aby uzyskać adaptacyjny obiektAdSize
odpowiadający bieżącej orientacji.
- Określ szerokość 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
- Utwórz obiekt
BannerView
z identyfikatorem jednostki reklamowej, rozmiarem adaptacyjnym i odpowiednim położeniem reklamy. - 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, z uwzględnieniem bezpiecznego obszaru:
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
}
W tym przypadku funkcja AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
służy do określenia rozmiaru banera w pozycji zakotwiczonej w bieżącej orientacji interfejsu. Aby wstępnie wczytać zakotwiczony baner w danej orientacji, użyj odpowiedniej funkcji z funkcji AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
i AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
.