Banneranzeigen

Banneranzeigen belegen eine Position in einem App-Layout, entweder oben oder unten auf dem Bildschirm des Geräts. 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 erfährst du, wie du Banneranzeigen vonAdMob in eine Android-App einbindest. Zusätzlich zu Code-Snippets und Anleitungen enthält er auch Informationen zur korrekten Größenanpassung von Bannern und zu zusätzlichen Ressourcen.

Vorbereitung

Dem Layout AdView hinzufügen

Der erste Schritt für die Darstellung eines Banners ist die Platzierung von AdView im Layout für Activity oder Fragment, in dem es angezeigt werden soll. Am einfachsten ist es, sie einer XML-Layoutdatei hinzuzufügen. Hier siehst du ein Beispiel für eine Aktivität 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>
...

Beachten Sie die folgenden erforderlichen Attribute:

  • ads:adSize – Geben Sie hier die gewünschte Anzeigengröße an. Wenn Sie die durch die Konstante definierte Standardgröße nicht verwenden möchten, können Sie stattdessen eine benutzerdefinierte Größe festlegen. Weitere Informationen finden Sie unten im Abschnitt Bannergröße.
  • ads:adUnitId: Setzen Sie diese auf die eindeutige Kennung, die dem Anzeigenblock in Ihrer App zugewiesen ist, in dem Anzeigen ausgeliefert werden sollen. Wenn Sie Banneranzeigen in verschiedenen Aktivitäten ausliefern, ist für jeden davon ein Anzeigenblock erforderlich.

Alternativ kannst du 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 keine Testanzeigen, sondern Testanzeigen. Fehlen sie, kann Ihr Konto gesperrt werden.

Dies lässt sich am einfachsten mit der Test-Anzeigenblock-ID für Android-Banner laden:

ca-app-pub-3940256099942544/6300978111

Sie wurde speziell dafür entwickelt, für jede Anfrage Testanzeigen zurückzugeben. Außerdem kannst du es beim Programmieren, Testen und Debuggen in deinen eigenen Apps verwenden. Ersetzen Sie ihn vor der Veröffentlichung durch Ihre eigene Anzeigenblock-ID.

Weitere Informationen zur Funktionsweise von Testanzeigen des Mobile Ads SDKs finden Sie unter Testanzeigen.

Anzeige laden

Anschließend AdView laden Sie eine Anzeige. Dazu musst du die Methode loadAd() in der Klasse AdView verwenden. Sie verwendet einen AdRequest-Parameter, der Laufzeitinformationen wie Targeting-Informationen zu einer einzelnen Anzeigenanfrage enthält.

Hier sehen Sie ein Beispiel für das Laden einer Anzeige mit der Methode onCreate() eines Activity:

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

Du kannst die Funktionsweise deiner Anzeige weiter anpassen, indem du verschiedene Ereignisse im Lebenszyklus der Anzeige nutzt: Laden, Öffnen, Schließen usw. Sie können diese Ereignisse über die Klasse AdListener erfassen.

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 einer Ziel-URL einer Anzeige zur App zurückkehrt. Ihre Anwendung kann sie verwenden, um gesperrte Aktivitäten fortzusetzen oder andere Schritte auszuführen, die zur Interaktion bereit sind. Eine Implementierung der Anzeigen-Listener-Methoden in der Android API Demo App findest du im AdMob-Beispiel AdListener.
onAdFailedToLoad() Die Methode onAdFailedToLoad() ist die einzige Möglichkeit, die einen Parameter enthält. Der Fehlerparameter vom Typ LoadAdError beschreibt den Fehler. Weitere Informationen finden Sie unter Fehlerbehebung bei Anzeigenfehlern.
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 vollständig geladen wurde. Wenn du beispielsweise das AdView zu deiner Aktivität oder deinem Fragment hinzufügen möchtest, bis du sicher bist, dass eine Anzeige geladen wird, kannst du das beispielsweise hier tun.
onAdOpened() Die Methode onAdOpened() wird aufgerufen, wenn eine Anzeige ein Overlay öffnet, das den Bildschirm verdeckt.

In der folgenden Tabelle sind die Standardgrößen von Bannern aufgeführt.

Größe in dp (BxH) Beschreibung Verfügbarkeit AdSize-Konstante
320 × 50 Banner Telefone und Tablets BANNER
320 × 100 Großes Banner Telefone und Tablets LARGE_BANNER
300 x 250 IAB-Medium Rectangle Telefone 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 Telefone und Tablets
Bildschirmbreite x 32|50|90 Smart-Banner Telefone und Tablets SMART_BANNER
Weitere Informationen zu adaptiven Bannern, die eine Alternative zu Smart-Bannern bieten

Zum Definieren einer benutzerdefinierten Bannergröße legen Sie den gewünschten AdSize fest, wie hier gezeigt:

Java

AdSize adSize = new AdSize(300, 50);

Kotlin

val adSize = AdSize(300, 50)

Hardwarebeschleunigung für Videoanzeigen

Damit Videoanzeigen in den Ansichten der Banneranzeigen eingeblendet werden können, muss die Hardwarebeschleunigung aktiviert sein.

Die Hardwarebeschleunigung ist standardmäßig aktiviert, kann aber bei einigen Apps deaktiviert werden. Wenn dies auf deine App zutrifft, empfehlen wir, die Hardwarebeschleunigung für Aktivitätsklassen zu aktivieren, in denen Anzeigen verwendet werden.

Hardwarebeschleunigung aktivieren

Wenn Ihre App nicht richtig funktioniert, wenn die Hardwarebeschleunigung global aktiviert ist, können Sie sie auch für einzelne Aktivitäten steuern. Wenn du die Hardwarebeschleunigung aktivieren oder deaktivieren möchtest, kannst du das android:hardwareAccelerated-Attribut für die Elemente <application> und <activity> in deinem 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 zur Steuerung der Hardwarebeschleunigung findest du im HW-Beschleunigungsleitfaden. Beachten Sie, dass einzelne Anzeigenaufrufe nicht für die Hardwarebeschleunigung aktiviert werden können, wenn die Aktivität deaktiviert ist. Daher muss für die Aktivität selbst die Hardwarebeschleunigung aktiviert sein.

Weitere Informationen

Beispiele auf GitHub

  • Beispiel für Banneranzeigen: Java | Kotlin

  • Demo für erweiterte Funktionen: Java | Kotlin

  • Beispiel-App für Banner-RecyclerView: Java

Videoanleitungen zur Garage für mobile Anzeigen

Erfolgsgeschichten