Native Anzeigen sind Anzeigen-Assets, die Nutzern über native UI-Komponenten präsentiert werden. Sie 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 der Umgebung übereinstimmen, in der sie leben. In Bezug auf die Programmierung 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 zuständig.
Ganz allgemein lässt sich sagen, dass die Implementierung von nativen Anzeigen aus zwei Teilen bestehen muss: eine Anzeige mit dem SDK laden und dann den Anzeigeninhalt in Ihrer App präsentieren.
Auf dieser Seite geht es um die Verwendung des SDK zum Laden nativer Anzeigen.
Voraussetzungen
- Folgen Sie der Anleitung im Startleitfaden.
Implementierung
Native Anzeigen werden mit der Klasse AdLoader
geladen. Diese hat eine eigene Builder
-Klasse, um sie bei der Erstellung anzupassen. Wenn Sie Listener zur Datei AdLoader
hinzufügen, wenn eine App erstellt wird, gibt sie an, welche Arten von nativen Anzeigen sie empfangen kann. AdLoader
fordert dann nur diese Typen an.
Adloader erstellen
Der folgende Code zeigt, wie Sie eine AdLoader
erstellen, 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 Format NativeAd
vorbereitet:
forNativeAd()
- Durch den Aufruf dieser Methode wird
AdLoader
so konfiguriert, dass native Anzeigen angefordert werden. Wenn eine Anzeige geladen wurde, wird die MethodeonNativeAdLoaded()
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 einrichten (optional)
Beim Erstellen von AdLoader
wird mit der Funktion withAdListener
ein AdListener
festgelegt. Die Methode verwendet einen einzelnen AdListener
-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 laden
Nachdem Sie die AdLoader
erstellt haben, können Sie damit Anzeigen laden.
Dafür gibt es zwei Methoden: loadAd()
und loadAds()
.
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())
loadAds()
- Diese Methode sendet eine Anfrage für bis zu fünf Anzeigen:
Java
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
adLoader.loadAds(AdRequest.Builder().build(), 3)
Bei beiden Methoden wird ein AdRequest
-Objekt als erster Parameter verwendet. 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 fünf begrenzt und es kann nicht garantiert werden, dass das SDK die genaue Anzahl der angeforderten Anzeigen zurückgibt.
Die zurückgegebenen Google-Anzeigen unterscheiden sich voneinander. Anzeigen aus reserviertem Inventar oder von Käufern, einschließlich Käufern, die für die Abfolge oder die Gebotseinstellung konfiguriert sind, sind nicht garantiert eindeutig.
Callbacks
Nach einem Aufruf von loadAd()
erfolgt ein einzelner Callback an die zuvor 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.
Das folgende Beispiel zeigt, 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)
Ressourcen freigeben
Für geladene native Anzeigen muss die Methode destroy()
verwendet werden. Dadurch werden ausgelastete Ressourcen frei und Speicherlecks werden vermieden.
Achten Sie darauf, dass alle NativeAd
-Referenzen in der Methode onDestroy()
Ihrer 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 so konfiguriert, dass es bei jeder Anfrage Testanzeigen zurückgibt. Sie können es beim Programmieren, Testen und Debuggen in eigenen Apps verwenden. 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?
Anwendungen, die native Anzeigen ausliefern, können diese vorab anfordern. 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 Anzeigen-Assets, die Nutzern über native UI-Komponenten präsentiert werden. Sie 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 der Umgebung übereinstimmen, in der sie leben. In Bezug auf die Programmierung 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 zuständig.
Ganz allgemein lässt sich sagen, dass die Implementierung von nativen Anzeigen aus zwei Teilen bestehen muss: eine Anzeige mit dem SDK laden und dann den Anzeigeninhalt in Ihrer App präsentieren.
Auf dieser Seite geht es um die Verwendung des SDK zum Laden nativer Anzeigen.
Voraussetzungen
- Folgen Sie der Anleitung im Startleitfaden.
Implementierung
Native Anzeigen werden mit der Klasse AdLoader
geladen. Diese hat eine eigene Builder
-Klasse, um sie bei der Erstellung anzupassen. Wenn Sie Listener zur Datei AdLoader
hinzufügen, wenn eine App erstellt wird, gibt sie an, welche Arten von nativen Anzeigen sie empfangen kann. AdLoader
fordert dann nur diese Typen an.
Adloader erstellen
Der folgende Code zeigt, wie Sie eine AdLoader
erstellen, 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 Format NativeAd
vorbereitet:
forNativeAd()
- Durch den Aufruf dieser Methode wird
AdLoader
so konfiguriert, dass native Anzeigen angefordert werden. Wenn eine Anzeige geladen wurde, wird die MethodeonNativeAdLoaded()
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 einrichten (optional)
Beim Erstellen von AdLoader
wird mit der Funktion withAdListener
ein AdListener
festgelegt. Die Methode verwendet einen einzelnen AdListener
-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 laden
Nachdem Sie die AdLoader
erstellt haben, können Sie damit Anzeigen laden.
Dafür gibt es zwei Methoden: loadAd()
und loadAds()
.
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())
loadAds()
- Diese Methode sendet eine Anfrage für bis zu fünf Anzeigen:
Java
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
adLoader.loadAds(AdRequest.Builder().build(), 3)
Bei beiden Methoden wird ein AdRequest
-Objekt als erster Parameter verwendet. 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 fünf begrenzt und es kann nicht garantiert werden, dass das SDK die genaue Anzahl der angeforderten Anzeigen zurückgibt.
Die zurückgegebenen Google-Anzeigen unterscheiden sich voneinander. Anzeigen aus reserviertem Inventar oder von Käufern, einschließlich Käufern, die für die Abfolge oder die Gebotseinstellung konfiguriert sind, sind nicht garantiert eindeutig.
Callbacks
Nach einem Aufruf von loadAd()
erfolgt ein einzelner Callback an die zuvor 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.
Das folgende Beispiel zeigt, 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)
Ressourcen freigeben
Für geladene native Anzeigen muss die Methode destroy()
verwendet werden. Dadurch werden ausgelastete Ressourcen frei und Speicherlecks werden vermieden.
Achten Sie darauf, dass alle NativeAd
-Referenzen in der Methode onDestroy()
Ihrer 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 so konfiguriert, dass es bei jeder Anfrage Testanzeigen zurückgibt. Sie können es beim Programmieren, Testen und Debuggen in eigenen Apps verwenden. 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?
Anwendungen, die native Anzeigen ausliefern, können diese vorab anfordern. 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.