Native Anzeigen

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

Native Anzeigen sind Anzeigenassets, die den Nutzern über native UI-Komponenten präsentiert werden. Sie werden unter Verwendung der gleichen Ansichtsarten dargestellt, mit denen Sie bereits Ihre Layouts erstellen, und können an das visuelle Design der Umgebung angepasst werden, in der sie leben. Das heißt, wenn eine native Anzeige geladen wird, erhält Ihre App ein NativeAd-Objekt, das ihre Assets enthält. Die App und nicht das Google Mobile Ads SDK ist dann für die Auslieferung zuständig.

Ganz allgemein lässt sich sagen, dass die Implementierung von nativen Anzeigen aus zwei Teilen besteht: dem Laden einer Anzeige über das SDK und dem Ausliefern von Anzeigeninhalten in dieser App. Auf dieser Seite geht es darum, wienative Anzeigen mit dem SDK geladen werden.

Voraussetzungen

Anzeige laden

Native Anzeigen werden über die Klasse AdLoader geladen, die eine eigene Builder-Klasse hat, um sie bei der Erstellung anzupassen. Wenn Sie Listener zur Datei AdLoader hinzufügen, während Sie sie erstellen, gibt eine App an, welche Arten von nativen Anzeigen sie empfangen kann. AdLoader fordert dann nur diese Typen an.

Adloader erstellen

Der folgende Code zeigt, wie eine AdLoader erstellt wird, mit der 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 by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

Auf das NativeAd-Format vorbereiten

Mit der ersten Methode oben wird AdLoader für das NativeAd-Format vorbereitet:

forNativeAd()
Durch den Aufruf dieser Methode wird AdLoader so konfiguriert, dass native Anzeigen angefordert werden. Wenn eine Anzeige geladen wurde, wird die Methode onNativeAdLoaded() des Listener-Objekts aufgerufen.

Wenn AdLoader eine Anzeigenanfrage stellt, wählt Google die Anzeige aus, die den Ertrag des Publishers maximiert, und gibt sie zurück.

AdListener mit Adloader verwenden

Beim Erstellen von AdLoader wird mit der Funktion withAdListener ein AdListener festgelegt.

Dieser Schritt ist optional. Die Methode verwendet einen AdListener als einzigen Parameter, der Callbacks von AdLoader empfängt, wenn Lebenszyklusereignisse der Anzeige stattfinden:

Java

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

Kotlin

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

Anzeigen werden geladen

Nachdem Sie eine AdLoader erstellt haben, können Sie damit Anzeigen laden. Dafür gibt es zwei Methoden: loadAd() und loadAds().

Mit der Methode loadAd() wird eine Anfrage für eine einzelne Anzeige gesendet:

loadAd()
Bei dieser Methode wird eine Anfrage für eine einzelne Anzeige gesendet.

Java

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

Kotlin

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

Mit der Methode loadAds() wird eine Anfrage für bis zu fünf Anzeigen 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 auch von Bannern und Interstitials verwendet wird. Wie bei anderen Anzeigenformaten können Sie auch AdRequest-Targeting-Informationen hinzufügen.

loadAds() verwendet einen zusätzlichen Parameter: die Anzahl der Anzeigen, die das SDK für die Anfrage laden soll. Diese Anzahl ist auf maximal fünf begrenzt. Es ist jedoch nicht garantiert, dass das SDK die genaue Anzahl der angeforderten Anzeigen zurückgibt. Wenn durch einen Aufruf von loadAds() mehrere Anzeigen zurückgegeben werden, unterscheiden sich diese Anzeigen voneinander.

Nach einem Aufruf von loadAd() erfolgt ein einzelner Callback an die oben definierten Listener-Methoden, um das native Anzeigenobjekt auszuliefern oder einen Fehler zu melden.

Nach einem Aufruf von loadAds() erfolgen mehrere solcher Callbacks (mindestens einer, aber nicht mehr als die Anzahl der angeforderten Anzeigen). Bei Apps, die mehrere Anzeigen anfordern, muss in der Callback-Implementierung AdLoader.isLoading() aufgerufen werden, um festzustellen, ob der Ladevorgang abgeschlossen ist.

Hier siehst du ein Beispiel dafür, wie isLoading() im Callback onNativeAdLoaded() geprüft wird:

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)

Bereinigen

Für geladene native Anzeigen muss die Methode destroy() verwendet werden. Dadurch werden ausgelastete Ressourcen frei und Speicherlecks werden vermieden.

Achte darauf, dass alle NativeAd-Referenzen in der onDestroy()-Methode deiner Aktivität gelöscht werden.

Lösche in deinem onNativeAdLoaded-Callback alle vorhandenen nativen Anzeigen, die dereferenziert werden.

Eine weitere wichtige Prüfung ist, ob die Aktivität zerstört wird. Wenn ja, rufen Sie destroy() für die zurückgegebene Anzeige auf und kehren 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()

Immer mit Testanzeigen testen

Verwenden Sie beim Erstellen und Testen Ihrer Apps Testanzeigen statt Live-Produktionsanzeigen. Andernfalls kann Ihr Konto gesperrt werden.

Am einfachsten laden Sie die Testanzeigen mit der Test-Anzeigenblock-ID für erweiterte native Anzeigen auf Android:

ca-app-pub-3940256099942544/2247696110

Es wurde speziell für die Rückgabe von Testanzeigen für jede Anfrage konfiguriert und kann in Ihren eigenen Apps beim Codieren, Testen und Debuggen verwendet werden. Ersetzen Sie diese vor dem Veröffentlichen Ihrer App einfach durch Ihre eigene Anzeigenblock-ID.

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

Wann sollten Anzeigen angefordert werden?

Native Anzeigen können von Anwendungen kostenlos angefordert werden, bevor sie tatsächlich zu sehen sind. In vielen Fällen ist dies die empfohlene Vorgehensweise. In einer App, in der beispielsweise eine Liste mit Elementen gemischt ist, in denen native Anzeigen enthalten sind, können native Anzeigen für die gesamte Liste geladen werden. Dabei werden einige Anzeigen unter Umständen erst ausgeliefert, wenn der Nutzer scrollt.

Hardwarebeschleunigung für Videoanzeigen

Damit Videoanzeigen in Ihren nativen Anzeigenaufrufen ausgeliefert werden, muss die Hardwarebeschleunigung aktiviert sein.

Die Hardwarebeschleunigung ist standardmäßig aktiviert, kann jedoch bei einigen Apps 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 global nicht richtig funktioniert, 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 Ihrem AndroidManifest.xml verwenden. Im folgenden Beispiel wird die Hardwarebeschleunigung für die gesamte Anwendung aktiviert, jedoch 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 Optionen für die Steuerung der Hardwarebeschleunigung finden Sie im Leitfaden zur Hardwarebeschleunigung. Wenn die Aktivität deaktiviert ist, können einzelne Anzeigenaufrufe nicht für die Hardwarebeschleunigung aktiviert werden, sodass für die Aktivität selbst die Hardwarebeschleunigung aktiviert sein muss.

Native Anzeige einblenden

Nachdem Sie eine Anzeige geladen haben, müssen Sie sie nur noch für Ihre Nutzer bereitstellen. Weitere Informationen finden Sie in unserem Leitfaden für erweiterte native Anzeigen.

,

Native Anzeigen sind Anzeigenassets, die den Nutzern über native UI-Komponenten präsentiert werden. Sie werden unter Verwendung der gleichen Ansichtsarten dargestellt, mit denen Sie bereits Ihre Layouts erstellen, und können an das visuelle Design der Umgebung angepasst werden, in der sie leben. Das heißt, wenn eine native Anzeige geladen wird, erhält Ihre App ein NativeAd-Objekt, das ihre Assets enthält. Die App und nicht das Google Mobile Ads SDK ist dann für die Auslieferung zuständig.

Ganz allgemein lässt sich sagen, dass die Implementierung von nativen Anzeigen aus zwei Teilen besteht: dem Laden einer Anzeige über das SDK und dem Ausliefern von Anzeigeninhalten in dieser App. Auf dieser Seite geht es darum, wienative Anzeigen mit dem SDK geladen werden.

Voraussetzungen

Anzeige laden

Native Anzeigen werden über die Klasse AdLoader geladen, die eine eigene Builder-Klasse hat, um sie bei der Erstellung anzupassen. Wenn Sie Listener zur Datei AdLoader hinzufügen, während Sie sie erstellen, gibt eine App an, welche Arten von nativen Anzeigen sie empfangen kann. AdLoader fordert dann nur diese Typen an.

Adloader erstellen

Der folgende Code zeigt, wie eine AdLoader erstellt wird, mit der 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 by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

Auf das NativeAd-Format vorbereiten

Mit der ersten Methode oben wird AdLoader für das NativeAd-Format vorbereitet:

forNativeAd()
Durch den Aufruf dieser Methode wird AdLoader so konfiguriert, dass native Anzeigen angefordert werden. Wenn eine Anzeige geladen wurde, wird die Methode onNativeAdLoaded() des Listener-Objekts aufgerufen.

Wenn AdLoader eine Anzeigenanfrage stellt, wählt Google die Anzeige aus, die den Ertrag des Publishers maximiert, und gibt sie zurück.

AdListener mit Adloader verwenden

Beim Erstellen von AdLoader wird mit der Funktion withAdListener ein AdListener festgelegt.

Dieser Schritt ist optional. Die Methode verwendet einen AdListener als einzigen Parameter, der Callbacks von AdLoader empfängt, wenn Lebenszyklusereignisse der Anzeige stattfinden:

Java

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

Kotlin

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

Anzeigen werden geladen

Nachdem Sie eine AdLoader erstellt haben, können Sie damit Anzeigen laden. Dafür gibt es zwei Methoden: loadAd() und loadAds().

Mit der Methode loadAd() wird eine Anfrage für eine einzelne Anzeige gesendet:

loadAd()
Bei dieser Methode wird eine Anfrage für eine einzelne Anzeige gesendet.

Java

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

Kotlin

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

Mit der Methode loadAds() wird eine Anfrage für bis zu fünf Anzeigen 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 auch von Bannern und Interstitials verwendet wird. Wie bei anderen Anzeigenformaten können Sie auch AdRequest-Targeting-Informationen hinzufügen.

loadAds() verwendet einen zusätzlichen Parameter: die Anzahl der Anzeigen, die das SDK für die Anfrage laden soll. Diese Anzahl ist auf maximal fünf begrenzt. Es ist jedoch nicht garantiert, dass das SDK die genaue Anzahl der angeforderten Anzeigen zurückgibt. Wenn durch einen Aufruf von loadAds() mehrere Anzeigen zurückgegeben werden, unterscheiden sich diese Anzeigen voneinander.

Nach einem Aufruf von loadAd() erfolgt ein einzelner Callback an die oben definierten Listener-Methoden, um das native Anzeigenobjekt auszuliefern oder einen Fehler zu melden.

Nach einem Aufruf von loadAds() erfolgen mehrere solcher Callbacks (mindestens einer, aber nicht mehr als die Anzahl der angeforderten Anzeigen). Bei Apps, die mehrere Anzeigen anfordern, muss in der Callback-Implementierung AdLoader.isLoading() aufgerufen werden, um festzustellen, ob der Ladevorgang abgeschlossen ist.

Hier siehst du ein Beispiel dafür, wie isLoading() im Callback onNativeAdLoaded() geprüft wird:

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)

Bereinigen

Für geladene native Anzeigen muss die Methode destroy() verwendet werden. Dadurch werden ausgelastete Ressourcen frei und Speicherlecks werden vermieden.

Achte darauf, dass alle NativeAd-Referenzen in der onDestroy()-Methode deiner Aktivität gelöscht werden.

Lösche in deinem onNativeAdLoaded-Callback alle vorhandenen nativen Anzeigen, die dereferenziert werden.

Eine weitere wichtige Prüfung ist, ob die Aktivität zerstört wird. Wenn ja, rufen Sie destroy() für die zurückgegebene Anzeige auf und kehren 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()

Immer mit Testanzeigen testen

Verwenden Sie beim Erstellen und Testen Ihrer Apps Testanzeigen statt Live-Produktionsanzeigen. Andernfalls kann Ihr Konto gesperrt werden.

Am einfachsten laden Sie die Testanzeigen mit der Test-Anzeigenblock-ID für erweiterte native Anzeigen auf Android:

ca-app-pub-3940256099942544/2247696110

Es wurde speziell für die Rückgabe von Testanzeigen für jede Anfrage konfiguriert und kann in Ihren eigenen Apps beim Codieren, Testen und Debuggen verwendet werden. Ersetzen Sie diese vor dem Veröffentlichen Ihrer App einfach durch Ihre eigene Anzeigenblock-ID.

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

Wann sollten Anzeigen angefordert werden?

Native Anzeigen können von Anwendungen kostenlos angefordert werden, bevor sie tatsächlich zu sehen sind. In vielen Fällen ist dies die empfohlene Vorgehensweise. In einer App, in der beispielsweise eine Liste mit Elementen gemischt ist, in denen native Anzeigen enthalten sind, können native Anzeigen für die gesamte Liste geladen werden. Dabei werden einige Anzeigen unter Umständen erst ausgeliefert, wenn der Nutzer scrollt.

Hardwarebeschleunigung für Videoanzeigen

Damit Videoanzeigen in Ihren nativen Anzeigenaufrufen ausgeliefert werden, muss die Hardwarebeschleunigung aktiviert sein.

Die Hardwarebeschleunigung ist standardmäßig aktiviert, kann jedoch bei einigen Apps 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 global nicht richtig funktioniert, 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 Ihrem AndroidManifest.xml verwenden. Im folgenden Beispiel wird die Hardwarebeschleunigung für die gesamte Anwendung aktiviert, jedoch 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 Optionen für die Steuerung der Hardwarebeschleunigung finden Sie im Leitfaden zur Hardwarebeschleunigung. Wenn die Aktivität deaktiviert ist, können einzelne Anzeigenaufrufe nicht für die Hardwarebeschleunigung aktiviert werden, sodass für die Aktivität selbst die Hardwarebeschleunigung aktiviert sein muss.

Native Anzeige einblenden

Nachdem Sie eine Anzeige geladen haben, müssen Sie sie nur noch für Ihre Nutzer bereitstellen. Weitere Informationen finden Sie in unserem Leitfaden für erweiterte native Anzeigen.