Banneranzeigen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Banneranzeigen nehmen einen Platz im Layout der 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 Ausgangspunkt.

In diesem Leitfaden wird erläutert, wie Sie Banneranzeigen vonAd Manager in einer Android-App einbinden. Zusätzlich zu Code-Snippets und Anleitungen enthält es auch Informationen zur richtigen Größenanpassung von Bannern und Links zu weiteren Ressourcen.

Voraussetzungen

Dem Layout AdManagerAdView hinzufügen

Der erste Schritt zum Anzeigen eines Banners besteht darin, AdManagerAdView im Layout für Activity oder Fragment zu platzieren, in dem es angezeigt werden soll. Am einfachsten ist es, wenn Sie der entsprechenden Datei eine XML-Layoutdatei hinzufügen. Hier ein Beispiel für den AdManagerAdView einer Aktivität:

# main_activity.xml
...
  <com.google.android.gms.ads.admanager.AdManagerAdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adManagerAdView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true"
      ads:adSize="BANNER"
      ads:adUnitId="/6499/example/banner">
  </com.google.android.gms.ads.admanager.AdManagerAdView>
...

Beachten Sie die folgenden erforderlichen Attribute:

  • ads:adSize: Legen Sie 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 finden Sie unten im Abschnitt Bannergröße.
  • ads:adUnitId: Legen Sie hier die eindeutige ID fest, die dem Anzeigenblock in der App zugewiesen ist, in dem Anzeigen ausgeliefert werden sollen. Banneranzeigen in verschiedenen Aktivitäten erfordern einen Anzeigenblock.

Alternativ können Sie AdManagerAdView programmatisch erstellen:

Java

AdManagerAdView adView = new AdManagerAdView(this);

adView.setAdSizes(AdSize.BANNER);

adView.setAdUnitId("/6499/example/banner");
// TODO: Add adView to your view hierarchy.

Kotlin

val adView = AdManagerAdView(this)

adView.adSizes = AdSize.BANNER

adView.adUnitId = "/6499/example/banner"
// TODO: Add adView to your view hierarchy.

Immer mit Testanzeigen testen

Verwenden Sie beim Erstellen und Testen Ihrer Apps Testanzeigen statt Live-Produktionsanzeigen. Sollten Sie dies nicht tun, kann Ihr Konto gesperrt werden.

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

/6499/example/banner

Sie wurde speziell für die Rückgabe von Testanzeigen für jede Anfrage konfiguriert und kann beim Programmieren, Testen und Debuggen in eigenen Apps verwendet werden. Wichtig ist, dass Sie sie vor der Veröffentlichung Ihrer App durch Ihre eigene Anzeigenblock-ID ersetzen.

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

Anzeige laden

Sobald AdManagerAdView eingerichtet ist, wird im nächsten Schritt eine Anzeige geladen. Dazu verwenden Sie die Methode loadAd() in der Klasse AdManagerAdView. Sie verwenden einen AdManagerAdRequest-Parameter, der Laufzeitinformationen (z. B. Ausrichtungsinformationen) zu einer einzelnen Anzeigenanfrage enthält.

Das folgende Beispiel zeigt, wie eine Anzeige mit der Methode onCreate() einer Activity geladen wird:

MainActivity (Auszug)

Java

package ...

import ...
import com.google.android.gms.ads.admanager.AdManagerAdRequest;
import com.google.android.gms.ads.admanager.AdManagerAdView;

public class MainActivity extends AppCompatActivity {
    private AdManagerAdView mAdManagerAdView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mAdManagerAdView = findViewById(R.id.adManagerAdView);
        AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build();
        mAdManagerAdView.loadAd(adRequest);
    }
}

Kotlin

package ...

import ...
import com.google.android.gms.ads.admanager.AdManagerAdRequest
import com.google.android.gms.ads.admanager.AdManagerAdView

class MainActivity : AppCompatActivity() {

    lateinit var mAdManagerAdView : AdManagerAdView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        mAdManagerAdView = findViewById(R.id.adManagerAdView)
        val adRequest = AdManagerAdRequest.Builder().build()
        mAdManagerAdView.loadAd(adRequest)
    }
}

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

Anzeigenereignisse

Um das Verhalten Ihrer Anzeige weiter anzupassen, können Sie eine Reihe von Ereignissen im Lebenszyklus der Anzeige nutzen: Laden, Öffnen, Schließen usw. Sie können diese Ereignisse über die Klasse AdListener überwachen.

Wenn Sie einen AdListener mit AdManagerAdView verwenden möchten, rufen Sie die Methode setAdListener() auf:

Java

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

mAdManagerAdView.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 zur App zurückkehrt, nachdem er die Ziel-URL aufgerufen hat. Ihre App kann damit wieder gesperrte Aktivitäten fortsetzen oder andere Aktionen ausführen, die zur Interaktion erforderlich sind.
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 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. Wenn Sie beispielsweise das AdManagerAdView zu Ihrer Aktivität oder Ihrem Fragment hinzufügen möchten, bis Sie sicher sind, dass eine Anzeige geladen werden kann, können Sie dies hier tun.
onAdOpened() Die Methode onAdOpened() wird aufgerufen, wenn eine Anzeige mit einem Overlay über dem Bildschirm geöffnet wird.

In der folgenden Tabelle sind die Standardgrößen für Banner aufgeführt.

Größe in dp (BxH) Beschreibung Verfügbarkeit AdSize-Konstante
320 × 50 Banner Smartphones und Tablets BANNER
320 × 100 Großes Banner Smartphones und Tablets LARGE_BANNER
300 × 250 IAB-Medium Rectangle Smartphones und Tablets MEDIUM_RECTANGLE
468 × 60 IAB-Banner in Originalgröße Tablets FULL_BANNER
728 × 90 IAB-Leaderboard 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
Weitere Informationen zu adaptiven Bannern, die als Ersatz für Smart-Banner dienen

Legen Sie die gewünschte AdSize fest, um eine benutzerdefinierte Bannergröße zu definieren:

Java

AdSize adSize = new AdSize(300, 50);

Kotlin

val adSize = AdSize(300, 50)

Benutzerdefinierte Anzeigengröße

Zusätzlich zu den Standardanzeigenblöcken können Sie in Google Ad Manager Anzeigenblöcke beliebiger Größe in einer App ausliefern. Die in einer Anzeigenanfrage festgelegte Größe (Breite, Höhe) muss mit den Abmessungen der in der App dargestellten Anzeige (im folgenden Beispiel AdManagerAdView) übereinstimmen.

Beispiel:

Java

// Define custom AdSize of 250x250 for AdManagerAdView

AdSize customAdSize = new AdSize(250, 250);
AdManagerAdView adView = new AdManagerAdView(this);
adView.setAdSizes(customAdSize);

Kotlin

// Define custom AdSize of 250x250 for AdManagerAdView

val customAdSize = AdSize(250, 250)
val adView = AdManagerAdView(this)
adView.setAdSizes(customAdSize)

Die Implementierung benutzerdefinierter Anzeigengrößen in der Android API Demo App finden Sie im Beispiel für mehrere Ad Manager-Anzeigengrößen.

Mehrere Anzeigengrößen

In Ad Manager lassen sich mehrere Anzeigengrößen für die Auslieferung in AdManagerAdView angeben. Bevor Sie diese Funktion im SDK implementieren, erstellen Sie eine Werbebuchung, die auf denselben Anzeigenblock ausgerichtet ist, der Creatives unterschiedlicher Größe zugeordnet ist.

Übergeben Sie dazu in Ihrer Anwendung einfach mehrere AdSize-Parameter an setAdSizes:

Java

AdManagerAdView adView = new AdManagerAdView(this);
adView.setAdSizes(AdSize.BANNER, new AdSize(120, 20), new AdSize(250, 250));

Kotlin

val adView = AdManagerAdView(this)
adView.setAdSizes(AdSize.BANNER, AdSize(120, 20), AdSize(250, 250))

Wenn sich die Größe von AdManagerAdView zum Zeitpunkt der Aktualisierung ändert, sollte sich das Layout automatisch an die neue Größe anpassen.

Wenn Sie die unterstützten Anzeigengrößen in Ihrer App ändern möchten, rufen Sie einfach setAdSizes mit der neuen Größenliste auf.

Java

// Drop support for 120x20 ad size.
adView.setAdSizes(AdSize.BANNER, new AdSize(250, 250));

Kotlin

// Drop support for 120x20 ad size.
adView.setAdSizes(AdSize.BANNER, AdSize(250, 250))

Für AdManagerAdView wird standardmäßig die im ersten Parameter übergebene Größe verwendet, bis die nächste Anzeige zurückgegeben wird.

Sie können auch mehrere Anzeigengrößen mit dem Attribut ads:adSizes in Ihrer XML-Layoutdatei angeben:

<com.google.android.gms.ads.admanager.AdManagerAdView
   android:id="@+id/multiple_ad_sizes_view"
   android:layout_width="wrap_parent"
   android:layout_height="wrap_content"
   android:layout_alignParentBottom="true"
   android:layout_centerHorizontal="true"
   ads:adSizes="BANNER,120x20,250x250"
   ads:adUnitId="ad unit ID" />

Die Implementierung mehrerer Anzeigengrößen in der Android API Demo App finden Sie im Beispiel für mehrere Ad Manager-Anzeigengrößen.

Manuelle Impressionszählung

Sie können Impressions-Pings manuell an Ad Manager senden, wenn eine Impression unter besonderen Bedingungen erfasst werden soll. Aktivieren Sie dazu AdManagerAdRequest vor dem Laden einer Anzeige für manuelle Impressionen:

Java

AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder()
    .setManualImpressionsEnabled(true)
    .build();

Kotlin

val adRequest = AdManagerAdRequest.Builder()
    .setManualImpressionsEnabled(true)
    .build()

Wenn Sie feststellen, dass eine Anzeige zurückgegeben wurde und auf dem Bildschirm zu sehen ist, können Sie eine Impression manuell erfassen:

Java

mAdManagerAdView.recordManualImpression();

Kotlin

mAdManagerAdView.recordManualImpression()

App-Ereignisse

Mit App-Ereignissen können Sie Anzeigen erstellen, die Nachrichten an den Anwendungscode senden. Die Anwendung kann dann Aktionen auf der Grundlage dieser Nachrichten ausführen.

Mit AppEventListener können Sie Ad Manager-spezifische App-Ereignisse überwachen. Diese Ereignisse können im Lebenszyklus der Anzeige jederzeit auftreten, sogar vor dem Aufruf von onAdLoaded().

Java

public interface AppEventListener {
  void onAppEvent(String name, String info);
}

Kotlin

interface AppEventListener {
    fun onAppEvent(name: String, info: String)
}

void onAppEvent(String name, String info) wird aufgerufen, wenn ein App-Ereignis in einer Anzeige auftritt.

Diese Schnittstelle kann durch Ihre Aktivität oder ein anderes Objekt implementiert werden:

Java

import com.google.android.gms.ads.admanager.*;

public class BannerExample extends Activity implements AppEventListener {
}

Kotlin

import com.google.android.gms.ads.admanager.*

class BannerExample : Activity(), AppEventListener {
}

und dann an AdManagerAdView übergeben:

Java

mAdManagerAdView.setAppEventListener(this);

Kotlin

mAdManagerAdView.appEventListener = this

Das folgende Beispiel zeigt, wie Sie die Hintergrundfarbe Ihrer App in Abhängigkeit von einem App-Ereignis mit einem Farbnamen ändern:

Java

@Override
public void onAppEvent(String name, String info) {
  if ("color".equals(name)) {
    if ("green".equals(info) {
      // Set background color to green.
    } else if ("blue".equals(info) {
      // Set background color to blue.
    } else {
      // Set background color to black.
    }
  }
}

Kotlin

override fun onAppEvent(name: String?, info: String?) {
    if (name == "color") {
        when (info) {
            "green" -> {
                // Set background color to green.
            }
            "blue" -> {
                // Set background color to blue.
            }
            else -> {
                // Set background color to black.
            }
        }
    }
}

Und hier ist das zugehörige Creative, das App-Ereignisnachrichten mit der Farbe an den Listener sendet:

<html>
<head>
  <script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
  <script>
    document.addEventListener("DOMContentLoaded", function() {
      // Send a color=green event when ad loads.
      admob.events.dispatchAppEvent("color", "green");

      document.getElementById("ad").addEventListener("click", function() {
        // Send a color=blue event when ad is clicked.
        admob.events.dispatchAppEvent("color", "blue");
      });
    });
  </script>
  <style>
    #ad {
      width: 320px;
      height: 50px;
      top: 0px;
      left: 0px;
      font-size: 24pt;
      font-weight: bold;
      position: absolute;
      background: black;
      color: white;
      text-align: center;
    }
  </style>
</head>
<body>
  <div id="ad">Carpe diem!</div>
</body>
</html>

Eine Implementierung von App-Ereignissen in der Android API Demo App finden Sie im Beispiel zu Ad Manager-App-Ereignissen.

Hardwarebeschleunigung für Videoanzeigen

Damit Videoanzeigen in Ihren Ansichten für Banneranzeigen ausgeliefert werden, muss die Hardwarebeschleunigung aktiviert sein.

Die Hardwarebeschleunigung ist standardmäßig aktiviert, kann jedoch von einigen Anwendungen deaktiviert werden. Wenn dies auf Ihre App zutrifft, empfehlen wir, die Hardwarebeschleunigung für Aktivitätsklassen zu aktivieren, die Anzeigen verwenden.

Hardwarebeschleunigung aktivieren

Wenn Ihre App bei globaler Hardwarebeschleunigung nicht ordnungsgemäß 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 Ihrem 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 zur Steuerung der Hardwarebeschleunigung finden Sie im Leitfaden zur Hardwarebeschleunigung. Hinweis: Einzelne Anzeigenaufrufe können nicht für die Hardwarebeschleunigung aktiviert werden, 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 eine minimale Implementierung von Banneranzeigen: Java | Kotlin

  • Demo der erweiterten Funktionen: Java | Kotlin

Videoschulungen zu Google Ads für Mobilgeräte