Używanie wbudowanych banerów adaptacyjnych w przypadku banerów przewijanych

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. Banery adaptacyjne śródtekstowe mają zmienną wysokość. Te banery mogą zajmować cały ekran lub maksymalną wysokość określoną przez Ciebie.

Z tego przewodnika dowiesz się, jak tworzyć banery adaptacyjne śródtekstowe i ustawiać ich rozmiar.

Na ilustracji poniżej widać banery adaptacyjne śródtekstowe w przewijanej treści:

Diagram pokazujący różnice między banerami adaptacyjnymi a wbudowanymi banerami adaptacyjnymi

Zanim zaczniesz

Zanim przejdziesz dalej, upewnij się, że skonfigurujesz banery reklamowe.

Aby zobaczyć pełny przykład banera adaptacyjnego śródtekstowego, pobierz tę przykładową aplikację:

Implementowanie banerów adaptacyjnych śródtekstowych

Aby zaimplementować banery adaptacyjne śródtekstowe, ustaw rozmiar reklamy, utwórz żądanie reklamy i wczytaj reklamę.

Aby określić rozmiar banera adaptacyjnego śródtekstowego, ustal szerokość reklamy. Najczęstsze podejścia:

  • Używanie pełnego ekranu.
  • Używanie szerokości layoutu nadrzędnego zawierającego reklamę.
  • Dostosowywanie szerokości do bezpiecznych obszarów urządzenia.

Podczas tworzenia obiektu rozmiaru reklamy użyj tej obliczonej szerokości.

Wykonaj te czynności:

  1. Pobierz szerokość urządzenia lub ustaw szerokość:

    Kotlin

    private val adWidth: Int
      get() {
        val displayMetrics = resources.displayMetrics
        val adWidthPixels =
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            val windowMetrics: WindowMetrics = this.windowManager.currentWindowMetrics
            windowMetrics.bounds.width()
          } else {
            displayMetrics.widthPixels
          }
        val density = displayMetrics.density
        return (adWidthPixels / density).toInt()
      }
    

    Java

    public int getAdWidth() {
      DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
      int adWidthPixels = displayMetrics.widthPixels;
    
      if (VERSION.SDK_INT >= VERSION_CODES.R) {
        WindowMetrics windowMetrics = this.getWindowManager().getCurrentWindowMetrics();
        adWidthPixels = windowMetrics.getBounds().width();
      }
    
      float density = displayMetrics.density;
      return (int) (adWidthPixels / density);
    }
    
  2. Aby uzyskać obiekt rozmiaru reklamy adaptacyjnej śródtekstowej, użyj metody statycznej w klasie rozmiaru reklamy:

    Kotlin

    val adView = AdView(this@MainActivity)
    adView.setAdSize(AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, adWidth))

    Java

    final AdView adView = new AdView(MainActivity.this);
    adView.setAdSize(AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, getAdWidth()));

Ustaw rozmiar reklamy mniejszy lub równy rozmiarowi ekranu urządzenia. Aby określić maksymalny rozmiar ekranu, użyj metody Resources.getDisplayMetrics. Wymiary obiektu AdSize są podawane w pikselach niezależnych od gęstości (dp). Podczas porównywania przekonwertuj rozmiar ekranu z pikseli na dp. Więcej informacji o ograniczeniach rozmiaru znajdziesz w artykule Wymagania dotyczące rozmiaru żądania reklamy.

Ustawianie układu banera adaptacyjnego śródtekstowego

Aby wstępnie wczytać reklamę banerową adaptacyjną śródtekstową dla określonego układu, użyj tych metod:

Jeśli Twoja aplikacja obsługuje widoki pionowe i poziome oraz chcesz wstępnie wczytać reklamę banerową adaptacyjną 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 śródtekstowego

Domyślnie banery adaptacyjne śródtekstowe utworzone bez wartości maxHeight mają maksymalną wysokość równą wysokości urządzenia. Aby ograniczyć wysokość banera adaptacyjnego śródtekstowego, użyj AdSize.getInlineAdaptiveBannerAdSize(int width, int maxHeight) metody.