Banery reklamowe

Banery reklamowe zajmują miejsce w układzie aplikacji, u góry lub na dole ekranu urządzenia. Pozostają widoczne na ekranie, gdy użytkownicy korzystają z aplikacji, a po określonym czasie mogą się automatycznie odświeżać. Jeśli dopiero zaczynasz korzystać z reklamy mobilnej, możesz zacząć właśnie od tego. Studium przypadku.

Z tego przewodnika dowiesz się, jak zintegrować banery reklamowe z aplikacjąAdMob z aplikacją na Androida. Znajdziesz w niej nie tylko fragmenty kodu i instrukcje, ale również informacje o prawidłowym rozmiarze banerów i linki do dodatkowych materiałów.

Wymagania wstępne

Dodaj AdView do układu

Pierwszym krokiem w kierunku wyświetlenia banera jest umieszczenie elementu AdView w układzie Activity lub Fragment, w którym ma być wyświetlany. Najłatwiej zrobić to, dodając jeden do odpowiedniego pliku układu XML. Oto przykład aktywności AdView:

# main_activity.xml
...
  <com.google.android.gms.ads.AdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true"
      ads:adSize="BANNER"
      ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
  </com.google.android.gms.ads.AdView>
...

Zwróć uwagę na te atrybuty wymagane:

  • ads:adSize – ustaw rozmiar reklamy, którego chcesz użyć. Jeśli nie chcesz używać rozmiaru standardowego określonego przez wartość stałą, możesz ustawić rozmiar niestandardowy. Więcej informacji znajdziesz poniżej w sekcji dotyczącej rozmiaru banera.
  • ads:adUnitId – wybierz unikalny identyfikator nadany jednostce reklamowej w aplikacji, w której mają się wyświetlać reklamy. Jeśli wyświetlasz banery reklamowe przy różnych działaniach, każda z nich wymaga jednostki reklamowej.

Możesz też automatycznie utworzyć pole AdView, aby:

Java

AdView adView = new AdView(this);

adView.setAdSize(AdSize.BANNER);

adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.

Kotlin

val adView = AdView(this)

adView.adSize = AdSize.BANNER

adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"
// TODO: Add adView to your view hierarchy.

Zawsze używaj reklam testowych

Tworząc i testując aplikacje, korzystaj z reklam testowych, a nie z aktywnych reklam produkcyjnych. W przeciwnym razie możemy zawiesić Twoje konto.

Najłatwiejszym sposobem wczytywania reklam testowych jest użycie specjalnego identyfikatora testowej jednostki reklamowej, przeznaczonej do banerów na Androida.

ca-app-pub-3940256099942544/6300978111

Został tak skonfigurowany pod kątem zwracania reklam testowych dla każdego żądania i możesz używać ich we własnych aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj, aby przed opublikowaniem aplikacji zastąpić go własnym identyfikatorem jednostki reklamowej.

Więcej informacji o tym, jak działają reklamy testowe pakietu SDK do reklam mobilnych, znajdziesz w artykule Reklamy testowe.

Wczytywanie reklamy

Kolejnym etapem AdView jest wczytanie reklamy. Wystarczy, że użyjesz metody loadAd() w klasie AdView. Wykorzystuje parametr AdRequest, który zawiera dane o czasie działania (np. informacje o kierowaniu) dotyczące pojedynczego żądania reklamy.

Oto przykład wczytywania reklamy w metodzie onCreate() strony Activity:

MainActivity (fragment)

Java

package ...

import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends AppCompatActivity {
    private AdView mAdView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });

        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }
}

Kotlin

package ...

import ...
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView

class MainActivity : AppCompatActivity() {

    lateinit var mAdView : AdView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        MobileAds.initialize(this) {}

        mAdView = findViewById(R.id.adView)
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
    }
}

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

Zdarzenia reklamowe

Aby jeszcze bardziej dostosować sposób działania reklamy, możesz wpłynąć na szereg zdarzeń w jej cyklu życia: wczytywanie, otwieranie, zamykanie itd. Możesz ich słuchać w ramach klasy AdListener.

Aby użyć AdListener z AdView, wywołaj metodę setAdListener():

Java

mAdView.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

mAdView.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 możliwych do zastąpienia metod w AdListener odpowiada zdarzeniu w cyklu życia reklamy.

Metody możliwe do pominięcia
onAdClicked() Metoda onAdClicked() jest wywoływana po zarejestrowaniu kliknięcia reklamy.
onAdClosed() Metoda onAdClosed() jest wywoływana, gdy użytkownik wraca do aplikacji po obejrzeniu docelowego adresu URL reklamy. Aplikacja może używać tych informacji do wznowienia zawieszonych aktywności lub wykonywania innych działań, które są niezbędne, aby przygotować się do interakcji. Więcej informacji o implementacji metod detektorów reklam w aplikacji na Androida API znajdziesz w przykładzie AdMob AdListener.
onAdFailedToLoad() Metoda onAdFailedToLoad() jest jedyną, która zawiera parametr. Parametr błędu typu LoadAdError opisuje, jakie wystąpiły błędy. Więcej informacji znajdziesz w dokumentacji dotyczącej debugowania błędów wczytywania 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ć dodawanie elementu AdView do aktywności lub fragmentu, aż będziesz mieć pewność, że reklama zostanie wczytana, możesz to na przykład zrobić tutaj.
onAdOpened() Metoda onAdOpened() jest wywoływana, gdy reklama otwiera nakładkę, która zasłania ekran.

W tabeli poniżej znajdziesz standardowe rozmiary banerów.

Rozmiar w dp (szer. x wys.) Opis Dostępność Stała rozmiar reklamy
320 x 50 Baner Telefony i tablety BANNER
320 x 100 Duży baner Telefony i tablety LARGE_BANNER
300 x 250 Średni prostokąt IAB Telefony i tablety MEDIUM_RECTANGLE
468 x 60 Pełnowymiarowy baner IAB Tablety FULL_BANNER
728 x 90 Tabela wyników IAB Tablety LEADERBOARD
Podana szerokość x Wysokość adaptacyjna Baner adaptacyjny Telefony i tablety Nie dotyczy
Szerokość ekranu x 32|50|90 Baner inteligentny Telefony i tablety SMART_BANNER
Dowiedz się więcej o banerach adaptacyjnych, których zadaniem jest zastąpienie banerów inteligentnych.

Aby określić niestandardowy rozmiar banera, ustaw odpowiedni AdSize jak pokazano poniżej:

Java

AdSize adSize = new AdSize(300, 50);

Kotlin

val adSize = AdSize(300, 50)

Wzmocnienie sprzętowe reklam wideo

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

Akceleracja sprzętowa jest domyślnie włączona, ale niektóre aplikacje mogą ją wyłączyć. Jeśli ma to zastosowanie w Twojej aplikacji, zalecamy włączenie akceleracji sprzętowej w przypadku zajęć związanych z reklamami, które korzystają z reklam.

Włącz akcelerację sprzętową

Jeśli globalna akceleracja sprzętowa działa nieprawidłowo, możesz ją też kontrolować w przypadku poszczególnych aktywności. Aby włączyć lub wyłączyć akcelerację sprzętową, możesz użyć atrybutu android:hardwareAccelerated w elementach <application> i <activity> w AndroidManifest.xml. Ten przykład włącza akcelerację sprzętową w całej aplikacji, ale wyłącza 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>

Zobacz przewodnik dotyczący akceleracji sprzętowej, aby dowiedzieć się więcej o opcjach sterowania akceleracją sprzętową. Pamiętaj, że nie można włączyć akceleracji sprzętowej w przypadku poszczególnych wyświetleń reklam, więc aktywność musi mieć włączoną akcelerację sprzętową.

Dodatkowe materiały

Przykłady w usłudze GitHub

  • Przykładowe banery: Java | Kotlin

  • Demonstracja funkcji zaawansowanych: Java | Kotlin

  • Przykładowa aplikacja RecyclerView: Java

Samouczki wideo o reklamach mobilnych w garażu

Historie sukcesu

Dalsze kroki

Dowiedz się więcej o prywatności użytkowników.