Native Anzeigen

Plattform auswählen:Android Android (Beta) iOS Flutter Unity

Native Anzeigen sind Anzeigen-Assets, die Nutzern über UI-Komponenten präsentiert werden, die nativ für die Plattform sind. Sie werden mit denselben Ansichtstypen dargestellt, mit denen Sie bereits Ihre Layouts erstellen, und können 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 App und nicht das GMA Next-Gen SDK ist dann für die Darstellung der Assets verantwortlich.

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. Tipp: Weitere Informationen zu nativen Anzeigen finden Sie in unserem Handbuch zu nativen Anzeigen.

Beispiele sind für Java und Kotlin verfügbar.

Fallstudie 1, Fallstudie 2.

Vorbereitung

  • Führen Sie die Schritte im Startleitfaden aus
  • GMA Next-Gen SDK 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 Testanzeigenblock-ID
Nativ ca-app-pub-3940256099942544/2247696110
Native Videoanzeige ca-app-pub-3940256099942544/1044960115

Anzeige laden

Rufen Sie zum Laden einer nativen Anzeige die Methode NativeAdLoader.load() auf, die NativeAdRequest und 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 = "ca-app-pub-3940256099942544/2247696110"
  }
}

Callback für native Anzeigenereignisse festlegen

Wenn Sie onNativeAdLoaded verarbeiten, legen Sie empfangene NativeAd mit 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 steht für die Anzahl der Anzeigen. Das GMA Next-Gen SDK gibt möglicherweise nicht die genaue Anzahl der angeforderten Anzeigen zurück.

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 GMA Next-Gen SDK 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 Anzeigen 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 löschen, führt das zu einer übermäßigen Speichernutzung.

  • Löschen Sie native Anzeigen, 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 diese auch für einzelne Aktivitäten ein- und ausschalten. 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. Die Aktivität selbst muss also die Hardwarebeschleunigung aktiviert haben.

Anzeige darstellen

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

Beispiel

Laden Sie die Beispiel-App herunter und führen Sie sie aus, um die Verwendung des GMA Next-Gen SDK zu sehen.