Banneranzeigen

Banneranzeigen nehmen einen Platz im Layout einer 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 Anfang. Fallstudie.

In diesem Leitfaden erfahren Sie, wie Sie Banneranzeigen ausAdMob in eine Android-App einbinden. Neben Code-Snippets und Anleitungen enthält sie auch Informationen zur richtigen Größe von Bannern und Links zu weiteren Ressourcen.

Voraussetzungen

Zum Layout AdView hinzufügen

Damit ein Banner eingeblendet werden kann, musst du zuerst AdView in das Layout für das Activity- oder Fragment-Element 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 für die 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 hier die gewünschte Anzeigengröße fest. 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 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 verschiedenen Aktivitäten schalten, ist jeweils 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 anstelle von Produktionsanzeigen. Andernfalls kann dein Konto gesperrt werden.

Die einfachste Methode zum Laden von Testanzeigen ist die Verwendung unserer speziellen Anzeigenblock-ID für Testanzeigen für Android-Banner:

ca-app-pub-3940256099942544/6300978111

Er wurde speziell so konfiguriert, dass bei jeder Anfrage Testanzeigen zurückgegeben werden. Sie können ihn beim Programmieren, 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. Sie verwendet einen AdRequest-Parameter, der Laufzeitinformationen wie Targeting-Informationen zu einer einzelnen Anzeigenanfrage enthält.

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)
    }
}

Falls Ihre Anzeige nicht geladen werden kann, müssen Sie keine weitere explizit anfordern, sofern 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 Ihrer Anzeige weiter anzupassen, können Sie verschiedene Ereignisse im Lebenszyklus der Anzeige festlegen: Laden, Öffnen, Schließen usw. Diese Ereignisse lassen sich mit der Klasse AdListener überwachen.

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 nach dem Ansehen der Ziel-URL einer Anzeige zur App zurückkehrt. Ihre App kann damit gesperrte Aktivitäten wieder aufnehmen oder andere Aktionen ausführen, die zur Vorbereitung auf eine Interaktion notwendig sind. Eine Implementierung der Anzeigen-Listener-Methoden in der Android API Demo App finden Sie im AdMob-AdListener-Beispiel.
onAdFailedToLoad() Die Methode onAdFailedToLoad() ist die einzige Methode, 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 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, zum Beispiel hier.
onAdOpened() Die Methode onAdOpened() wird aufgerufen, wenn durch eine Anzeige ein Overlay geöffnet wird, das den gesamten Bildschirm einnimmt.

Die Größe des Containers, in dem Sie die Anzeige platzieren, muss mindestens so groß wie das Banner sein. Wenn der Container einen Innenrand hat, wird die Größe des Containers effektiv reduziert. Falls die Banneranzeige nicht in den Container 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
320x50 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

Legen Sie wie hier gezeigt die gewünschte AdSize fest, um eine benutzerdefinierte Bannergröße festzulegen:

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 können, muss die Hardwarebeschleunigung aktiviert sein.

Die Hardwarebeschleunigung ist standardmäßig aktiviert, kann aber von einigen Apps deaktiviert werden. Wenn dies auf deine App zutrifft, empfehlen wir, die Hardwarebeschleunigung für Activity-Klassen zu aktivieren, die Anzeigen verwenden.

Aktivieren der Hardwarebeschleunigung

Wenn sich Ihre Anwendung mit global aktivierter Hardwarebeschleunigung nicht ordnungsgemäß verhält, 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 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 zu den 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: