Native Anzeigen

Native Anzeigen sind Anzeigen-Assets, die Nutzern über plattformspezifische UI-Komponenten präsentiert werden. Native Anzeigen 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 Ihrer App übereinstimmen.

Wenn eine native Anzeige geladen wird, erhält Ihre App ein Anzeigenobjekt, das die Assets der Anzeige enthält. Die Anzeige wird dann von der App und nicht vom Google Mobile Ads SDK (Beta) gerendert.

Die Implementierung nativer Anzeigen lässt sich in zwei Teile unterteilen: Laden einer Anzeige mit dem SDK und Anzeigen des Anzeigeninhalts in Ihrer App.

Auf dieser Seite erfahren Sie, wie Sie mit dem SDK native Anzeigen laden.

Vorbereitung

  • Führen Sie die Schritte im Startleitfaden aus.
  • Google Mobile Ads SDK (Beta) 0.6.0-alpha01 oder höher

Immer Testanzeigen verwenden

Verwenden Sie beim Entwickeln und Testen Ihrer Apps Testanzeigen anstelle von Live-Anzeigen. Andernfalls kann es zu einer Kontosperrung kommen.

Am einfachsten lassen sich Testanzeigen laden, wenn Sie unsere spezielle Testanzeigenblock-ID für native Anzeigen verwenden:

Anzeigenformat Beispiel für eine Anzeigenblock-ID
Nativ /21775744923/example/native
Natives Video /21775744923/example/native-video

Anzeige laden

Rufen Sie zum Laden einer nativen Anzeige die Methode NativeAdLoader.load() auf, die ein NativeAdRequest und ein NativeAdLoaderCallback akzeptiert.

import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoader
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoaderCallback
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdRequest

class NativeFragment : Fragment() {

  private var nativeAd: NativeAd? = null

  override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    loadAd()
  }

  private fun loadAd() {
    // Build an ad request with native ad options to customize the ad.
    val adRequest = NativeAdRequest
      .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
      .build()

    val adCallback =
      object : NativeAdLoaderCallback {
        override fun onNativeAdLoaded(nativeAd: NativeAd) {
          // Called when a native ad has loaded.
        }
        override fun onAdFailedToLoad(adError: LoadAdError) {
          // Called when a native ad has failed to load.
        }
      }

    // Load the native ad with our request and callback.
    NativeAdLoader.load(adRequest, adCallback)
  }

  companion object {
    // Sample native ad unit ID.
    const val AD_UNIT_ID = "/21775744923/example/native"
  }
}

Callback für native Anzeigenereignisse festlegen

Wenn Sie onNativeAdLoaded verarbeiten, legen Sie das empfangene NativeAd mit einem NativeAdEventCallback fest, um Funktionen zum Empfangen von Lebenszyklusereignissen für native Anzeigen zu definieren:

  nativeAd.adEventCallback =
    object : NativeAdEventCallback {
      override fun onAdShowedFullScreenContent() {
        // Native ad showed full screen content.
      }
      override fun onAdDismissedFullScreenContent() {
        // Native ad dismissed full screen content.
      }
      override fun onAdFailedToShowFullScreenContent {
        // Native ad failed to show full screen content.
      }
      override fun onAdImpression() {
        // Native ad recorded an impression.
      }
      override fun onAdClicked() {
        // Native ad recorded a click.
      }
    }

Optional: Mehrere Anzeigen laden

Wenn Sie mehrere Anzeigen laden möchten, rufen Sie load() mit dem optionalen Parameter numberOfAds auf. Der maximale Wert, den Sie festlegen können, ist 5. Er entspricht der Anzahl der Anzeigen. Mit dem Google Mobile Ads SDK (Beta) wird möglicherweise nicht die genaue Anzahl der von Ihnen angeforderten Anzeigen zurückgegeben.

private fun loadAd() {
  // Build an ad request with native ad options to customize the ad.
  val adRequest = NativeAdRequest
    .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
    .build()

  val adCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Called when a native ad has loaded.
      }
      override fun onAdFailedToLoad(adError: LoadAdError) {
        // Called when a native ad has failed to load.
      }
      override fun onAdLoadingCompleted() {
        // Called when all native ads have loaded.
      }
    }

  // Load the native ad with our request and callback.
  NativeAdLoader.load(adRequest, 3, adCallback)
}

Anzeigen, die vom Google Mobile Ads SDK (Beta) zurückgegeben werden, sind eindeutig. Anzeigen aus reserviertem Inventar oder von Drittanbieterkäufern sind möglicherweise nicht eindeutig.

Wenn Sie Vermittlung verwenden, rufen Sie die Methode load() nicht auf. Anfragen für mehrere native Anzeigen funktionieren nicht für Anzeigenblock-IDs, die für die Vermittlung konfiguriert sind.

Best Practices

Beachten Sie beim Laden von Anzeigen die folgenden Regeln.

  • Bei Apps, in denen Native Ads in einer Liste verwendet werden, sollte die Liste der Anzeigen vorab im Cache gespeichert werden.

  • Wenn Sie Anzeigen vorab im Cache speichern, leeren Sie den Cache und laden Sie die Seite nach einer Stunde neu.

  • Beschränken Sie das Caching nativer Anzeigen auf das, was wirklich benötigt wird. Beim Pre-Caching sollten Sie beispielsweise nur die Anzeigen im Cache speichern, die sofort auf dem Bildschirm zu sehen sind. Native Anzeigen haben einen großen Speicherbedarf. Wenn Sie native Anzeigen im Cache speichern, ohne sie zu zerstören, führt das zu einer übermäßigen Speichernutzung.

  • Native Anzeigen zerstören, wenn sie nicht mehr verwendet werden.

Hardwarebeschleunigung für Videoanzeigen

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

Die Hardwarebeschleunigung ist standardmäßig aktiviert, kann aber von einigen Apps deaktiviert werden. Wenn das auf Ihre App zutrifft, empfehlen wir, die Hardwarebeschleunigung für Activity-Klassen zu aktivieren, in denen Anzeigen verwendet werden.

Hardwarebeschleunigung aktivieren

Wenn Ihre App bei global aktivierter Hardwarebeschleunigung nicht ordnungsgemäß funktioniert, können Sie sie auch für einzelne Aktivitäten steuern. Verwenden Sie das Attribut android:hardwareAccelerated für die Elemente <application> und <activity> in Ihrem AndroidManifest.xml, um die Hardwarebeschleunigung zu aktivieren oder zu deaktivieren. Im folgenden Beispiel wird die Hardwarebeschleunigung für die gesamte App aktiviert, aber 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 zum Steuern der Hardwarebeschleunigung finden Sie im Leitfaden zur Hardwarebeschleunigung. Einzelne Anzeigenaufrufe können nicht für die Hardwarebeschleunigung aktiviert werden, wenn die Aktivität deaktiviert ist. Für die Aktivität selbst muss also die Hardwarebeschleunigung aktiviert sein.

Anzeige schalten

Nachdem Sie eine Anzeige geladen haben, müssen Sie sie nur noch Ihren Nutzern präsentieren. Hier finden Sie eine Anleitung.

Beispiel

Laden Sie die Beispiel-App herunter und führen Sie sie aus, um die Verwendung des Google Mobile Ads SDK (Beta) zu demonstrieren.