Optionen für native Anzeigen

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

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 von Medien

Mit den Einstellungen für das Media-Seitenverhältnis können Sie ein bevorzugtes Seitenverhältnis für Werbe-Creatives angeben.

Rufen Sie NativeAdRequest.Builder.setMediaAspectRatio() mit einem NativeAd.NativeMediaAspectRatio-Wert auf.

  • Wenn nicht festgelegt, kann die zurückgegebene Anzeige ein beliebiges Media-Seitenverhältnis haben.

  • Wenn Sie diese Einstellung festlegen, können Sie die Nutzerfreundlichkeit verbessern, indem Sie das bevorzugte Seitenverhältnis angeben.

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

Kotlin

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
  .build()

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
  .build();

Steuerung des Bilddownloads

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

Rufen Sie NativeAdRequest.Builder.disableImageDownloading() auf.

  • Die Steuerelemente für den Bilddownload sind standardmäßig deaktiviert.

  • Wenn diese Option deaktiviert ist, werden sowohl das Bild als auch der URI vom Google Mobile Ads SDK (Beta) ausgefüllt.

  • 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.

Kotlin

val adRequest = NativeAdRequest.Builder(
    "ca-app-pub-3940256099942544/2247696110",
    listOf(NativeAd.NativeAdType.NATIVE))
    .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .disableImageDownloading()
    .build()

val adCallback: NativeAdLoaderCallback =
  object : NativeAdLoaderCallback {
    override fun onNativeAdLoaded(nativeAd: NativeAd) {
      // Get the image uri.
      val imageUri = nativeAd.image?.uri
    }
  };

// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .disableImageDownloading()
  .build();

NativeAdLoaderCallback adLoaderCallback =
  new NativeAdLoaderCallback() {
    @Override
    public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
      // Get the image uri.
      Uri imageUri = nativeAd.getImage().getUri();
    }
  };

// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);

Steuerelemente für die Bildnutzlast

Einige 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.

  • Die Steuerelemente 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 bereit ist, alle Bilder für Assets mit mehr als einem Bild anzuzeigen.

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

Platzierungen der Datenschutzinfos

In diesem Abschnitt wird beschrieben, wie Sie das AdChoices-Overlay positionieren. Sie haben die Möglichkeit, das Placement in einer der vier Ecken festzulegen oder es in einer benutzerdefinierten Ansicht zu rendern.

Einstellungen für die Position von AdChoices

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

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

  • Wenn kein Wert angegeben ist, wird das Datenschutzinfo-Symbol oben rechts platziert.

  • Wenn diese Option festgelegt ist, wird „AdChoices“ an der benutzerdefinierten Position platziert.

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

Kotlin

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
  .build()

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
  .build();

Benutzerdefinierte Ansicht für „Datenschutzinfo“

Mit der benutzerdefinierten Ansicht für das Datenschutzinfo-Symbol können Sie das Datenschutzinfo-Symbol an einer benutzerdefinierten Position platzieren. Das unterscheidet sich von den Positionssteuerungen für 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 AdChoices-Ansicht festgelegt wird, wobei das AdChoices-Symbol in AdChoicesView gerendert wird.

Kotlin

override fun onNativeAdLoaded(nativeAd: NativeAd) {
  val nativeAdView = NativeAdView(applicationContext)
  val adChoicesView = AdChoicesView(this)
  nativeAdView.adChoicesView = adChoicesView
}

Java

public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
  NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
  AdChoicesView adChoicesView = new AdChoicesView(this);
  nativeAdView.setAdChoicesView(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.

Verhalten beim Stummschalten

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 und NativeAdOptions.Builder.setVideoOptions() auf.

  • Das Verhalten „Stumm 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, fordert Ihre App an, dass das Video ohne Ton wiedergegeben wird.

Das folgende Beispiel zeigt, wie das Video mit nicht stummgeschaltetem Audio gestartet wird.

Kotlin

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

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

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

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Benutzerdefinierte Steuerelemente für die Wiedergabe

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

Rufen Sie VideoOptions.Builder.setCustomControlsRequested() auf, um den Startzustand der Anzeigen festzulegen.

  • Benutzerdefinierte Steuerelemente für die Wiedergabe sind standardmäßig deaktiviert.

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

Wenn die Anzeige Videocontent 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 entsprechenden Methoden auf dem

VideoOptions.Builder.setCustomControlsRequested().

Das folgende Beispiel zeigt, wie Sie ein Video mit benutzerdefinierten Wiedergabesteuerelementen anfordern.

Kotlin

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

val adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

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

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Prüfen, ob benutzerdefinierte Steuerelemente aktiviert sind

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

Kotlin

  val adCallback: NativeAdLoaderCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        val mediaContent = nativeAd.mediaContent;
        if (mediaContent != null) {
          val videoController = mediaContent.videoController;
          val canShowCustomControls = videoController?.isCustomControlsEnabled();
        }
      }
    };

Java

NativeAdLoaderCallback adCallback =
  new NativeAdLoaderCallback() {
    @Override
    public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
      MediaContent mediaContent = nativeAd.getMediaContent();
      if (mediaContent != null) {
        VideoController videoController = mediaContent.getVideoController();
        if (videoController != null) {
          boolean canShowCustomControls = videoController.isCustomControlsEnabled();
        }
      }
    }
  };

Benutzerdefinierte Videosteuerelemente rendern

So rendern Sie benutzerdefinierte Videosteuerelemente:

  1. Rendern Sie die Ansicht der benutzerdefinierten Steuerelemente als untergeordnetes Element der Ansicht der nativen Anzeige. Bei diesem Ansatz werden die benutzerdefinierten Steuerelemente bei der Berechnung der Sichtbarkeit im Rahmen von Open Measurement als freundliche Behinderung betrachtet.
  2. Vermeiden Sie es, ein unsichtbares Overlay über die gesamte Media-Ansicht zu rendern. Overlays blockieren Klicks auf die Media-Ansicht und beeinträchtigen so die Leistung 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 Wischbewegungen bei Anzeigenimpressionen als Anzeigenklicks registriert werden können. Sie ist für Apps konzipiert, in denen Inhalte durch Wischbewegungen aufgerufen werden. In diesem Leitfaden erfahren Sie, wie Sie benutzerdefinierte Klickgesten für Ihre nativen Anzeigen aktivieren.

Rufen Sie NativeAdRequest.Builder.enableCustomClickGestureDirection() mit einem NativeAd.SwipeGestureDirection und einem boolean-Wert auf.

Im folgenden Beispiel wird eine benutzerdefinierte Wischgeste nach rechts implementiert und das normale Tab-Verhalten beibehalten.

  • Benutzerdefinierte Klickgesten sind standardmäßig deaktiviert.

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

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

Im folgenden Beispiel wird eine benutzerdefinierte Wischgeste nach rechts implementiert und das normale Tab-Verhalten beibehalten.

Kotlin

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

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .withNativeAdOptions(adOptions)
  .build();

Java

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

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .withNativeAdOptions(adOptions)
  .build();

Auf Wischgestenereignisse warten

Rufen Sie NativeAd.setAdEventCallback() mit einem NativeAdEventCallback auf und implementieren Sie die Methode onAdSwipeGestureClicked(), um auf Wischgestenereignisse zu reagieren.

Kotlin

  val adCallback: NativeAdLoaderCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Implement the onAdSwipeGestureClicked() method.
        val nativeAdCallback: NativeAdEventCallback = object : NativeAdEventCallback {
          override fun onAdSwipeGestureClicked() {
            // A swipe gesture click has occurred.
          }
        }
      }
    }
  // Load the native ad with the ad request and callback.
  NativeAdLoader.load(adRequest, adCallback)

Java

  NativeAdLoaderCallback adCallback =
    new NativeAdLoaderCallback() {
      @Override
      public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
        // Implement the onAdSwipeGestureClicked() method.
        NativeAdEventCallback nativeAdCallback = new NativeAdEventCallback() {
          @Override
          public void onAdSwipeGestureClicked() {
            // A swipe gesture click has occurred.
          }
        };
      }
    };
  // Load the native ad with the ad request and callback.
  NativeAdLoader.load(adRequest, adCallback);

Vermittlung

Benutzerdefinierte Klickgesten funktionieren nur bei nativen Anzeigen, die mit dem Google Mobile Ads SDK gerendert werden. Anzeigenquellen, für die Drittanbieter-SDKs für das Rendering erforderlich sind, reagieren nicht auf die Einstellung für benutzerdefinierte Klickanweisungen.