Banery reklamowe zajmują miejsce w układzie aplikacji, u góry lub u dołu ekranu urządzenia. Pozostają na ekranie, gdy użytkownicy wchodzą w interakcję z aplikacją, i po określonym 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 reklamowe z aplikacjiAdMob z aplikacją na Androida. Znajdziesz w niej też fragmenty kodu i instrukcje dotyczące prawidłowego rozmiaru banerów oraz linki do dodatkowych materiałów.
Wymagania wstępne
- Skorzystaj z przewodnika dla początkujących.
Dodaj AdView do układu
Pierwszym krokiem do wyświetlenia banera jest umieszczenie AdView
w układzie Activity
lub Fragment
, w którym chcesz go wyświetlać. Najłatwiej zrobić to, dodając taki element do odpowiedniego pliku układu XML. Oto przykład działania 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 poniżej w sekcji dotyczącej rozmiaru banerów.ads:adUnitId
– ustaw unikalny identyfikator nadawany 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 będzie wymagała jednostki reklamowej.
Możesz też utworzyć AdView
automatycznie:
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 korzystaj z reklam testowych
Tworząc i testując aplikacje, korzystaj z reklam testowych, a nie z aktywnych reklam produkcyjnych. Jeśli tego nie zrobisz, możemy zawiesić Twoje konto.
Najłatwiejszym sposobem wczytywania reklam testowych jest użycie specjalnego identyfikatora testowej jednostki reklamowej na banery Androida.
ca-app-pub-3940256099942544/6300978111
Został on tak skonfigurowany, by zwracać reklamy testowe dla każdego żądania, i można używać go we własnych aplikacjach w zakresie kodowania, testowania i debugowania. Pamiętaj tylko, 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 Reklamy testowe.
Wczytywanie reklamy
Gdy reklamy się wyświetlą AdView , kolejnym krokiem jest wczytanie reklamy. Aby to zrobić, użyj metody loadAd()
w klasie AdView
. Przyjmuje parametr AdRequest
, który zawiera informacje o czasie działania (np. informacje o kierowaniu) dotyczące pojedynczego żądania reklamy.
Oto przykład, który pokazuje, jak wczytać reklamę przy użyciu metody onCreate()
w 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. Aplikacja jest gotowa do wyświetlania banerów reklamowych.
Zdarzenia reklamowe
Aby jeszcze bardziej dostosować działanie reklamy, możesz przechwycić różne zdarzenia w jej cyklu życia: wczytanie, otwarcie, zamknięcie itd. Możesz słuchać tych zdarzeń za pomocą klasy AdListener
.
Aby użyć metody 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 zastępowania | |
---|---|
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 go wykorzystać do wznowienia zawieszonych aktywności lub wykonywania innych działań, które przygotują się do interakcji.
Więcej informacji o implementacji metod detektora reklam w aplikacji demonstracyjnej na Androida API znajdziesz w przykładzie AdMob
AdListener .
|
onAdFailedToLoad()
|
Metoda onAdFailedToLoad() jako jedyna zawiera parametr. Parametr błędu typu LoadAdError opisuje błąd. 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 elementu AdView do aktywności lub fragmentu do czasu, aż reklama zostanie wczytana, możesz to zrobić tutaj.
|
onAdOpened()
|
Metoda onAdOpened() jest wywoływana, gdy reklama otwiera się w nakładce pokrywającej ekran.
|
Rozmiary banerów
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 wyników 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 mają zastąpić banery inteligentne. |
Aby zdefiniować niestandardowy rozmiar banera, ustaw odpowiedni AdSize
w ten sposób:
Java
AdSize adSize = new AdSize(300, 50);
Kotlin
val adSize = AdSize(300, 50)
Akceleracja sprzętowa w reklamach wideo
Aby reklamy wideo wyświetlały się prawidłowo 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 klas aktywności, które korzystają z reklam.
Włączanie akceleracji sprzętowej
Jeśli aplikacja działa nieprawidłowo, gdy włączona jest globalna akceleracja sprzętowa, możesz ją sterować również w przypadku poszczególnych aktywności. Aby włączyć lub wyłączyć akcelerację sprzętową, możesz użyć atrybutu android:hardwareAccelerated
w przypadku elementów <application>
i <activity>
w AndroidManifest.xml
. Ten przykład włącza akcelerację sprzętową w całej aplikacji, ale wyłącza ją w 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. Pamiętaj, że nie można włączyć poszczególnych widoków reklam dla akceleracji sprzętowej, jeśli Aktywność jest wyłączona, dlatego sama aktywność musi mieć włączoną akcelerację sprzętową.
Dodatkowe materiały
Przykłady w GitHubie
Przykładowa aplikacja ReBannerrView: Java