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
- Arbeiten Sie den Startleitfaden durch.
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.
|
Bannergrößen
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
Banner RecyclerView: Beispiel-App: Java
Videoanleitungen der Google Zukunftswerkstatt
Erfolgsgeschichten
Nächste Schritte
Sehen Sie sich die folgenden Themen an: