Banneranzeigen nehmen einen Platz im Layout der App ein, entweder oben oder unten auf dem Gerätebildschirm. Sie bleiben auf dem Bildschirm, während Nutzer mit der App interagieren, und können nach einer bestimmten Zeit automatisch aktualisiert werden. Wenn Sie noch keine Erfahrung mit mobiler Werbung haben, sind sie ein guter Ausgangspunkt. Fallstudie
In diesem Leitfaden wird erläutert, wie Sie Banneranzeigen vonAdMob in einer Android-App einbinden. Zusätzlich zu Code-Snippets und Anleitungen enthält es auch Informationen zur richtigen Größenanpassung von Bannern und Links zu weiteren Ressourcen.
Vorbereitung
- Arbeiten Sie den Startleitfaden durch.
Dem Layout AdView hinzufügen
Der erste Schritt zum Anzeigen eines Banners besteht darin, AdView
im Layout für Activity
oder Fragment
zu platzieren, in dem es angezeigt werden soll. Am einfachsten ist es, wenn Sie der entsprechenden Datei eine XML-Layoutdatei hinzufügen. Hier ein Beispiel für den AdView
einer Aktivität:
# 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> ...
Beachten Sie die folgenden erforderlichen Attribute:
ads:adSize
: Legen Sie die gewünschte Anzeigengröße fest. Wenn Sie nicht die durch die Konstante definierte Standardgröße verwenden möchten, können Sie stattdessen eine benutzerdefinierte Größe festlegen. Weitere Informationen finden Sie unten im Abschnitt Bannergröße.ads:adUnitId
: Legen Sie hier die eindeutige ID fest, die dem Anzeigenblock in der App zugewiesen ist, in dem Anzeigen ausgeliefert werden sollen. Banneranzeigen in verschiedenen Aktivitäten erfordern einen Anzeigenblock.
Alternativ können Sie AdView
programmatisch erstellen:
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.
Immer mit Testanzeigen testen
Verwenden Sie beim Erstellen und Testen Ihrer Apps Testanzeigen statt Live-Produktionsanzeigen. Sollten Sie dies nicht tun, kann Ihr Konto gesperrt werden.
Die einfachste Methode zum Laden von Testanzeigen ist die Verwendung unserer speziellen Test-Anzeigenblock-ID für Android-Banner:
ca-app-pub-3940256099942544/6300978111
Sie wurde speziell für die Rückgabe von Testanzeigen für jede Anfrage konfiguriert und kann beim Programmieren, Testen und Debuggen in eigenen Apps verwendet werden. Wichtig ist, dass Sie sie vor der Veröffentlichung Ihrer App durch Ihre eigene Anzeigenblock-ID ersetzen.
Weitere Informationen zur Funktionsweise der Testanzeigen des Mobile Ads SDKs finden Sie unter Testanzeigen.
Anzeige laden
Sobald AdView eingerichtet ist, wird im nächsten Schritt eine Anzeige geladen. Dazu verwenden Sie die Methode loadAd()
in der Klasse AdView
. Sie verwenden einen AdRequest
-Parameter, der Laufzeitinformationen (z. B. Ausrichtungsinformationen) zu einer einzelnen Anzeigenanfrage enthält.
Das folgende Beispiel zeigt, wie eine Anzeige mit der Methode onCreate()
einer Activity
geladen wird:
MainActivity (Auszug)
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) } }
Fertig! In Ihrer App können jetzt Banneranzeigen ausgeliefert werden.
Anzeigenereignisse
Um das Verhalten Ihrer Anzeige weiter anzupassen, können Sie eine Reihe von Ereignissen im Lebenszyklus der Anzeige nutzen: Laden, Öffnen, Schließen usw. Sie können diese Ereignisse über die Klasse AdListener
überwachen.
Wenn Sie einen AdListener
mit AdView
verwenden möchten, rufen Sie die Methode setAdListener()
auf:
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. } }
Jede der überschreibbaren Methoden in AdListener
entspricht einem Ereignis im Lebenszyklus einer Anzeige.
Überschreibbare Methoden | |
---|---|
onAdClicked()
|
Die Methode onAdClicked() wird aufgerufen, wenn ein Klick für eine Anzeige erfasst wird.
|
onAdClosed()
|
Die Methode onAdClosed() wird aufgerufen, wenn ein Nutzer zur App zurückkehrt, nachdem er die Ziel-URL aufgerufen hat.
Ihre App kann damit wieder gesperrte Aktivitäten fortsetzen oder andere Aktionen ausführen, die zur Interaktion erforderlich sind.
Eine Implementierung der Anzeigen-Listener-Methoden in der Android API Demo App finden Sie im AdMob-Beispiel AdListener .
|
onAdFailedToLoad()
|
Die Methode onAdFailedToLoad() ist die einzige, die einen Parameter enthält. Der Fehlerparameter vom Typ LoadAdError beschreibt, welcher Fehler aufgetreten ist. Weitere Informationen finden Sie in der Dokumentation zu Fehlern beim Laden von Anzeigen.
|
onAdImpression()
|
Die Methode onAdImpression() wird aufgerufen, wenn eine Impression für eine Anzeige erfasst wird.
|
onAdLoaded()
|
Die Methode onAdLoaded() wird ausgeführt, wenn eine Anzeige fertig geladen ist. Wenn Sie beispielsweise das AdView zu Ihrer Aktivität oder Ihrem Fragment hinzufügen möchten, bis Sie sicher sind, dass eine Anzeige geladen werden kann, können Sie dies hier tun.
|
onAdOpened()
|
Die Methode onAdOpened() wird aufgerufen, wenn eine Anzeige mit einem Overlay über dem Bildschirm geöffnet wird.
|
Bannergrößen
In der folgenden Tabelle sind die Standardgrößen für Banner aufgeführt.
Größe in dp (BxH) | Beschreibung | Verfügbarkeit | AdSize-Konstante |
---|---|---|---|
320 × 50 | Banner | Smartphones und Tablets | BANNER |
320 × 100 | Großes Banner | Smartphones und Tablets | LARGE_BANNER |
300 × 250 | IAB-Medium Rectangle | Smartphones und Tablets | MEDIUM_RECTANGLE |
468 × 60 | IAB-Banner in Originalgröße | Tablets | FULL_BANNER |
728 × 90 | IAB-Leaderboard | Tablets | LEADERBOARD |
Angegebene Breite x Adaptive Höhe | Adaptives Banner | Smartphones und Tablets | – |
Bildschirmbreite x 32|50|90 | Smart-Banner | Smartphones und Tablets | SMART_BANNER |
Weitere Informationen zu adaptiven Bannern, die als Ersatz für Smart-Banner dienen |
Legen Sie die gewünschte AdSize
fest, um eine benutzerdefinierte Bannergröße zu definieren:
Java
AdSize adSize = new AdSize(300, 50);
Kotlin
val adSize = AdSize(300, 50)
Hardwarebeschleunigung für Videoanzeigen
Damit Videoanzeigen in Ihren Ansichten für Banneranzeigen ausgeliefert werden, muss die Hardwarebeschleunigung aktiviert sein.
Die Hardwarebeschleunigung ist standardmäßig aktiviert, kann jedoch von einigen Anwendungen deaktiviert werden. Wenn dies auf Ihre App zutrifft, empfehlen wir, die Hardwarebeschleunigung für Aktivitätsklassen zu aktivieren, die Anzeigen verwenden.
Hardwarebeschleunigung aktivieren
Wenn Ihre App bei globaler Hardwarebeschleunigung nicht ordnungsgemäß funktioniert, können Sie sie auch für einzelne Aktivitäten steuern. Wenn Sie die Hardwarebeschleunigung aktivieren oder deaktivieren möchten, können Sie das Attribut android:hardwareAccelerated
für die Elemente <application>
und <activity>
in Ihrem AndroidManifest.xml
verwenden. Im folgenden Beispiel wird die Hardwarebeschleunigung für die gesamte Anwendung aktiviert, aber für eine Aktivität deaktiviert:
<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>
Weitere Informationen zur Steuerung der Hardwarebeschleunigung finden Sie im Leitfaden zur Hardwarebeschleunigung. Hinweis: Einzelne Anzeigenaufrufe können nicht für die Hardwarebeschleunigung aktiviert werden, wenn die Aktivität deaktiviert ist. Daher muss für die Aktivität selbst die Hardwarebeschleunigung aktiviert sein.
Zusätzliche Ressourcen
Beispiele auf GitHub
Beispielanwendung für Banner-RecyclerView: Java