Banery adaptacyjne umożliwiają określenie szerokości reklamy, aby ustalić optymalny rozmiar reklamy na każdym urządzeniu. W przeciwieństwie do zakotwiczonych banerów adaptacyjnych banery adaptacyjne śródtekstowe są większe, wyższe i nie mają stałej wysokości. Wbudowane banery adaptacyjne mają zmienną wysokość. Banery te mogą zajmować cały ekran lub mieć maksymalną wysokość określoną przez Ciebie.
Z tego przewodnika dowiesz się, jak tworzyć śródtekstowe banery adaptacyjne i ustawiać ich rozmiar.
Ilustracja poniżej przedstawia adaptacyjne banery śródtekstowe w przewijanych treściach:
Zanim zaczniesz
Zanim przejdziesz dalej, skonfiguruj banery reklamowe.
Aby zobaczyć pełny przykład śródtekstowego banera adaptacyjnego, pobierz tę przykładową aplikację:
Wdrażanie banerów adaptacyjnych w tekście
Aby wdrożyć banery adaptacyjne śródtekstowe, musisz ustawić rozmiar reklamy, utworzyć żądanie reklamy i wczytać reklamę.
Aby określić rozmiar śródtekstowego banera adaptacyjnego, ustal szerokość reklamy. Typowe podejścia obejmują:
- Wykorzystanie pełnej szerokości 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, aby używać 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ć wbudowany adaptacyjny baner reklamowy w określonym układzie, 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ć
reklamę w postaci banera adaptacyjnego 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 banera adaptacyjnego w tekście
Domyślnie wbudowane banery adaptacyjne utworzone bez wartości maxHeight mają maksymalną wysokość równą wysokości urządzenia. Aby ograniczyć wysokość adaptacyjnego banera w tekście, użyj metody
AdSize.getInlineAdaptiveBannerAdSize(int width, int maxHeight).