Banery adaptacyjne umożliwiają określenie szerokości reklamy, aby wyznaczyć optymalny rozmiar reklamy na każdym urządzeniu. W przeciwieństwie do zakotwiczonych banerów adaptacyjnych banery adaptacyjne śródtekstowe są większe i wyższe oraz nie używają stałych wysokości. Wbudowane banery adaptacyjne mają zmienną wysokość. Te banery mogą zajmować cały ekran lub maksymalną wysokość, którą określisz.
Z tego przewodnika dowiesz się, jak tworzyć śródtekstowe banery adaptacyjne i ustawiać ich rozmiar.
Ilustracja poniżej przedstawia adaptacyjne banery śródtekstowe w treściach, które można przewijać:
Zanim zaczniesz
Zanim przejdziesz dalej, skonfiguruj reklamy banerowe.
Aby zobaczyć pełny przykład śródtekstowego banera adaptacyjnego, pobierz tę przykładową aplikację:
Wdrażanie wbudowanych banerów adaptacyjnych
Aby wdrożyć adaptacyjne banery wstawiane, ustaw rozmiar reklamy, utwórz żądanie reklamy i wczytaj reklamę.
Aby określić rozmiar wbudowanego banera adaptacyjnego, ustal jego szerokość. Najczęstsze podejścia to:
- Wykorzystuje całą szerokość ekranu.
- Szerokość layoutu nadrzędnego zawierającego reklamę.
- Dostosowanie szerokości do bezpiecznych obszarów urządzenia.
Podczas tworzenia obiektu rozmiaru reklamy użyj obliczonej szerokości.
W tym przykładzie ustawiamy rozmiar reklamy, tworzymy żądanie reklamy i wczytujemy reklamę:
Kotlin
private fun loadAd() {
// Create an inline adaptive ad size. 320 is a placeholder value.
// Replace 320 with your banner container width.
val adSize = AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, 320)
// Step 1 - Create a BannerAdRequest object with ad unit ID and size.
val adRequest = BannerAdRequest.Builder("AD_UNIT_ID", adSize).build()
// Step 2 - Load the ad.
BannerAd.load(
adRequest,
object : AdLoadCallback<BannerAd> {
override fun onAdLoaded(ad: BannerAd) {
// Assign the loaded ad to the BannerAd object.
bannerAd = ad
// Step 3 - Call BannerAd.getView() to get the View and add it
// to view hierarchy on the UI thread.
activity?.runOnUiThread {
binding.bannerViewContainer.addView(ad.getView(requireActivity()))
}
}
override fun onAdFailedToLoad(loadAdError: LoadAdError) {
bannerAd = null
}
}
)
}
Java
private void loadAd() {
// Create an inline adaptive ad size. 320 is a placeholder value.
// Replace 320 with your banner container width.
AdSize adSize = AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, 320);
// Step 1 - Create a BannerAdRequest object with ad unit ID and size.
BannerAdRequest adRequest = new BannerAdRequest.Builder("AD_UNIT_ID",
adSize).build();
// Step 2 - Load the ad.
BannerAd.load(
adRequest,
new AdLoadCallback<BannerAd>() {
@Override
public void onAdLoaded(@NonNull BannerAd ad) {
// Assign the loaded ad to the BannerAd object.
bannerAd = ad;
// Step 3 - Call BannerAd.getView() to get the View and add it
// to view hierarchy on the UI thread.
if (getActivity() != null) {
getActivity()
.runOnUiThread(() ->
binding.bannerViewContainer.addView(ad.getView(getActivity())));
}
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError adError) {
bannerAd = null;
}
});
}
Jeśli chcesz zaktualizować lub utworzyć elementy zamówienia na potrzeby banerów adaptacyjnych, przeczytaj artykuł Konfigurowanie elementów zamówienia na potrzeby banerów adaptacyjnych.
Ustawianie układu banera adaptacyjnego w tekście
Aby wstępnie wczytać adaptacyjny baner śródtekstowy dla określonego układu, użyj tych metod:
AdSize.getPortraitInlineAdaptiveBannerAdSize(Context context, int width)AdSize.getLandscapeInlineAdaptiveBannerAdSize(Context context, int width)
Jeśli Twoja aplikacja obsługuje widok pionowy i poziomy, a chcesz wstępnie wczytać baner adaptacyjny w bieżącym układzie, użyj metody
AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(Context context, int width).
Ta metoda wczytuje reklamę w bieżącym układzie.
Ograniczanie wysokości wbudowanego banera adaptacyjnego
Domyślnie wbudowane banery adaptacyjne utworzone bez wartości maxHeight mają maksymalną wysokość równą wysokości urządzenia. Aby ograniczyć wysokość adaptacyjnego banera śródtekstowego, użyj metody
AdSize.getInlineAdaptiveBannerAdSize(int width, int maxHeight).