Banneranzeigen

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

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.

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 für Banneranzeigen: Java | Kotlin

  • Demo der erweiterten Funktionen: Java | Kotlin

  • 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: