Banneranzeigen

Banneranzeigen nehmen einen Platz im App-Layout 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 erfahren Sie, wie Sie Banneranzeigen ausAdMob in eine Android-App einbinden. Neben Code-Snippets und Anleitungen enthält er auch Informationen zur richtigen Größenanpassung von Bannern sowie Links zu weiteren Ressourcen.

Voraussetzungen

AdView zum Layout hinzufügen

Damit ein Banner angezeigt werden kann, musst du zuerst AdView in das Layout für das Activity oder Fragment einfügen, in dem das Banner angezeigt werden soll. Dies geht am einfachsten, indem Sie sie der entsprechenden XML-Layoutdatei hinzufügen. Hier ist ein Beispiel, das den AdView einer Aktivität zeigt:

# 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 hier 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 hierzu finden Sie im Abschnitt zur Bannergröße.

  • ads:adUnitId: Geben Sie hier die eindeutige Kennung des Anzeigenblocks in der App an, in dem Anzeigen ausgeliefert werden sollen. Wenn Sie Banneranzeigen bei unterschiedlichen Aktivitäten ausliefern, 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

Verwenden Sie beim Erstellen und Testen Ihrer Apps Testanzeigen und keine Liveanzeigen. Andernfalls kann Ihr Konto gesperrt werden.

Testanzeigen lassen sich am einfachsten mit unserer speziellen Test-ID für Anzeigenblöcke für Android-Banner laden:

ca-app-pub-3940256099942544/6300978111

Sie wurde speziell so konfiguriert, dass bei jeder Anfrage Testanzeigen zurückgegeben werden. Sie können sie beim Codieren, Testen und Debuggen in Ihren eigenen Apps verwenden. Ersetzen Sie sie einfach durch Ihre eigene Anzeigenblock-ID, bevor Sie Ihre App veröffentlichen.

Weitere Informationen zur Funktionsweise der Testanzeigen des Mobile Ads SDK finden Sie unter Testanzeigen.

Anzeige laden

Sobald AdView vorhanden ist, wird im nächsten Schritt eine Anzeige geladen. Dazu verwenden Sie die Methode loadAd() in der Klasse AdView. Dafür wird ein AdRequest-Parameter verwendet, der Laufzeitinformationen zu einer einzelnen Anzeigenanfrage enthält, z. B. Targeting-Informationen.

Das folgende Beispiel zeigt, wie eine Anzeige in der onCreate()-Methode eines 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)
    }
}

Wenn Ihre Anzeige nicht geladen werden kann, müssen Sie nicht explizit eine weitere anfordern, solange Sie Ihren Anzeigenblock für die Aktualisierung konfiguriert haben. Das Google Mobile Ads SDK berücksichtigt jede Aktualisierungsrate, die Sie in der WeboberflächeAdMob angegeben haben. Wenn Sie die Aktualisierung nicht aktiviert haben, müssen Sie eine neue Anfrage senden.

Fertig! In Ihrer App können jetzt Banneranzeigen ausgeliefert werden.

Anzeigenereignisse

Um das Verhalten der Anzeige weiter anzupassen, können Sie verschiedene Ereignisse im Lebenszyklus der Anzeige verknüpfen: Laden, Öffnen, Schließen usw. Sie können diese Ereignisse mit der Klasse AdListener beobachten.

Wenn Sie ein 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 für eine Anzeige ein Klick erfasst wird.
onAdClosed() Die Methode onAdClosed() wird aufgerufen, wenn ein Nutzer zur App zurückkehrt, nachdem er sich die Ziel-URL einer Anzeige angesehen hat. Ihre App kann damit angehaltene Aktivitäten fortsetzen oder andere Aufgaben ausführen, die erforderlich sind, um sich auf die Interaktion vorzubereiten. Eine Implementierung der Anzeigen-Listener-Methoden in der Android API Demo App findest du im Beispiel für AdMob AdListener.
onAdFailedToLoad() Die Methode onAdFailedToLoad() ist die einzige Methode, die einen Parameter enthält. Ein 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 das Laden einer Anzeige abgeschlossen ist. Wenn Sie das Hinzufügen von AdView zu Ihrer Aktivität oder Ihrem Fragment verzögern möchten, bis Sie sicher sind, dass eine Anzeige geladen wird. Das ist beispielsweise hier möglich.
onAdOpened() Die Methode onAdOpened() wird aufgerufen, wenn durch eine Anzeige ein Overlay geöffnet wird, das den Bildschirm bedeckt.

Die Größe des Containers, in dem Sie Ihre Anzeige platzieren, muss mindestens so groß wie das Banner sein. Wenn Ihr Container einen Innenabstand hat, wird die Größe des Containers effektiv reduziert. Falls der Container nicht in die Banneranzeige passt, wird das Banner nicht angezeigt und in den Logs wird die folgende Warnung angezeigt:

W/Ads: Not enough space to show ad. Needs 320x50 dp, but only has 288x495 dp.

In der folgenden Tabelle sind die Standardbannergrößen aufgeführt.

Größe in dp (B x H) 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 voller Größ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

Um eine benutzerdefinierte Bannergröße zu definieren, lege die gewünschte AdSize fest:

Java

AdSize adSize = new AdSize(300, 50);

Kotlin

val adSize = AdSize(300, 50)

Hardwarebeschleunigung für Videoanzeigen

Damit Videoanzeigen in den Aufrufen Ihrer Banneranzeigen ausgeliefert werden, muss die Hardwarebeschleunigung aktiviert sein.

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 ordnungsgemäß funktioniert, können Sie sie auch für einzelne Aktivitäten steuern. Zum Aktivieren oder Deaktivieren der Hardwarebeschleunigung können Sie das Attribut android:hardwareAccelerated für die Elemente <application> und <activity> in AndroidManifest.xml verwenden. Im folgenden Beispiel wird die Hardwarebeschleunigung für die gesamte App 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 zu Optionen zur Steuerung der Hardwarebeschleunigung findest du im Leitfaden zur Hardwarebeschleunigung. Für einzelne Anzeigenaufrufe kann die Hardwarebeschleunigung nicht aktiviert werden, wenn die Aktivität deaktiviert ist. Für die Aktivität selbst muss also die Hardwarebeschleunigung aktiviert sein.

Weitere Ressourcen

Beispiele auf GitHub

  • Beispiel für Banneranzeigen: Java | Kotlin

  • Demo der erweiterten Funktionen: Java | Kotlin

  • Banner RecyclerView: Beispiel-App: Java

Videoanleitungen der Google Zukunftswerkstatt

Erfolgsgeschichten

Nächste Schritte

Sehen Sie sich die folgenden Themen an: