Banery reklamowe

Banery reklamowe to prostokątne reklamy, które zajmują część układu aplikacji. Pozostają na ekranie, gdy użytkownicy wchodzą w interakcję z aplikacją – są zakotwiczone u góry lub u dołu ekranu albo pozostają w tekście podczas przewijania strony. Banery reklamowe mogą być automatycznie odświeżane po upływie określonego czasu. Więcej informacji znajdziesz w artykule Omówienie banerów reklamowych.

Z tego przewodnika dowiesz się, jak zacząć korzystać z zakotwiczonego banera adaptacyjnego, który maksymalizuje skuteczność dzięki optymalizacji rozmiaru reklamy na każdym urządzeniu za pomocą określonej przez Ciebie szerokości.

Zakotwiczone banery adaptacyjne to reklamy o stałych proporcjach, a nie zwykłe reklamy o stałym rozmiarze. Format obrazu jest podobny do standardu branżowego 320 x 50. Po określeniu pełnej dostępnej szerokości reklama będzie miała optymalną wysokość dla tej szerokości. Optymalna wysokość nie zmienia się w przypadku żądań z tego samego urządzenia, a widoki otaczające reklamę nie muszą się przesuwać, gdy reklama jest odświeżana.

Wymagania wstępne

Zawsze testuj reklamy za pomocą reklam testowych

Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie produkcyjnych reklam. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.

Najłatwiejszym sposobem wczytywania reklam testowych jest użycie dedykowanego identyfikatora jednostki reklamowej na potrzeby testów w przypadku banerów na Androida:

ca-app-pub-3940256099942544/9214589741

Jest on specjalnie skonfigurowany tak, aby zwracać reklamy testowe w przypadku każdego żądania. Możesz go używać w swoich aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj tylko, by przed opublikowaniem aplikacji zastąpić go identyfikatorem jednostki reklamowej.

Więcej informacji o działaniu reklam testowych w pakiecie SDK do reklam mobilnych znajdziesz w artykule Reklamy testowe.

Dodawanie AdView do układu

Pierwszym krokiem do wyświetlania banera jest umieszczenie AdView w układzie aplikacji:

Java

// Create a new ad view.
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT_ID);
adView.setAdSize(getAdSize());

// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);

Kotlin

// Create a new ad view.
val adView = AdView(this)
adView.adUnitId = AD_UNIT_ID
adView.setAdSize(adSize)
this.adView = adView

// Replace ad container with new ad view.
binding.adViewContainer.removeAllViews()
binding.adViewContainer.addView(adView)

Wczytywanie reklamy

Po umieszczeniu komponentu AdView kolejnym krokiem jest załadowanie reklamy. W tym celu użyj metody loadAd() w klasie AdView. Używa on parametru AdRequest, który zawiera informacje o czasie wykonywania, np. informacje o kierowaniu, dotyczące pojedynczego żądania reklamy.

Oto przykładowy sposób wczytywania reklamy:

Java

// Start loading the ad in the background.
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);

Kotlin

// Start loading the ad in the background.
val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)

Jeśli reklama nie zostanie wczytana, nie trzeba będzie żądać od niej bezpośredniego żądania, o ile tylko masz skonfigurowane odświeżanie jednostki reklamowej. Pakiet SDK do reklam mobilnych Google respektuje każdą częstotliwość odświeżania określoną w interfejsie internetowym AdMob. Jeśli odświeżanie nie jest włączone, musisz przesłać nową prośbę.

Znakomicie. Twoja aplikacja jest już gotowa do wyświetlania banerów reklamowych.

Zdarzenia reklamowe

Możesz rejestrować różne zdarzenia w cyklu życia reklamy, m.in. wczytywanie, wyświetlenie i kliknięcie reklamy oraz zdarzenia otwarcia i zamknięcia reklamy. Zalecamy, aby ustawić wywołanie zwrotne przed załadowaniem banera.

Java

adView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    @Override
    public void onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
});

Kotlin

adView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

Każda z metod, które można zastąpić w AdListener, odpowiada zdarzeniu w cyklu życia reklamy.

Metody, które można zastąpić
onAdClicked() Metoda onAdClicked() jest wywoływana, gdy zostanie zarejestrowane kliknięcie reklamy.
onAdClosed() Metoda onAdClosed() jest wywoływana, gdy użytkownik wraca do aplikacji po obejrzeniu docelowego adresu URL reklamy. Aplikacja może go użyć do wznowienia zawieszonych działań lub wykonania innych czynności niezbędnych do przygotowania się do interakcji. W przykładzie AdMob AdListener znajdziesz informacje o implementacji metod detektora reklam w aplikacji demonstracyjnej Android API.
onAdFailedToLoad() Metoda onAdFailedToLoad() jest jedyną, która zawiera parametr. Parametr błędu typu LoadAdError opisuje, jaki błąd wystąpił. Więcej informacji znajdziesz w dokumentacji Rozwiązywanie problemów z wczytywaniem reklam.
onAdImpression() Metoda onAdImpression() jest wywoływana po zarejestrowaniu wyświetlenia reklamy.
onAdLoaded() Metoda onAdLoaded() jest wykonywana po zakończeniu wczytywania reklamy. Jeśli chcesz opóźnić dodanie AdView do aktywności lub fragmentu, aż upewnisz się, że reklama zostanie załadowana, możesz to zrobić tutaj.
onAdOpened() Metoda onAdOpened() jest wywoływana, gdy reklama otwiera nakładkę zasłaniającą ekran.

Sprzętowa akceleracja reklam wideo

Aby reklamy wideo wyświetlały się w wyświetleniach banerów reklamowych, musisz włączyć akcelerację sprzętową.

Przyspieszenie sprzętowe jest domyślnie włączone, ale niektóre aplikacje mogą je wyłączyć. Jeśli dotyczy to Twojej aplikacji, zalecamy włączenie akceleracji sprzętowej dla klas Activity, które korzystają z reklam.

Włączanie akceleracji sprzętowej

Jeśli aplikacja nie działa prawidłowo, gdy przyspieszenie sprzętowe jest włączone globalnie, możesz kontrolować to również w przypadku poszczególnych działań. Aby włączyć lub wyłączyć akcelerację sprzętową, możesz użyć atrybutu android:hardwareAccelerated w elementach <application> i <activity> w pliku AndroidManifest.xml. W tym przykładzie włączamy akcelerację sprzętową dla całej aplikacji, ale wyłączamy ją w przypadku jednej aktywności:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

Więcej informacji na temat opcji sterowania akceleracją sprzętową znajdziesz w przewodniku po akceleracji sprzętowej. Pamiętaj, że akceleracji sprzętowej nie można włączyć w przypadku poszczególnych wyświetleń reklam, jeśli dana aktywność jest wyłączona. Aby to zrobić, musisz włączyć akcelerację sprzętową dla całej aktywności.

Dodatkowe materiały

Przykłady w GitHubie

  • Przykład zakotwiczonych banerów adaptacyjnych: Java | Kotlin
  • Demonstracja funkcji zaawansowanych: Java | Kotlin

Dalsze kroki

Banery zwijane

Banery zwijane to banery reklamowe, które początkowo wyświetlają się jako większe nakładki z przyciskiem umożliwiającym zwijanie reklamy do mniejszego rozmiaru. Warto go używać do dalszej optymalizacji skuteczności. Więcej informacji znajdziesz w artykule o zwijanych banerach reklamowych.

Wbudowane banery adaptacyjne

Wbudowane banery adaptacyjne są większe i wyższe od zakotwiczonych banerów adaptacyjnych. Mają zmienną wysokość i mogą zajmować całą wysokość ekranu. W przypadku aplikacji, które umieszczają banery reklamowe w treściach, które można przewijać, zalecamy stosowanie banerów śródtekstowych zamiast zakotwiczonych banerów adaptacyjnych. Więcej informacji znajdziesz w artykule o wbudowanych banerach adaptacyjnych.

Przeglądaj inne tematy