Native Anzeigen

Native Anzeigen sind Anzeigen-Assets, die Nutzern auf der Plattform über native Komponenten präsentiert werden. Sie werden mit den Ansichten dargestellt, mit denen Sie bereits Ihre Layouts erstellen. Sie können das Format so formatieren, dass sich die Darstellung an die jeweilige Umgebung anpasst. In Bezug auf die Codierung bedeutet das, dass Ihre App beim Laden einer nativen Anzeige ein NativeAd-Objekt erhält, das seine Assets enthält. Die App und nicht das Google Mobile Ads SDK ist dann für die Auslieferung verantwortlich.

Genau genommen gibt es zwei Schritte, um native Anzeigen erfolgreich zu implementieren: eine Anzeige über das SDK zu laden und den Anzeigeninhalt in Ihrer App zu präsentieren. Auf dieser Seite geht es um die Verwendung des SDK zum Laden nativer Anzeigen.

Vorbereitung

Anzeige laden

Native Anzeigen werden über die Klasse AdLoader geladen. Diese hat eine eigene Builder-Klasse, mit der die Anpassungen bei der Erstellung angepasst werden. Wenn Sie während des Erstellens Listener zum AdLoader hinzufügen, wird in einer App angegeben, welche Arten von nativen Anzeigen sie empfangen können. AdLoader fordert 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 das AdLoader für das Format „NativeAd“ vorbereitet:

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

Wenn AdLoader eine Anzeigenanfrage sendet, wählt Google die Anzeige aus und gibt sie zurück, um den Ertrag des Publishers zu maximieren.

AdListener mit AdLoad verwenden

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

Dieser Schritt ist optional. Bei der Methode kann AdListener als einziger Parameter verwendet werden, der Callbacks von AdLoader empfängt, wenn Anzeigen-Lebenszyklus-Ereignisse stattfinden:

Java

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

Kotlin

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

Anzeigen werden geladen

Sobald Sie die 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()
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())

Über die Methode loadAds() 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)

Bei beiden Methoden wird als erstes Parameter ein AdRequest-Objekt verwendet. Dies ist die gleiche AdRequest-Klasse, die von Bannern und Interstitials verwendet wird. Mit den Methoden der Klasse AdRequest können Sie wie bei anderen Anzeigenformaten 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 exakte Anzahl der angeforderten Anzeigen zurückgibt. Falls durch einen Aufruf an loadAds() mehrere Anzeigen zurückgegeben werden, unterscheiden sich diese voneinander.

Nach einem Aufruf von loadAd() wird ein einzelner Callback an die oben beschriebenen Listener-Methoden ausgeführt, um das native Anzeigenobjekt zu liefern oder einen Fehler zu melden.

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

Hier ein Beispiel für den Vorgang zur Prüfung von isLoading() im onNativeAdLoaded()-Callback:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd ad) {
        ...
        // 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

Verwenden Sie die Methode destroy() bei geladenen nativen Anzeigen. Dadurch werden ausgelastete Ressourcen kostenlos und Speicherlecks werden verhindert.

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

Lösche in deinem onNativeAdLoaded-Callback alle vorhandenen nativen Anzeigen, die einen anderen Verweis haben.

Sie können überprüfen, ob die Aktivität gelöscht wurde. Rufen Sie in diesem Fall destroy() für die zurückgegebene Anzeige auf und geben 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 ad) {
        // 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()) {
            ad.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 keine Testanzeigen, sondern Testanzeigen. Fehlen sie, kann Ihr Konto gesperrt werden.

Am einfachsten laden Sie die Testanzeigen über die spezielle Anzeigenblock-ID für native Anzeigen auf Android-Geräten:

ca-app-pub-3940256099942544/2247696110

Sie wurde speziell dafür entwickelt, für jede Anfrage Testanzeigen zurückzugeben. Außerdem kannst du es beim Programmieren, Testen und Debuggen in deinen eigenen Apps verwenden. Ersetzen Sie ihn vor der Veröffentlichung durch Ihre eigene Anzeigenblock-ID.

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

Anfragen für Anzeigen

Anwendungen, mit denen native Anzeigen ausgeliefert werden, können kostenlos vorab angefragt werden. In vielen Fällen ist das die empfohlene Vorgehensweise. In einer App kann eine Liste mit Elementen, in denen native Anzeigen gemischt sind, beispielsweise geladen werden. Es werden möglicherweise einige native Anzeigen geladen, weil einige davon erst gescrollt werden, wenn der Nutzer in der Ansicht scrollt.

Hardwarebeschleunigung für Videoanzeigen

Damit Videoanzeigen in Ihren nativen Anzeigenaufrufen eingeblendet werden können, muss die Hardwarebeschleunigung aktiviert sein.

Die Hardwarebeschleunigung ist standardmäßig aktiviert, kann aber bei einigen Apps deaktiviert werden. Wenn dies auf deine App zutrifft, empfehlen wir, die Hardwarebeschleunigung für Aktivitätsklassen zu aktivieren, in denen Anzeigen verwendet werden.

Hardwarebeschleunigung aktivieren

Wenn Ihre App nicht richtig funktioniert, wenn die Hardwarebeschleunigung global aktiviert ist, können Sie sie auch für einzelne Aktivitäten steuern. Wenn du die Hardwarebeschleunigung aktivieren oder deaktivieren möchtest, kannst du das android:hardwareAccelerated-Attribut für die Elemente <application> und <activity> in deinem AndroidManifest.xml verwenden. Im folgenden Beispiel wird die Hardwarebeschleunigung für die gesamte Anwendung aktiviert, sie wird 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 zur Steuerung der Hardwarebeschleunigung findest du im HW-Beschleunigungsleitfaden. Beachten Sie, dass einzelne Anzeigenaufrufe nicht für die Hardwarebeschleunigung aktiviert werden können, wenn die Aktivität deaktiviert ist. Daher muss für die Aktivität selbst die Hardwarebeschleunigung aktiviert sein.

NativeAd-Anzeige einblenden

Sobald Sie eine Anzeige geladen haben, muss sie nur noch für Ihre Nutzer eingeblendet werden. Weitere Informationen finden Sie im erweiterten Leitfaden für native Anzeigen.

,

Native Anzeigen sind Anzeigen-Assets, die Nutzern auf der Plattform über native Komponenten präsentiert werden. Sie werden mit den Ansichten dargestellt, mit denen Sie bereits Ihre Layouts erstellen. Sie können das Format so formatieren, dass sich die Darstellung an die jeweilige Umgebung anpasst. In Bezug auf die Codierung bedeutet das, dass Ihre App beim Laden einer nativen Anzeige ein NativeAd-Objekt erhält, das seine Assets enthält. Die App und nicht das Google Mobile Ads SDK ist dann für die Auslieferung verantwortlich.

Genau genommen gibt es zwei Schritte, um native Anzeigen erfolgreich zu implementieren: eine Anzeige über das SDK zu laden und den Anzeigeninhalt in Ihrer App zu präsentieren. Auf dieser Seite geht es um die Verwendung des SDK zum Laden nativer Anzeigen.

Vorbereitung

Anzeige laden

Native Anzeigen werden über die Klasse AdLoader geladen. Diese hat eine eigene Builder-Klasse, mit der die Anpassungen bei der Erstellung angepasst werden. Wenn Sie während des Erstellens Listener zum AdLoader hinzufügen, wird in einer App angegeben, welche Arten von nativen Anzeigen sie empfangen können. AdLoader fordert 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 das AdLoader für das Format „NativeAd“ vorbereitet:

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

Wenn AdLoader eine Anzeigenanfrage sendet, wählt Google die Anzeige aus und gibt sie zurück, um den Ertrag des Publishers zu maximieren.

AdListener mit AdLoad verwenden

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

Dieser Schritt ist optional. Bei der Methode kann AdListener als einziger Parameter verwendet werden, der Callbacks von AdLoader empfängt, wenn Anzeigen-Lebenszyklus-Ereignisse stattfinden:

Java

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

Kotlin

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

Anzeigen werden geladen

Sobald Sie die 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()
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())

Über die Methode loadAds() 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)

Bei beiden Methoden wird als erstes Parameter ein AdRequest-Objekt verwendet. Dies ist die gleiche AdRequest-Klasse, die von Bannern und Interstitials verwendet wird. Mit den Methoden der Klasse AdRequest können Sie wie bei anderen Anzeigenformaten 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 exakte Anzahl der angeforderten Anzeigen zurückgibt. Falls durch einen Aufruf an loadAds() mehrere Anzeigen zurückgegeben werden, unterscheiden sich diese voneinander.

Nach einem Aufruf von loadAd() wird ein einzelner Callback an die oben beschriebenen Listener-Methoden ausgeführt, um das native Anzeigenobjekt zu liefern oder einen Fehler zu melden.

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

Hier ein Beispiel für den Vorgang zur Prüfung von isLoading() im onNativeAdLoaded()-Callback:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd ad) {
        ...
        // 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

Verwenden Sie die Methode destroy() bei geladenen nativen Anzeigen. Dadurch werden ausgelastete Ressourcen kostenlos und Speicherlecks werden verhindert.

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

Lösche in deinem onNativeAdLoaded-Callback alle vorhandenen nativen Anzeigen, die einen anderen Verweis haben.

Sie können überprüfen, ob die Aktivität gelöscht wurde. Rufen Sie in diesem Fall destroy() für die zurückgegebene Anzeige auf und geben 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 ad) {
        // 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()) {
            ad.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 keine Testanzeigen, sondern Testanzeigen. Fehlen sie, kann Ihr Konto gesperrt werden.

Am einfachsten laden Sie die Testanzeigen über die spezielle Anzeigenblock-ID für native Anzeigen auf Android-Geräten:

ca-app-pub-3940256099942544/2247696110

Sie wurde speziell dafür entwickelt, für jede Anfrage Testanzeigen zurückzugeben. Außerdem kannst du es beim Programmieren, Testen und Debuggen in deinen eigenen Apps verwenden. Ersetzen Sie ihn vor der Veröffentlichung durch Ihre eigene Anzeigenblock-ID.

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

Anfragen für Anzeigen

Anwendungen, mit denen native Anzeigen ausgeliefert werden, können kostenlos vorab angefragt werden. In vielen Fällen ist das die empfohlene Vorgehensweise. In einer App kann eine Liste mit Elementen, in denen native Anzeigen gemischt sind, beispielsweise geladen werden. Es werden möglicherweise einige native Anzeigen geladen, weil einige davon erst gescrollt werden, wenn der Nutzer in der Ansicht scrollt.

Hardwarebeschleunigung für Videoanzeigen

Damit Videoanzeigen in Ihren nativen Anzeigenaufrufen eingeblendet werden können, muss die Hardwarebeschleunigung aktiviert sein.

Die Hardwarebeschleunigung ist standardmäßig aktiviert, kann aber bei einigen Apps deaktiviert werden. Wenn dies auf deine App zutrifft, empfehlen wir, die Hardwarebeschleunigung für Aktivitätsklassen zu aktivieren, in denen Anzeigen verwendet werden.

Hardwarebeschleunigung aktivieren

Wenn Ihre App nicht richtig funktioniert, wenn die Hardwarebeschleunigung global aktiviert ist, können Sie sie auch für einzelne Aktivitäten steuern. Wenn du die Hardwarebeschleunigung aktivieren oder deaktivieren möchtest, kannst du das android:hardwareAccelerated-Attribut für die Elemente <application> und <activity> in deinem AndroidManifest.xml verwenden. Im folgenden Beispiel wird die Hardwarebeschleunigung für die gesamte Anwendung aktiviert, sie wird 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 zur Steuerung der Hardwarebeschleunigung findest du im HW-Beschleunigungsleitfaden. Beachten Sie, dass einzelne Anzeigenaufrufe nicht für die Hardwarebeschleunigung aktiviert werden können, wenn die Aktivität deaktiviert ist. Daher muss für die Aktivität selbst die Hardwarebeschleunigung aktiviert sein.

NativeAd-Anzeige einblenden

Sobald Sie eine Anzeige geladen haben, muss sie nur noch für Ihre Nutzer eingeblendet werden. Weitere Informationen finden Sie im erweiterten Leitfaden für native Anzeigen.