Banneranzeigen nehmen einen Platz im Layout einer App ein, entweder oben oder unten auf dem Bildschirm. 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, ist das ein guter Ausgangspunkt. Fallstudie
In diesem Leitfaden erfährst du, wie du Banneranzeigen ausAdMob in eine Android-App einbindest. Neben Code-Snippets und Anleitungen findest du hier auch Informationen zur richtigen Größenanpassung von Bannern und Links zu weiteren Ressourcen.
Voraussetzungen
- Folgen Sie der Anleitung im Startleitfaden.
Dem Layout AdView hinzufügen
Der erste Schritt für die Anzeige eines Banners ist die Platzierung von AdView
im Layout für die Activity
oder Fragment
, in der das Banner eingeblendet werden soll. Am einfachsten ist es, wenn Sie es in die entsprechende XML-Layoutdatei aufnehmen. 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 Standardgröße verwenden möchten, die durch die Konstante definiert wird, können Sie stattdessen eine benutzerdefinierte Größe festlegen. Weitere Informationen finden Sie im Abschnitt Bannergröße.ads:adUnitId
: Legen Sie die eindeutige Kennung fest, die dem Anzeigenblock in Ihrer App zugewiesen wird, in der Anzeigen ausgeliefert werden sollen. Wenn Sie Banneranzeigen in verschiedenen Aktivitäten präsentieren, ist für jede ein Anzeigenblock erforderlich.
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
Achten Sie beim Erstellen und Testen Ihrer Apps darauf, Testanzeigen und keine aktiven Anzeigen zu verwenden. Andernfalls kann Ihr Konto gesperrt werden.
Testanzeigen lassen sich am einfachsten mit der Anzeigenblock-ID für Android-Banner laden.
ca-app-pub-3940256099942544/6300978111
Es wurde speziell so konfiguriert, dass bei jeder Anfrage Testanzeigen zurückgegeben werden. Sie können es in Ihren eigenen Apps verwenden, wenn Sie Code programmieren, testen und Fehler beheben möchten. Ersetzen Sie sie vor der Veröffentlichung Ihrer App einfach durch Ihre eigene Anzeigenblock-ID.
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 zu Targeting-Informationen zu einer einzelnen Anzeigenanfrage enthält.
Das folgende Beispiel zeigt, wie eine Anzeige mit der Methode onCreate()
einer Activity
geladen wird:
Hauptaktivität (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)
}
}
Wenn Ihre Anzeige nicht geladen werden kann, müssen Sie nicht noch einmal eine Anfrage senden, solange Sie die Aktualisierung des Anzeigenblocks konfiguriert haben. Das Google Mobile Ads SDK berücksichtigt alle Aktualisierungsraten, die Sie auf derAdMob -Weboberfläche angegeben haben. Wenn Sie die Aktualisierung nicht aktiviert haben, müssen Sie eine neue Anfrage senden.
Fertig! In Ihrer App können jetzt Banneranzeigen präsentiert werden.
Anzeigenereignisse
Zur weiteren Anpassung des Anzeigenverhaltens können Sie verschiedene Ereignisse im Lebenszyklus der Anzeige nutzen: Laden, Öffnen, Schließen usw. Diese Ereignisse können Sie mithilfe der Klasse AdListener
beobachten.
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 nach dem Ansehen der Ziel-URL einer Anzeige zur App zurückkehrt. Ihre App kann damit wieder gesperrte Aktivitäten fortsetzen oder andere Aufgaben ausführen, die zur Interaktion bereit sind.
Im AdMob AdListener-Beispiel finden Sie eine Implementierung der Anzeigen-Listener-Methoden in der Android API Demo Demo.
|
onAdFailedToLoad() |
Die onAdFailedToLoad() -Methode ist die einzige, die einen Parameter enthält. Der Fehlerparameter des Typs 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. Hier kannst du beispielsweise
AdView zu deiner Aktivität oder deinem Fragment hinzufügen, bis du sicher bist, dass eine Anzeige geladen wird.
|
onAdOpened() |
Die Methode onAdOpened() wird aufgerufen, wenn eine Anzeige ein Overlay öffnet, das den Bildschirm verdeckt.
|
Bannergrößen
Die Größe des Containers, in dem Ihre Anzeige platziert wird, muss mindestens so groß sein wie das Banner. Wenn Ihr Container Abstand hat, wird die Größe Ihres Containers effektiv reduziert. Falls der Container nicht in die Banneranzeige passt, wird das Banner nicht angezeigt und Sie erhalten diese Warnung in den Logs:
W/Ads: Not enough space to show ad. Needs 320x50 dp, but only has 288x495 dp.
In der folgenden Tabelle sind die Standardgrößen für Banner aufgeführt.
Größe in dp (BxH) | Beschreibung | Verfügbarkeit | AdSize-Konstante |
---|---|---|---|
320 x 50 | Banner | Smartphones und Tablets | BANNER |
320 × 100 | Großes Banner | Smartphones und Tablets | LARGE_BANNER |
300 x 250 | IAB-Medium Rectangle | Smartphones und Tablets | MEDIUM_RECTANGLE |
468 × 60 | IAB-Banner in Originalgröße | Tablets | FULL_BANNER |
728 x 90 | IAB-Bestenliste | 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 |
Wenn Sie eine benutzerdefinierte Bannergröße definieren möchten, legen Sie den gewünschten AdSize
so fest:
Java
AdSize adSize = new AdSize(300, 50);
Kotlin
val adSize = AdSize(300, 50)
Hardwarebeschleunigung für Videoanzeigen
Damit Videoanzeigen in Ihren Banneranzeigenansichten präsentiert werden, muss die Hardwarebeschleunigung aktiviert werden.
Die Hardwarebeschleunigung ist standardmäßig aktiviert, kann jedoch von einigen Apps deaktiviert werden. Wenn dies auf Ihre App zutrifft, empfehlen wir, die Hardwarebeschleunigung für Activity
-Klassen zu aktivieren, die Anzeigen verwenden.
Hardwarebeschleunigung aktivieren
Wenn Ihre Anwendung bei aktivierter Hardwarebeschleunigung nicht richtig 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 der AndroidManifest.xml
verwenden. Im folgenden Beispiel wird die Hardwarebeschleunigung für die gesamte Anwendung aktiviert, sie wird jedoch 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 zum Steuern der Hardwarebeschleunigung finden Sie im Leitfaden zur Hardwarebeschleunigung. Für einzelne Anzeigenansichten kann die Hardwarebeschleunigung nicht aktiviert werden, wenn die Aktivität deaktiviert ist. Die Aktivität muss also aktiviert sein.
Weitere Informationen
Beispiele auf GitHub
Beispiel-App für Banner-RecyclerView: Java
Video-Tutorials zu Google Mobile Ads Workshop
Erfolgsgeschichten
Nächste Schritte
Sehen Sie sich die folgenden Themen an: