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
- Przeczytaj wprowadzenie.
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.
|
Rozmiary banerów
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ł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.