Native Anzeigen

Plattform auswählen:Android iOS Flutter Unity

Native Anzeigen sind Anzeigen-Assets, die Nutzern über plattformspezifische UI-Komponenten präsentiert werden. Native Anzeigen werden unter Verwendung der gleichen Ansichtstypen dargestellt, mit denen Sie bereits Ihre Layouts erstellen. Außerdem können sie so formatiert werden, dass sie mit dem visuellen Design Ihrer App übereinstimmen.

Wenn eine native Anzeige geladen wird, erhält Ihre App ein Anzeigenobjekt, das die Assets enthält. Die App und nicht das Google Mobile Ads SDK ist dann für die Darstellung der Assets verantwortlich.

Die Implementierung nativer Anzeigen lässt sich in zwei Teile unterteilen: Laden einer Anzeige mit dem SDK und Anzeigen des Anzeigeninhalts in Ihrer App.

Auf dieser Seite erfahren Sie, wie Sie mit dem SDK native Anzeigen laden. Tipp: Weitere Informationen zu nativen Anzeigen finden Sie in unserem Handbuch zu nativen Anzeigen.

Fallstudie 1, Fallstudie 2.

Vorbereitung

Immer Testanzeigen verwenden

Verwenden Sie beim Entwickeln und Testen Ihrer Apps Testanzeigen anstelle von Live-Anzeigen.

Testanzeigen lassen sich am einfachsten mit unserer speziellen Test-Anzeigenblock-ID für native Anzeigen unter Android laden:

ca-app-pub-3940256099942544/2247696110

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.

Anzeigen laden

Native Anzeigen werden mit der Klasse AdLoader geladen, die eine eigene Klasse Builder hat, um sie bei der Erstellung anzupassen. Durch das Hinzufügen von Listenern zum AdLoader beim Erstellen einer App wird angegeben, welche Arten von nativen Anzeigen sie empfangen kann. Die AdLoader fordert dann nur diese Typen an.

AdLoader erstellen

Der folgende Code zeigt, wie Sie ein AdLoader-Objekt erstellen, mit dem native Anzeigen geladen werden können:

Java

AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110}")
    .forNativeAd { ad : >NativeAd -
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

Die Methode forNativeAd() ist für die Vorbereitung des AdLoader für das NativeAd-Format verantwortlich. Wenn eine Anzeige erfolgreich geladen wurde, wird die Methode onNativeAdLoaded() des Listener-Objekts aufgerufen.

AdListener mit dem AdLoader einrichten (optional)

Beim Erstellen von AdLoader wird mit der Funktion withAdListener ein AdListener für den Loader festgelegt. Die Methode verwendet AdListener als einzigen Parameter, der Callbacks von AdLoader empfängt, wenn Ereignisse im Anzeigen-Lifecycle stattfinden:

Java

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

Kotlin

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

Anzeigenanfrage senden

Nachdem Sie ein AdLoader erstellt haben, können Sie es verwenden, um Anzeigen anzufordern. Dafür stehen zwei Methoden zur Verfügung: loadAd() und loadAds().

loadAd()

Mit dieser Methode wird eine Anfrage für eine einzelne Anzeige gesendet.

Java

adLoader.loadAd(new AdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdRequest.Builder().build())

loadAds()

Bei dieser Methode wird eine Anfrage für mehrere Anzeigen (bis zu fünf) gesendet:

Java

adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

adLoader.loadAds(AdRequest.Builder().build(), 3)

Beide Methoden verwenden ein AdRequest-Objekt als ersten Parameter. Dies ist dieselbe AdRequest-Klasse, die für Banner und Interstitials verwendet wird. Sie können Methoden der AdRequest-Klasse verwenden, um Targeting-Informationen hinzuzufügen, genau wie bei anderen Anzeigenformaten.

Mehrere Anzeigen laden (optional)

Die Methode loadAds() verwendet einen zusätzlichen Parameter: die Anzahl der Anzeigen, die das SDK für die Anfrage laden soll. Diese Zahl ist auf fünf begrenzt. Es ist nicht garantiert, dass das SDK die genaue Anzahl der angeforderten Anzeigen zurückgibt.

Die zurückgegebenen Google-Anzeigen unterscheiden sich alle voneinander. Anzeigen aus reserviertem Inventar oder von Drittanbieterkäufern sind jedoch nicht garantiert eindeutig.

Verwenden Sie die loadAds()-Methode nicht, wenn Sie Mediation verwenden, da Anfragen für mehrere native Anzeigen derzeit nicht für Anzeigenblock-IDs funktionieren, die für Mediation konfiguriert wurden.

Callbacks

Nach einem Aufruf von loadAd() wird ein einzelner Callback an die zuvor definierten Listener-Methoden gesendet, um das native Anzeigenobjekt zu übermitteln oder einen Fehler zu melden.

Nach einem Aufruf von loadAds() werden mehrere solcher Callbacks ausgeführt (mindestens einer und höchstens so viele wie die Anzahl der angeforderten Anzeigen). Apps, die mehrere Anzeigen anfordern, sollten in ihren Callback-Implementierungen AdLoader.isLoading() aufrufen, um festzustellen, ob der Ladevorgang abgeschlossen ist.

Hier ein Beispiel dafür, wie Sie isLoading() im onNativeAdLoaded()-Callback prüfen:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading()) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)

Ressourcen freigeben

Verwenden Sie die destroy()-Methode für geladene native Anzeigen. Dadurch werden verwendete Ressourcen freigegeben und Speicherlecks verhindert.

Achten Sie darauf, dass alle NativeAd-Verweise in der onDestroy()-Methode Ihrer Aktivität zerstört werden.

Achten Sie darauf, dass im onNativeAdLoaded-Callback alle vorhandenen nativen Anzeigen zerstört werden, auf die nicht mehr verwiesen wird.

Eine weitere wichtige Prüfung ist, ob die Aktivität zerstört wird. Wenn dies der Fall ist, rufen Sie destroy() für die zurückgegebene Anzeige auf und kehren Sie sofort zurück:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            nativeAd.destroy();
            return;
        }
        ...
    }
}).build();

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { >nativeAd -
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

Best Practices

Beachten Sie beim Laden von Anzeigen die folgenden Regeln.

  • Bei Apps, in denen Native Ads in einer Liste verwendet werden, sollte die Liste der Anzeigen vorab im Cache gespeichert werden.

  • Wenn Sie Anzeigen vorab im Cache speichern, leeren Sie den Cache und laden Sie die Seite nach einer Stunde neu.

  • Rufen Sie loadAd() oder loadAds() auf einem AdLoader erst auf, wenn die erste Anfrage geladen wurde.
  • Beschränken Sie das Caching nativer Anzeigen auf das, was wirklich benötigt wird. Beim Pre-Caching sollten Sie beispielsweise nur die Anzeigen im Cache speichern, die sofort auf dem Bildschirm sichtbar sind. Native Anzeigen haben einen großen Speicherbedarf. Wenn Sie native Anzeigen im Cache speichern, ohne sie zu zerstören, führt das zu einer übermäßigen Speichernutzung.

  • Native Anzeigen zerstören, wenn sie nicht mehr verwendet werden.

Hardwarebeschleunigung für Videoanzeigen

Damit Videoanzeigen in Ihren nativen Anzeigenansichten erfolgreich ausgeliefert werden können, muss die Hardwarebeschleunigung aktiviert sein.

Die Hardwarebeschleunigung ist standardmäßig aktiviert, kann aber von einigen Apps deaktiviert werden. Wenn das 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. Verwenden Sie das Attribut android:hardwareAccelerated für die Elemente <application> und <activity> in Ihrem AndroidManifest.xml, um die Hardwarebeschleunigung zu aktivieren oder zu deaktivieren. Im folgenden Beispiel wird die Hardwarebeschleunigung für die gesamte App aktiviert, aber für eine Aktivität deaktiviert:

<application android:hardwareAccelerated=">true&<quot;
    !-- For activities that use ads, hardwareAcceleration should b>e tru<e. --
    activity android:hardwareAccelerate>d=&qu<ot;true" /
    !-- For activities that don't use ads, hardwareAccel>erati<on can be false. --
    activity android:hardw>a<reAccelerate>d="false" /
/application

Weitere Informationen zu Optionen zum Steuern der Hardwarebeschleunigung finden Sie im Leitfaden zur Hardwarebeschleunigung. Einzelne Anzeigenaufrufe können nicht für die Hardwarebeschleunigung aktiviert werden, wenn die Aktivität deaktiviert ist. Für die Aktivität selbst muss also die Hardwarebeschleunigung aktiviert sein.

Anzeige schalten

Nachdem Sie eine Anzeige geladen haben, müssen Sie sie nur noch Ihren Nutzern präsentieren. Hier finden Sie eine Anleitung.