Banneranzeigen

Plattform auswählen:Android iOS Unity Flutter

Banneranzeigen sind rechteckige Anzeigen, die einen Teil der App-Oberfläche einnehmen. Adaptive Ankerbanner haben ein festes Seitenverhältnis und bleiben auf dem Bildschirm, während Nutzer mit der App interagieren. Sie sind entweder oben oder unten auf dem Bildschirm verankert.

In diesem Leitfaden wird beschrieben, wie Sie ein adaptives Ankerbanner in eine Android-App laden.

Vorbereitung

  • Führen Sie die Schritte im Startleitfaden aus.
  • Optional: Wenn Sie ein Beispiel für die Implementierung von Banneranzeigen sehen möchten, wählen Sie eine der folgenden Beispiel-Apps aus:

Immer Testanzeigen verwenden

Verwenden Sie beim Entwickeln und Testen Ihrer Apps Testanzeigen anstelle von Live-Anzeigen. Andernfalls kann es zu einer Kontosperrung kommen.

Am einfachsten lassen sich Testanzeigen mit unserer speziellen Testanzeigenblock-ID für Android-Banner laden:

ca-app-pub-3940256099942544/9214589741

Sie ist speziell dafür konfiguriert, für jede Anfrage Testanzeigen zurückzugeben. Sie können sie in Ihren eigenen Apps verwenden, während Sie Code schreiben, testen und debuggen. Denken Sie daran, die ID vor der Veröffentlichung Ihrer App durch Ihre eigene Anzeigenblock-ID zu ersetzen.

Weitere Informationen zur Funktionsweise von Testanzeigen im Google Mobile Ads SDK finden Sie unter Testanzeigen aktivieren.

Anzeigenansicht definieren

XML-Layout

Fügen Sie Ihrer Layout-XML-Datei eine Ansicht hinzu, die als Container für Ihr verankertes adaptives Banner dient:

<!-- Ad view container that fills the width of the screen and adjusts its
    height to the content of the ad. -->
<FrameLayout
        android:id="@+id/ad_view_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_alignParentBottom="true" />

Jetpack Compose

  1. Schritt 1: Das Modul JetpackComposeDemo/compose-util einbinden. Dieses Modul enthält Hilfsfunktionen zum Erstellen des AdView-Objekts und von Assets.

  2. Zweitens: Erstellen Sie eine BannerAd-Klasse mit dem compose-util-Modul:


// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
  Box(modifier = modifier.fillMaxWidth()) { BannerAd(adView, modifier) }
}

Anzeigengröße festlegen

Legen Sie AdSize auf einen verankerten adaptiven Bannertyp mit einer bestimmten Breite fest:

Java

// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360));

Kotlin

// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360))

Jetpack Compose


// Set the adaptive banner ad size with a given width.
val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)

AdView zum Layout hinzufügen

Erstellen Sie ein AdView mit der Anzeigengröße, die Sie dem Layout Ihrer App hinzufügen möchten:

Java


// Create a new ad view.
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT_ID);
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360));

// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);

Kotlin


// Create a new ad view.
val adView = AdView(this)
adView.adUnitId = AD_UNIT_ID
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360))
this.adView = adView

// Replace ad container with new ad view.
binding.adViewContainer.removeAllViews()
binding.adViewContainer.addView(adView)

Jetpack Compose


val adView = remember { AdView(context) }

// Setup and load the adview.
// Set the unique ID for this specific ad unit.
adView.adUnitId = BANNER_AD_UNIT_ID

// Set the adaptive banner ad size with a given width.
val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)

// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
  Box(modifier = modifier.fillMaxWidth()) { BannerAd(adView, modifier) }
}

Anzeige laden

Sobald die AdView vorhanden ist, müssen Sie als Nächstes eine Anzeige laden. Dies geschieht mit der Methode loadAd() in der Klasse AdView. Er verwendet den Parameter AdRequest, der Laufzeitinformationen wie Targeting-Informationen zu einer einzelnen Anzeigenanfrage enthält.

Hier ein Beispiel für das Laden einer Anzeige:

Java

AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build();
adView.loadAd(adRequest);

Kotlin

val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)

Wenn die Einrichtung erfolgreich war, können in Ihrer App Banneranzeigen ausgeliefert werden.

Anzeige aktualisieren

Wenn Sie Ihren Anzeigenblock für die Aktualisierung konfiguriert haben, müssen Sie keine weitere Anzeige anfordern, wenn die Anzeige nicht geladen wird. Das Google Mobile Ads SDK berücksichtigt jede Aktualisierungsrate, die Sie in der AdMob-Benutzeroberfläche angegeben haben. Wenn Sie die Aktualisierung nicht aktiviert haben, stellen Sie eine neue Anfrage. Weitere Informationen zur Aktualisierung von Anzeigenblöcken, z. B. zum Festlegen einer Aktualisierungsrate, finden Sie unter Automatische Aktualisierung für Banneranzeigen verwenden.

Anzeigenressource freigeben

Wenn Sie eine Banneranzeige nicht mehr benötigen, können Sie die Ressourcen der Banneranzeige freigeben.

Wenn Sie die Ressourcen der Anzeige freigeben möchten, entfernen Sie die Anzeige aus der Ansichtshierarchie und löschen Sie alle Verweise darauf:

Kotlin

// Remove banner from view hierarchy.
val parentView = adView?.parent
if (parentView is ViewGroup) {
  parentView.removeView(adView)
}

// Destroy the banner ad resources.
adView?.destroy()

// Drop reference to the banner ad.
adView = null

Java

// Remove banner from view hierarchy.
if (adView.getParent() instanceof ViewGroup) {
  ((ViewGroup) adView.getParent()).removeView(adView);
}
// Destroy the banner ad resources.
adView.destroy();
// Drop reference to the banner ad.
adView = null;

Jetpack Compose


DisposableEffect(Unit) {
  // Destroy the AdView to prevent memory leaks when the screen is disposed.
  onDispose { adView.destroy() }
}

Anzeigenereignisse

Sie können eine Reihe von Ereignissen im Lebenszyklus der Anzeige erfassen, darunter Lade-, Anzeigenimpressions- und Klickereignisse sowie Ereignisse zum Öffnen und Schließen von Anzeigen. Es wird empfohlen, den Callback vor dem Laden des Banners festzulegen.

Java

adView.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

adView.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 Aufrufen der Ziel-URL einer Anzeige zur App zurückkehrt. Ihre App kann sie verwenden, um angehaltene Aktivitäten fortzusetzen oder andere Aufgaben auszuführen, die erforderlich sind, um sich für die Interaktion vorzubereiten. Ein Beispiel für die Implementierung der AdListener-Methoden in der Android API Demo-App finden Sie im AdMob AdListener-Beispiel.
onAdFailedToLoad() Die Methode onAdFailedToLoad() ist die einzige, die einen Parameter enthält. Der Fehlerparameter vom Typ LoadAdError beschreibt, welcher Fehler aufgetreten ist. Weitere Informationen finden Sie in der Dokumentation zur Fehlerbehebung bei Anzeigenladevorgängen.
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 geladen wurde. 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, können Sie das beispielsweise hier tun.
onAdOpened() Die Methode onAdOpened()> wird aufgerufen, wenn durch eine Anzeige ein Overlay geöffnet wird, das den Bildschirm abdeckt.

Hardwarebeschleunigung für Videoanzeigen

Damit Videoanzeigen in Ihren Banneranzeigen-Impressionen erfolgreich 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 Ihre App zutrifft, empfehlen wir, die Hardwarebeschleunigung für Activity-Klassen zu aktivieren, in denen Anzeigen verwendet werden.

Hardwarebeschleunigung aktivieren

Wenn Ihre App bei global aktivierter Hardwarebeschleunigung nicht ordnungsgemäß funktioniert, können Sie sie auch für einzelne Aktivitäten steuern. Um die Hardwarebeschleunigung zu aktivieren oder zu deaktivieren, können Sie das Attribut android:hardwareAccelerated für die Elemente <application> und <activity> in Ihrem 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 den Optionen zum Steuern der Hardwarebeschleunigung finden Sie im Leitfaden zur Hardwarebeschleunigung. Einzelne Anzeigenansichten können nicht für die Hardwarebeschleunigung aktiviert werden, wenn die Aktivität deaktiviert ist. Die Aktivität selbst muss also die Hardwarebeschleunigung aktiviert haben.

Nächste Schritte

Minimierbare Banner

Minimierbare Banneranzeigen werden zuerst als größeres Overlay mit einer Schaltfläche zum Minimieren der Anzeige auf eine kleinere Größe präsentiert. Sie können damit die Leistung weiter optimieren. Weitere Informationen

Adaptive Inline-Banner

Adaptive Inline-Banner sind größer und höher als verankerte adaptive Banner. Sie haben eine variable Höhe und können so hoch wie der Gerätebildschirm sein. Adaptive Inline-Banner werden für Apps, in denen Banneranzeigen in scrollbaren Inhalten platziert werden, gegenüber adaptiven Ankerbannern empfohlen. Weitere Informationen finden Sie unter Inline-adaptive Banner.

Weitere Themen ansehen