Native Anzeigen

Native Anzeigen sind Anzeigen-Assets, die Nutzern über Komponenten der Benutzeroberfläche sind plattformspezifisch. Sie werden unter Verwendung derselben Ansichten 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, das die zugehörigen Assets enthält. 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

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. Wurde eine Anzeige geladen, 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 die Methoden der AdRequest-Klasse verwenden, um Ausrichtungsinformationen hinzufügen, wie bei anderen Anzeigenformaten.

Mehrere Anzeigen laden (optional)

Für die Methode loadAds() ist ein zusätzlicher Parameter erforderlich: die Anzahl der Anzeigen, die vom SDK 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 wichtige Prüfung ist, ob die Aktivität zerstört wurde. Wenn ja, rufe destroy() für die zurückgegebene Anzeige auf und kehre 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 oder loadAds() auf AdLoader 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 Ihren Nutzern präsentieren. Dann sehen Sie sich unsere erweiterten nativen Anzeigen , um zu erfahren, wie das geht.