Erweiterte native Funktionen festlegen

Plattform auswählen: Android iOS Android (Legacy)

Native Anzeigen bieten viele erweiterte Funktionen, mit denen Sie zusätzliche Anpassungen vornehmen und die bestmögliche Nutzerfreundlichkeit von Werbeanzeigen erzielen können. In diesem Leitfaden erfahren Sie, wie Sie die erweiterten Funktionen von nativen Anzeigen nutzen.

Vorbereitung

Asset-Einstellungen

In diesem Abschnitt wird beschrieben, wie Sie die Creative-Assets in Ihren nativen Anzeigen anpassen. Sie können ein bevorzugtes Seitenverhältnis für Media-Assets angeben und festlegen, wie die Bild-Assets heruntergeladen und angezeigt werden.

Einstellungen für das bevorzugte Seitenverhältnis für Medien

Mit den Einstellungen für das Seitenverhältnis von Medien können Sie ein bevorzugtes Seitenverhältnis für Anzeigen-Creatives festlegen.

Rufen Sie NativeAdOptions.Builder.setMediaAspectRatio() mit einem NativeAdOptions.MediaAspectRatio-Wert auf.

  • Wenn diese Option nicht festgelegt ist, kann die zurückgegebene Anzeige ein beliebiges Seitenverhältnis haben.

  • Wenn Sie das Seitenverhältnis festlegen, können Sie die Nutzerfreundlichkeit verbessern.

Im folgenden Beispiel wird das SDK angewiesen, ein zurückgegebenes Bild oder Video mit einem bestimmten Seitenverhältnis zu bevorzugen.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

Ersetzen Sie AD_UNIT_ID durch Ihre Anzeigenblock-ID.

Einstellungen für den Bild-Download

Mit der Steuerung des Bild-Downloads können Sie festlegen, ob das SDK Bild-Assets oder nur URIs zurückgeben soll.

Rufen Sie NativeAdOptions.Builder.setReturnUrlsForImageAssets() mit einem boolean-Wert auf.

  • Die Steuerelemente zum Herunterladen von Bildern sind standardmäßig deaktiviert.

  • Wenn diese Option deaktiviert ist, werden sowohl das Bild als auch der URI automatisch von Google Mobile Ads SDK (Legacy) eingefügt.

  • Wenn diese Option aktiviert ist, wird im SDK nur der URI eingefügt. Sie können die tatsächlichen Bilder dann nach Belieben herunterladen.

Im folgenden Beispiel wird das SDK angewiesen, nur den URI zurückzugeben.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID")
        .withNativeAdOptions(nativeAdOptions)
        .forNativeAd(
            nativeAd -> {
              List<Uri> imageUris = new ArrayList<>();
              for (Image image : nativeAd.getImages()) {
                imageUris.add(image.getUri());
              }
            })
        .build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build()

val loader =
  AdLoader.Builder(context, "AD_UNIT_ID")
    .withNativeAdOptions(nativeAdOptions)
    .forNativeAd { nativeAd ->
      val imageUris = nativeAd.images.mapNotNull { it.uri }
    }
    .build()

Einstellungen für die Bild-Payload

Manche Anzeigen enthalten mehrere Bilder statt nur eines. Mit dieser Funktion können Sie angeben, ob Ihre App für die Anzeige aller Bilder oder nur eines Bildes vorbereitet ist.

Rufen Sie NativeAdOptions.Builder.setRequestMultipleImages() mit einem boolean-Wert auf.

  • Einstellungen für die Bild-Payload sind standardmäßig deaktiviert.

  • Wenn diese Option deaktiviert ist, weist Ihre App das SDK an, nur das erste Bild für Assets mit einer Reihe bereitzustellen.

  • Wenn diese Option aktiviert ist, wird in Ihrer App angegeben, dass sie alle Bilder für Assets mit mehr als einem Bild anzeigen kann.

Im folgenden Beispiel wird das SDK angewiesen, mehrere Bild-Assets zurückzugeben.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setRequestMultipleImages(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setRequestMultipleImages(true).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

Platzierungen der Datenschutzinfos

In diesem Abschnitt wird beschrieben, wie Sie das AdChoices-Overlay positionieren. Sie können die Platzierung in einer der vier Ecken festlegen oder die Anzeige in einer benutzerdefinierten Ansicht rendern.

Einstellungen für die Position von „Datenschutzinfo“

Mit den Steuerelementen für die Position des Datenschutzinfo-Symbols können Sie festlegen, in welcher Ecke das Symbol eingeblendet werden soll.

Rufen Sie NativeAdOptions.Builder.setAdChoicesPlacement() mit einem NativeAdOption.AdChoicesPlacement-Wert auf.

  • Wenn keine Position festgelegt ist, wird das Datenschutzinfo-Symbol oben rechts platziert.

  • Wenn diese Option festgelegt ist, wird das Datenschutzinfo-Symbol wie gewünscht an der benutzerdefinierten Position platziert.

Im folgenden Beispiel wird gezeigt, wie Sie eine benutzerdefinierte Position für das AdChoices-Bild festlegen.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

Benutzerdefinierte Ansicht für „Datenschutzinfo“

Mit der Funktion für benutzerdefinierte Ansichten für Datenschutzinfo können Sie das Datenschutzinfo-Symbol an einer benutzerdefinierten Position platzieren. Das unterscheidet sich von den Steuerelementen für die Position von AdChoices, bei denen nur eine der vier Ecken angegeben werden kann.

Rufen Sie NativeAdView.setAdChoicesView() mit einem AdChoicesView-Wert auf.

Im folgenden Beispiel wird gezeigt, wie eine benutzerdefinierte Datenschutzinfo-Ansicht festgelegt wird, wobei das Datenschutzinfo-Symbol in AdChoicesView gerendert wird.

Java

NativeAdView nativeAdView = new NativeAdView(context);
AdChoicesView adChoicesView = new AdChoicesView(context);
nativeAdView.setAdChoicesView(adChoicesView);

Kotlin

val nativeAdView = NativeAdView(context)
val adChoicesView = AdChoicesView(context)
nativeAdView.adChoicesView = adChoicesView

Videosteuerelemente

In diesem Abschnitt wird beschrieben, wie Sie die Wiedergabe von Videoanzeigen anpassen können. Sie können den anfänglichen Stummschaltungsstatus festlegen und benutzerdefinierte Wiedergabesteuerelemente implementieren.

Ausblendungsverhalten beim Start

Mit der Funktion „Stumm starten“ können Sie die Audioausgabe eines Videos beim Start deaktivieren oder aktivieren.

Rufen Sie VideoOptions.Builder.setStartMuted() mit einem boolean-Wert auf.

  • Die Funktion „Stummgeschaltet starten“ ist standardmäßig aktiviert.

  • Wenn diese Option deaktiviert ist, fordert Ihre App an, dass das Video mit Audio beginnt.

  • Wenn diese Option aktiviert ist, wird das Video in Ihrer App standardmäßig ohne Ton gestartet.

Das folgende Beispiel zeigt, wie das Video mit nicht stummgeschalteten Audioinhalten gestartet wird.

Java

VideoOptions videoOptions = new VideoOptions.Builder().setStartMuted(false).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setStartMuted(false).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

Benutzerdefinierte Wiedergabesteuerung

So können Sie benutzerdefinierte Steuerelemente für die Videoeingabe anfordern, um das Video abzuspielen, zu pausieren oder stummzuschalten.

Rufen Sie VideoOptions.Builder.setCustomControlsRequested() mit einem boolean-Wert auf.

  • Benutzerdefinierte Wiedergabesteuerung ist standardmäßig deaktiviert.

  • Wenn diese Option deaktiviert ist, werden in Ihrem Video vom SDK gerenderte Eingabesteuerelemente angezeigt.

Wenn die Anzeige Videoinhalte enthält und benutzerdefinierte Steuerelemente aktiviert sind, sollten Sie Ihre benutzerdefinierten Steuerelemente zusammen mit der Anzeige einblenden, da die Anzeige selbst keine Steuerelemente enthält. Die Steuerelemente können dann die relevanten Methoden für die

VideoController.

Das folgende Beispiel zeigt, wie ein Video mit benutzerdefinierter Wiedergabesteuerung angefordert wird.

Java

VideoOptions videoOptions = new VideoOptions.Builder().setCustomControlsRequested(true).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setCustomControlsRequested(true).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

Prüfen, ob benutzerdefinierte Steuerelemente aktiviert sind

Da zum Zeitpunkt der Anfrage nicht bekannt ist, ob die zurückgegebene Anzeige benutzerdefinierte Videosteuerelemente zulässt, müssen Sie prüfen, ob sie aktiviert sind.

Java

MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
  VideoController videoController = mediaContent.getVideoController();
  boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}

Kotlin

val mediaContent = nativeAd.mediaContent
if (mediaContent != null) {
  val videoController = mediaContent.videoController
  val canShowCustomControls = videoController.isCustomControlsEnabled
}

Benutzerdefinierte Videosteuerung rendern

Beachten Sie beim Rendern benutzerdefinierter Steuerelemente für die Videowiedergabe die folgenden Best Practices:

  1. Rendern Sie die Ansicht mit den benutzerdefinierten Steuerelementen als untergeordnetes Element der Ansicht mit der nativen Anzeige. Bei diesem Ansatz werden die benutzerdefinierten Steuerelemente bei der Berechnung der Sichtbarkeit mit Open Measurement als freundliche Behinderung betrachtet.
  2. Vermeiden Sie es, ein unsichtbares Overlay über der gesamten Media-Ansicht zu rendern. Overlays blockieren Klicks auf die Media-Ansicht und beeinträchtigen so die Anzeigenleistung nativer Anzeigen. Erstellen Sie stattdessen ein kleines Overlay, das gerade groß genug für die Steuerelemente ist.

Benutzerdefinierte Klickgesten

Benutzerdefinierte Klickgesten sind eine Funktion für native Anzeigen, mit der Sie Wischbewegungen auf Anzeigenaufrufen als Anzeigenklicks registrieren können. Sie funktioniert mit Apps, in denen Wischgesten zur Navigation durch Inhalte verwendet werden. In diesem Leitfaden erfahren Sie, wie Sie benutzerdefinierte Klickgesten für Ihre nativen Anzeigen aktivieren.

Rufen Sie NativeAdOptions.Builder.enableCustomClickGestureDirection() mit einem NativeAdOptions.SwipeGestureDirection und einem boolean auf, um anzugeben, ob Tippen als Klicken zugelassen werden soll.

  • Benutzerdefinierte Klickgesten sind standardmäßig deaktiviert.

  • Wenn diese Option deaktiviert ist, unterstützt Ihre App das normale Klickverhalten.

  • Wenn diese Option aktiviert ist, unterstützt Ihre App benutzerdefinierte Wischgesten.

Im folgenden Beispiel wird eine benutzerdefinierte Wischbewegung nach rechts implementiert und das normale Tippverhalten beibehalten.

Java

NativeAdOptions adOptions =
    new NativeAdOptions.Builder()
        .enableCustomClickGestureDirection(
            NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, /* tapsAllowed= */ true)
        .build();

// ca-app-pub-3940256099942544/2247696110 is a sample ad unit ID that has custom click
// gestures enabled.
AdLoader.Builder builder =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions);

Kotlin

val adOptions =
  NativeAdOptions.Builder()
    .enableCustomClickGestureDirection(NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, true)
    .build()

val builder = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions)

Auf Wischgestenereignisse warten

Wenn ein Wisch-Klick aufgezeichnet wird, ruft Google Mobile Ads SDK (Legacy) zusätzlich zur vorhandenen Methode onAdClicked() die Methode onAdSwipeGestureClicked() für AdListener auf.

Java

AdLoader adLoader =
    new AdLoader.Builder(context, AD_UNIT_ID)
        .withAdListener(
            new AdListener() {
              // Called when a swipe gesture click is recorded.
              @Override
              public void onAdSwipeGestureClicked() {
                // Called when a swipe gesture click is recorded.
                Log.d(TAG, "A swipe gesture click has occurred.");
              }

              @Override
              public void onAdClicked() {
                // Called when a swipe gesture click or a tap click is recorded, as
                // configured in NativeAdOptions.
                Log.d(TAG, "A swipe gesture click or a tap click has occurred.");
              }
            })
        .build();

Kotlin

val adLoader =
  AdLoader.Builder(context, AD_UNIT_ID)
    .withAdListener(
      object : AdListener() {
        override fun onAdSwipeGestureClicked() {
          // Called when a swipe gesture click is recorded.
          Log.d(TAG, "A swipe gesture click has occurred.")
        }

        override fun onAdClicked() {
          // Called when a swipe gesture click or a tap click is recorded, as
          // configured in NativeAdOptions.
          Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
        }
      }
    )
    .build()

Vermittlung

Benutzerdefinierte Klickgesten funktionieren nur bei nativen Anzeigen, die vom Google Mobile Ads SDK gerendert werden. Anzeigenquellen, für die SDKs von Drittanbietern zum Rendern erforderlich sind, reagieren nicht auf die Einstellung für benutzerdefinierte Klickrichtungen.