Banery reklamowe

Banery reklamowe zajmują miejsce w układu aplikacji – u góry lub u dołu ekranu urządzenia. Pozostają na ekranie, gdy użytkownicy korzystają z aplikacji, i po pewnym czasie mogą się automatycznie odświeżać. Jeśli dopiero zaczynasz korzystać z reklam mobilnych, warto zacząć od tego. Studium przypadku.

Z tego przewodnika dowiesz się, jak zintegrować banery reklamoweAdMob z aplikacją na Androida. Oprócz instrukcji i fragmentów kodu znajdziesz w nim też informacje o prawidłowym rozmiarze baneru i linki do dodatkowych materiałów.

Wymagania wstępne

Dodaj AdView do układu

Pierwszym krokiem w kierowaniu wyświetlania banera jest umieszczenie elementu AdView w układzie Activity lub Fragment, w którym chcesz go wyświetlić. Najłatwiej zrobić to, dodając taki plik do odpowiedniego pliku układu XML. Oto przykład, który pokazuje aktywność: 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 ten rozmiar reklamy, którego chcesz użyć. Jeśli nie chcesz używać rozmiaru standardowego zdefiniowanego przez stałą, możesz ustawić rozmiar niestandardowy. Szczegółowe informacje znajdziesz w sekcji o rozmiarze baneru poniżej.
  • ads:adUnitId – ustaw unikalny identyfikator jednostki 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ż tworzyć żądania AdView przy użyciu automatyzacji:

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 testuj z reklamami testowymi

Tworząc i testując aplikacje, upewnij się, że używasz reklam testowych zamiast produkcyjnych. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.

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

ca-app-pub-3940256099942544/6300978111

Został on specjalnie skonfigurowany pod kątem zwracania reklam testowych dla każdego żądania. Możesz używać go 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 działaniu reklam testowych pakietu SDK do reklam mobilnych znajdziesz w artykule Test Ads (Reklamy testowe).

Wczytywanie reklamy

Gdy reklama AdView będzie już dostępna, następnym krokiem jest wczytanie reklamy. Zrobiliśmy to za pomocą metody loadAd() z klasy AdView. Przyjmuje parametr AdRequest, który zawiera informacje o czasie działania (np. informacje o kierowaniu) o pojedynczym żądaniu reklamy.

Oto przykład, który pokazuje, jak wczytać reklamę w metodzie onCreate() elementu Activity:

Główna aktywność (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)
    }
}

To już wszystko Możesz już wyświetlać banery reklamowe w swojej aplikacji.

Zdarzenia reklamowe

Aby jeszcze bardziej dostosować działanie reklamy, możesz przechwytywać różne zdarzenia w cyklu życia reklamy: wczytywanie, otwieranie, zamykanie itd. Możesz słuchać tych zdarzeń za pomocą 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 możliwość zastąpienia metod w AdListener odpowiada zdarzeniu w cyklu życia reklamy.

Metody zastępowania
onAdClicked() Metoda onAdClicked() jest wywoływana po kliknięciu 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ć, aby wznowić zawieszone aktywności lub wykonać inne czynności, które umożliwią przygotowanie się do interakcji. Zapoznaj się z przykładem AdListenerAdMob, aby dowiedzieć się więcej o implementacji metod słuchaczy w aplikacji demonstracyjnej interfejsu Android API.
onAdFailedToLoad() Jedyną metodą zawierającą parametr jest onAdFailedToLoad(). Parametr błędu typu LoadAdError opisuje, co się stało. Więcej informacji znajdziesz w dokumentacji błędów debugowania reklam.
onAdImpression() Metoda onAdImpression() jest wywoływana po zarejestrowaniu wyświetlenia reklamy.
onAdLoaded() Metoda onAdLoaded() jest uruchamiana po zakończeniu wczytywania reklamy. Jeśli chcesz opóźnić dodanie AdView do aktywności lub fragmentu do momentu, gdy reklama zostanie wczytana, możesz to zrobić tutaj.
onAdOpened() Metoda onAdOpened() jest wywoływana, gdy reklama otwiera się na powierzchni zasłaniającej ekran.

Tabela poniżej zawiera standardowe rozmiary banerów.

Rozmiar w dp (szer.xwys.) Opis Dostępność Stała AdSize
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 IAB Tablety LEADERBOARD
Podana szerokość x Wysokość adaptacyjna Baner adaptacyjny Telefony i tablety
Szerokość ekranu x 32|50|90 Baner inteligentny Telefony i tablety SMART_BANNER
Dowiedz się więcej o banerach adaptacyjnych, które zastąpią banery inteligentne.

Aby zdefiniować niestandardowy rozmiar banera, ustaw odpowiedni rozmiar AdSize:

Java

AdSize adSize = new AdSize(300, 50);

Kotlin

val adSize = AdSize(300, 50)

Akceleracja sprzętowa na potrzeby reklam wideo

Aby reklamy wideo wyświetlały się 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 dotyczy to Twojej aplikacji, zalecamy włączenie akceleracji sprzętowej w przypadku zajęć korzystających z reklam.

Włączanie akceleracji sprzętowej

Jeśli aplikacja działa nieprawidłowo, gdy włączona jest akceleracja sprzętowa na całym świecie, możesz ją kontrolować również w przypadku poszczególnych aktywności. Aby włączyć lub wyłączyć akcelerację sprzętową, możesz użyć atrybutu android:hardwareAccelerated elementów <application> i <activity> w AndroidManifest.xml. Ten przykład włącza akcelerację sprzętową dla całej aplikacji, ale wyłącza ją dla 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 o opcjach akceleracji sprzętowej znajdziesz w przewodniku po akceleracji sprzętowej. Widoków reklam nie można włączyć w przypadku akceleracji sprzętowej, jeśli jest ona wyłączona, więc sama aktywność musi mieć włączoną akcelerację sprzętową.

Dodatkowe materiały

Przykłady w GitHubie

  • Przykład banerów reklamowych: Java | Kotlin

  • Wersja demonstracyjna funkcji zaawansowanych: Java | Kotlin

  • Przykładowa aplikacja ReBannerrView: Java

Samouczki wideo o reklamach garażowych

Historie sukcesu