Native Anzeigen sind Anzeigen-Assets, die Nutzern über Komponenten der Benutzeroberfläche sind plattformspezifisch. Sie werden unter Verwendung derselben Datenansichten mit mit dem Sie bereits Ihre Layouts erstellen, und können so formatiert werden, das visuelle Design der App.
Beim Laden einer nativen Anzeige erhält Ihre App ein Anzeigenobjekt mit den zugehörigen Assets. die App und nicht das Google Mobile Ads SDK, für die Anzeige verantwortlich.
Grundsätzlich gibt es zwei Schritte für die erfolgreiche Implementierung nativer Anzeigen: Laden einer Anzeige mithilfe des SDK und anschließendes Anzeigen des Anzeigeninhalts in Ihrer App
Auf dieser Seite erfahren Sie, wie Sie mit dem SDK native Anzeigen. Tipp: Weitere Informationen zu nativen Anzeigen finden Sie in unserem Leitfaden für native Anzeigen Playbook
Sie können sich auch einige Erfolgsgeschichten von Kunden ansehen: Fallstudie 1, Fallstudie 2.
Vorbereitung
- Arbeiten Sie den Startleitfaden durch.
Immer mit Testanzeigen testen
Verwenden Sie beim Entwickeln und Testen Ihrer Apps nur Testanzeigen, Live-Produktionsanzeigen.
Am einfachsten lassen sich Testanzeigen mit unserer Testanzeigenblock-ID laden. für native Anzeigen auf Android-Geräten:
ca-app-pub-3940256099942544/2247696110
Sie ist speziell so konfiguriert, dass bei jeder Anfrage Testanzeigen zurückgegeben werden. beim Programmieren, Testen und Debuggen in Ihren eigenen Apps verwenden. Achten Sie nur darauf, Ersetzen Sie sie vor dem Veröffentlichen Ihrer App durch Ihre Anzeigenblock-ID.
Weitere Informationen zur Funktionsweise von Testanzeigen des Google Mobile Ads SDK finden Sie unter Testen Sie Anzeigen.
Anzeigen laden
Native Anzeigen werden mit dem
Klasse AdLoader
,
das eine eigene
Builder
, um sie bei der Erstellung anzupassen. Durch Hinzufügen von Hörern zu AdLoader
gibt eine App an, welche Arten von nativen Anzeigen
empfangen werden. AdLoader
fordert dann nur diese Typen an.
AdLoader erstellen
Im folgenden Codebeispiel wird gezeigt, wie Sie ein AdLoader
erstellen, das native Daten laden kann.
Anzeigen:
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
forNativeAd()
ist für die Vorbereitung der AdLoader
auf das NativeAd
-Format zuständig.
Wenn eine Anzeige erfolgreich geladen wurde, gibt das onNativeAdLoaded()
-Objekt des Listener-Objekts
aufgerufen wird.
AdListener mit AdLoader einrichten (optional)
Beim Erstellen der AdLoader
wird der
withAdListener
legt ein
AdListener
für den
loader. Die Methode verwendet nur einen AdListener
-Parameter, der
Callbacks von AdLoader
, wenn Lebenszyklusereignisse der Anzeige eintreten:
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 damit Anzeigen anfordern.
Dafür gibt es zwei Methoden: 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()
Mit dieser Methode 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 benötigen eine
AdRequest
als ersten Parameter festlegen. Das Gleiche
Die Klasse AdRequest
wird von Bannern und Interstitials verwendet.
und Sie können mit den Methoden der AdRequest
-Klasse
Ausrichtungsinformationen hinzufügen,
wie bei anderen Anzeigenformaten.
Mehrere Anzeigen laden (optional)
Die Methode loadAds()
verwendet einen zusätzlichen Parameter: die Anzahl der Anzeigen, die das SDK enthält.
sollte versuchen, für die Anfrage zu laden. Diese Zahl ist auf fünf begrenzt
nicht garantiert, dass das SDK die genaue Anzahl der angeforderten Anzeigen zurückgibt.
Die zurückgegebenen Google Anzeigen unterscheiden sich zwar alle voneinander, sind reserviertes Inventar oder Drittanbieterkäufer nicht immer eindeutig.
Verwenden Sie nicht die Methode loadAds()
, wenn Sie die Vermittlung nutzen, da Anfragen für
derzeit nicht mit Anzeigenblock-IDs funktionieren, die
die für die Vermittlung konfiguriert sind.
Callbacks
Nach einem Aufruf von loadAd()
erfolgt ein einzelner Callback an das zuvor definierte
Listener-Methoden zum Ausliefern des nativen Anzeigenobjekts oder zum Melden eines Fehlers.
Nach einem Aufruf von loadAds()
erfolgen mehrere Callbacks dieser Art (mindestens einer,
und nicht mehr als die Anzahl der angeforderten Anzeigen). Apps fordern mehrere Anzeigen an
AdLoader.isLoading()
in ihrer Callback-Implementierung aufrufen,
um festzustellen, ob der Ladevorgang abgeschlossen ist.
Hier ein Beispiel, das zeigt, wie 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 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 bei geladenen nativen Anzeigen die Methode destroy()
. Diese Versionen
Ressourcen genutzt und
Speicherlecks verhindert.
Achten Sie darauf, dass alle NativeAd
-Referenzen im Dokument Ihrer Aktivität gelöscht werden
onDestroy()
-Methode.
Löschen Sie in Ihrem onNativeAdLoaded
-Callback alle vorhandenen
native Anzeigen, die dereferenziert werden.
Eine weitere Schlüsselprüfung ist, ob die Aktivität gelöscht wurde. Wenn ja, rufen Sie destroy()
auf
zurückgegebene Anzeige 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()
Best Practices
Halten Sie sich beim Laden von Anzeigen an die folgenden Regeln.
Apps, in denen native Anzeigen in einer Liste verwendet werden, sollten die Liste der Anzeigen vorab im Cache speichern.
Wenn Sie Anzeigen vorab im Cache speichern, leeren Sie Ihren Cache und laden Sie ihn nach einer Stunde neu.
Ruf nicht
loadAd()
an oderloadAds()
aufAdLoader
bis zum ersten -Anfrage fertig geladen ist.
Hardwarebeschleunigung für Videoanzeigen
Damit Videoanzeigen erfolgreich in den Aufrufen nativer Anzeigen ausgeliefert werden, Hardware Beschleunigung muss aktiviert sein.
Die Hardwarebeschleunigung ist standardmäßig aktiviert, bei einigen Apps ist dies jedoch möglicherweise deaktivieren. Wenn dies auf deine App zutrifft, empfehlen wir, die Hardware zu aktivieren Beschleunigung für Aktivitätsklassen, in denen Anzeigen verwendet werden.
Hardwarebeschleunigung aktivieren
Wenn Ihre App mit aktivierter Hardwarebeschleunigung nicht richtig funktioniert
können Sie sie auch für individuelle Aktivitäten Zum Aktivieren oder
Hardwarebeschleunigung deaktivieren, mit dem Attribut android:hardwareAccelerated
für die
<application>
und
<activity>
Elemente in AndroidManifest.xml
enthalten. Im folgenden Beispiel wird Hardware aktiviert
Beschleunigung für die gesamte App, aber deaktiviert sie für eine Aktivität:
<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>
Sehen Sie sich die Hardwarebeschleunigung Leitfaden für finden Sie weitere Informationen zu Optionen zur Steuerung der Hardwarebeschleunigung. Hinweis dass die Hardwarebeschleunigung nicht für einzelne Anzeigenaufrufe aktiviert werden kann, Die Aktivität ist deaktiviert, daher muss die Aktivität selbst eine Hardwarebeschleunigung haben aktiviert.
Anzeige schalten
Nachdem Sie eine Anzeige geladen haben, müssen Sie sie nur noch für die Nutzer schalten. Dann sehen Sie sich unsere erweiterten nativen Anzeigen , um zu erfahren, wie das geht.