Banery adaptacyjne to następna generacja reklam elastycznych, która 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ą natomiast określić szerokość reklamy i wykorzystują te dane do wyznaczenia optymalnego rozmiaru reklamy.
Aby wybrać najlepszy rozmiar reklamy, banery adaptacyjne używają stałych proporcji zamiast stałych wysokości. Sprawia to, że banery reklamowe zajmują bardziej spójną część ekranu na różnych urządzeniach i umożliwiają poprawę skuteczności.
Pamiętaj, że banery adaptacyjne zawsze zwracają 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 różnić w zależności od urządzenia. Dlatego zalecamy, aby układ uwzględniał różnice w wysokości reklam. W rzadkich przypadkach pełny rozmiar adaptacyjny może nie zostać wypełniony, a w tym boksie reklamowym zostanie wyśrodkowana kreacja o standardowym rozmiarze.
Wymagania wstępne
- Postępuj zgodnie z instrukcjami z przewodnika dla początkujących, aby zaimportować wtyczkę Mobile Ads Unity i uwzględnić pakiet SDK do reklam mobilnych.
Kiedy używać banerów adaptacyjnych
Banery adaptacyjne zostały zaprojektowane jako niewymagający edytowania kodu zamiennik zgodnych ze standardem branżowym banerów w rozmiarze 320x50 oraz banerów inteligentnych, które bezpośrednio zastępują.
Te rozmiary banerów są często używane jako banery zakotwiczone, które zwykle są zablokowane u góry lub u dołu ekranu.
W przypadku takich zakotwiczonych banerów współczynnik proporcji podczas korzystania z banerów adaptacyjnych będzie podobny do współczynnika proporcji standardowej reklamy o rozmiarze 320 x 50, co widać na 3 przykładach poniżej:
![]() Baner o wymiarach 320 x 50 |
![]() Baner adaptacyjny |
![]() Baner inteligentny |
Baner adaptacyjny lepiej wykorzystuje dostępny rozmiar ekranu. Dodatkowo w porównaniu z banerem inteligentnym baner adaptacyjny jest lepszym wyborem, ponieważ:
Korzysta z dowolnej podanej szerokości, zamiast wymuszać szerokość pełnego ekranu, co umożliwia uwzględnienie bezpiecznego obszaru na urządzeniach z iOS i wyświetlanie wycięć na urządzeniach z Androidem.
Wybiera optymalną wysokość dla konkretnego urządzenia, zamiast stosować stałą wysokość na urządzeniach o różnych rozmiarach, co łagodzi skutki fragmentacji urządzeń.
Uwagi dotyczące wdrażania
Implementując banery adaptacyjne w aplikacji, pamiętaj o tych kwestiach:
- Musisz znać szerokość widoku, w którym będzie umieszczona reklama. Powinna ona uwzględniać szerokość urządzenia oraz wszelkie obszary bezpieczne lub wycięcia.
- Aby zachować zgodność z zasadami AdMob, upewnij się, że tło widoku reklamy jest nieprzezroczyste, gdy wyświetlane są mniejsze reklamy, które nie wypełniają boksu reklamowego.
- Upewnij się, że używasz najnowszej wersji wtyczki Google Mobile Ads Unity. W przypadku zapośredniczenia używaj najnowszej wersji każdego adaptera zapośredniczenia.
- Rozmiary banerów adaptacyjnych są zaprojektowane tak, aby działać najlepiej, gdy wykorzystują całą dostępną szerokość. W większości przypadków będzie to pełna szerokość ekranu używanego urządzenia. Pamiętaj o obowiązujących bezpiecznych obszarach.
- Gdy używasz interfejsów API AdSize, pakiet SDK do reklam mobilnych Google określa rozmiar banera z optymalną wysokością reklamy dla danej szerokości.
- Rozmiar reklamy adaptacyjnej można uzyskać na 3 sposoby:
AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
w przypadku orientacji poziomej,AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
w przypadku orientacji pionowej iAdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
w przypadku bieżącej orientacji w momencie wykonania. - Rozmiar zwracany 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ść banera kotwiczonego nigdy nie przekracza mniejszej z tych wartości: 15% wysokości urządzenia lub 90 pikseli niezależnych od gęstości, ani nie jest 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ć konkretną szerokość.
Krótkie wprowadzenie
Aby wdrożyć prosty zakotwiczony baner adaptacyjny, wykonaj czynności opisane poniżej.
- Uzyskaj rozmiar adaptacyjnego banera reklamowego. Uzyskany rozmiar będzie wykorzystywany w żądaniach banera adaptacyjnego. Aby uzyskać rozmiar reklamy adaptacyjnej, upewnij się, że:
- Pobierz szerokość używanego urządzenia w pikselach niezależnych od gęstości lub ustaw własną szerokość, jeśli nie chcesz używać pełnej szerokości ekranu.
Ponieważ interfejsy API Unity, takie jak
Screen.width
, zwracają bezwzględne piksele, musisz podzielić je przez skalę urządzenia (można ją pobrać zMobileAds.Utils.GetDeviceScale()
). - W przypadku banerów o pełnej szerokości użyj flagi
AdSize.FullWidth
. - Użyj odpowiednich metod statycznych w klasie rozmiaru reklamy, np.
AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)
AdSize
, aby uzyskać obiekt adaptacyjny dla bieżącej orientacji.
- Pobierz szerokość używanego urządzenia w pikselach niezależnych od gęstości lub ustaw własną szerokość, jeśli nie chcesz używać pełnej szerokości ekranu.
Ponieważ interfejsy API Unity, takie jak
- Utwórz obiekt
BannerView
z identyfikatorem jednostki reklamowej, rozmiarem adaptacyjnym i odpowiednią pozycją reklamy. - Utwórz obiekt żądania reklamy i wczytaj baner za pomocą 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 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 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
}
Funkcja
AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
służy do uzyskiwania rozmiaru banera w zakotwiczonej pozycji w przypadku bieżącej orientacji interfejsu. Aby wstępnie wczytać zakotwiczony baner w danym położeniu, użyj odpowiedniej funkcji z AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
i AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
.