Native Anzeigen bieten viele erweiterte Funktionen, mit denen Sie zusätzliche Anpassungen vornehmen und die Nutzerfreundlichkeit optimieren können. In diesem Leitfaden erfahren Sie, wie Sie die erweiterten Funktionen von nativen Anzeigen verwenden.
Vorbereitung
- Natives Anzeigenformat einbinden
Asset-Einstellungen
Steuerelemente für das bevorzugte Seitenverhältnis von Medien
Mit den Steuerelementen für das Seitenverhältnis von Medien können Sie eine Einstellung für das Seitenverhältnis von Creatives festlegen.
Rufe NativeAdOptions.Builder.setMediaAspectRatio()
mit einem NativeAdOptions.MediaAspectRatio
-Wert auf.
Wenn das Seitenverhältnis nicht festgelegt ist, kann die zurückgegebene Anzeige ein beliebiges Seitenverhältnis haben.
Wenn Sie das tun, können Sie die Nutzerfreundlichkeit verbessern, indem Sie das bevorzugte Seitenverhältnis angeben.
Im folgenden Beispiel wird das SDK angewiesen, ein Bild oder Video mit einem bestimmten Seitenverhältnis zurückzugeben.
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build();
AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
.withNativeAdOptions(nativeAdOptions)
.build();
Bilddownloadsteuerung
Mit der Bilddownloadsteuerung können Sie festlegen, ob vom SDK Bild-Assets oder nur URIs zurückgegeben werden.
RufeNativeAdOptions.Builder.setReturnUrlsForImageAssets()
mit einem boolean
-Wert auf.
Die Einstellungen 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 für Sie ausgefüllt.
Wenn diese Option aktiviert ist, füllt das SDK stattdessen nur den URI aus. Sie können die tatsächlichen Bilder dann nach Belieben herunterladen.
Im folgenden Beispiel wird das SDK angewiesen, nur den URI zurückzugeben.
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setReturnUrlsForImageAssets(true)
.build();
AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
.withNativeAdOptions(nativeAdOptions)
.forNativeAd(nativeAd -> {
List<Uri> imageUris = new ArrayList<>();
for (Image image : nativeAd.getImages()) {
imageUris.add(image.getUri());
}
})
.build();
Steuerelemente für die Bildnutzlast
Einige Anzeigen enthalten mehrere Bilder. Mit dieser Funktion können Sie angeben, ob Ihre App alle oder nur ein Bild anzeigen kann.
RufeNativeAdOptions.Builder.setRequestMultipleImages()
mit einem boolean
-Wert auf.
Die Einstellungen für die Bildnutzlast sind standardmäßig deaktiviert.
Wenn diese Option deaktiviert ist, weist Ihre App das SDK an, für alle Assets, die eine Reihe enthalten, nur das erste Bild bereitzustellen.
Wenn diese Option aktiviert ist, gibt Ihre App an, dass sie bereit ist, alle Bilder für alle Assets anzuzeigen, die mehr als ein Bild haben.
Im folgenden Beispiel wird das SDK angewiesen, mehrere Bild-Assets zurückzugeben.
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setRequestMultipleImages(true)
.build();
AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
.withNativeAdOptions(nativeAdOptions)
.build();
Placements mit Datenschutzinfos
Einstellungen für die Position von AdChoices
Mit den Steuerelementen für die Position des Datenschutzinfo-Symbols können Sie auswählen, in welcher Ecke das Symbol eingeblendet werden soll.
Rufe NativeAdOptions.Builder.setAdChoicesPlacement()
mit einem NativeAdOption.AdChoicesPlacement
-Wert auf.
Wenn diese Einstellung nicht festgelegt ist, wird das Datenschutzinfo-Symbol oben rechts platziert.
Wenn diese Einstellung festgelegt ist, wird AdChoices an der benutzerdefinierten Position platziert.
Im folgenden Beispiel wird gezeigt, wie eine benutzerdefinierte Position für das AdChoices-Bild festgelegt wird.
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build();
AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
.withNativeAdOptions(nativeAdOptions)
.build();
Benutzerdefinierte Ansicht für „Datenschutzinfo“
Mit der Funktion für die benutzerdefinierte Ansicht des Datenschutzinfo-Symbols können Sie das Symbol an einer benutzerdefinierten Stelle platzieren. Das unterscheidet sich von den Positionierungseinstellungen von AdChoices, bei denen nur eine der vier Ecken angegeben werden kann.
RufeNativeAdView.setAdChoicesView()
mit einem AdChoicesView
-Wert auf.
Im folgenden Beispiel wird gezeigt, wie eine benutzerdefinierte AdChoices-Ansicht festgelegt wird, bei der das AdChoices-Symbol innerhalb des AdChoicesView
gerendert wird.
public void onNativeAdLoaded(NativeAd ad) {
NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
AdChoicesView adChoicesView = new AdChoicesView(this);
nativeAdView.setAdChoicesView(adChoicesView);
}
Videosteuerelemente
Ausblendungsverhalten starten
Mit dieser Einstellung kannst du festlegen, ob der Ton eines Videos zu Beginn stummgeschaltet oder aktiviert werden soll.
RufeVideoOptions.Builder.setStartMuted()
mit einem boolean
-Wert auf.
Das Stummschalten beim Starten ist standardmäßig aktiviert.
Wenn diese Option deaktiviert ist, fordert Ihre App an, dass das Video mit Audio beginnen soll.
Wenn diese Option aktiviert ist, wird in Ihrer App angefordert, dass das Video mit stummgeschaltetem Ton gestartet wird.
Im folgenden Beispiel wird gezeigt, wie das Video mit aktiviertem Ton gestartet wird.
VideoOptions videoOptions = new VideoOptions.Builder()
.setStartMuted(false)
.build();
NativeAdOptions adOptions = new NativeAdOptions.Builder()
.setVideoOptions(videoOptions)
.build();
AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
.withNativeAdOptions(adOptions).build();
Benutzerdefinierte Wiedergabesteuerung
So können Sie benutzerdefinierte Videoeingaben anfordern, um das Video abzuspielen, zu pausieren oder stummzuschalten.
RufeVideoOptions.Builder.setCustomControlsRequested()
mit einem boolean
-Wert auf.
Benutzerdefinierte Wiedergabesteuerungen sind standardmäßig deaktiviert.
Wenn diese Option deaktiviert ist, werden in deinem Video vom SDK gerenderte Eingabesteuerelemente angezeigt.
- Wenn die Anzeige Videocontent enthält und benutzerdefinierte Steuerelemente aktiviert sind, sollten Sie diese zusammen mit der Anzeige anzeigen lassen, da in der Anzeige keine Steuerelemente zu sehen sind. Die Steuerelemente können dann die entsprechenden Methoden auf der
VideoController
aufrufen.
Im folgenden Beispiel wird gezeigt, wie du ein Video mit benutzerdefinierten Wiedergabesteuerungen anforderst.
VideoOptions videoOptions = new VideoOptions.Builder()
.setCustomControlsRequested(true)
.build();
NativeAdOptions adOptions = new NativeAdOptions.Builder()
.setVideoOptions(videoOptions)
.build();
AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
.withNativeAdOptions(adOptions).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 diese aktiviert sind.
Java
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
VideoController videoController = mediaContent.getVideoController();
boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}
}
Kotlin
NativeAd.OnNativeAdLoadedListener { ad ->
val mediaContent = ad.mediaContent
if (mediaContent != null) {
val videoController = mediaContent.videoController
val canShowCustomControls = videoController.isCustomControlsEnabled
}
}
Benutzerdefinierte Videosteuerelemente rendern
Beachten Sie beim Rendern benutzerdefinierter Videosteuerelemente die folgenden Best Practices:
- Rendern Sie die Ansicht mit den benutzerdefinierten Steuerelementen als untergeordnete Ansicht der nativen Anzeigenansicht. So wird sichergestellt, dass die benutzerdefinierten Steuerelemente bei der Sichtbarkeitsberechnung mit Open Measurement als freundliches Hindernis betrachtet werden.
- Vermeiden Sie es, ein unsichtbares Overlay über die gesamte Medienansicht zu rendern. Overlays blockieren Klicks auf die Medienansicht und wirken sich negativ auf die Leistung nativer Anzeigen aus. Erstellen Sie stattdessen ein kleines Overlay, das gerade groß genug ist, um die Steuerelemente zu enthalten.
Benutzerdefinierte Klickgesten
Benutzerdefinierte Klickgesten sind eine Funktion für native Anzeigen, mit der Wischaktionen bei Anzeigenaufrufen als Anzeigenklicks erfasst werden können. Sie ist für Apps konzipiert, in denen Wischgesten für die Navigation durch Inhalte verwendet werden. In dieser Anleitung erfahren Sie, wie Sie benutzerdefinierte Klickgesten in Ihren nativen Anzeigen aktivieren.
Rufen Sie NativeAdOptions.Builder.enableCustomClickGestureDirection()
mit einem NativeAdOptions.SwipeGestureDirection
und einem boolean
auf, um anzugeben, ob Tippen als Klicks zugelassen werden sollen.
Benutzerdefinierte Klickgesten sind standardmäßig deaktiviert.
Wenn die Funktion 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 Wischgeste nach rechts implementiert und das normale Tab-Verhalten bleibt erhalten.
NativeAdOptions adOptions = new NativeAdOptions
.Builder()
.enableCustomClickGestureDirection(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.
AdLoader.Builder builder = new AdLoader
.Builder(this, '/21775744923/example/native')
.withNativeAdOptions(adOptions);
Auf Wisch-Ereignisse warten
Wenn ein Wisch-Klick erfasst wird, ruft das Google Mobile Ads SDK zusätzlich zur vorhandenen Methode onAdClicked()
die Methode onAdSwipeGestureClicked()
auf AdListener
auf.
AdLoader adLoader = builder
.withAdListener(
new AdListener() {
// Called when a swipe gesture click is recorded.
@Override
public void onAdSwipeGestureClicked() {
Log.d(TAG, "A swipe gesture click has occurred.")
}
// Called when a swipe gesture click or a tap click is recorded, as
// configured in NativeAdOptions.
@Override
public void onAdClicked() {
Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
}
})
.build();
Vermittlung
Benutzerdefinierte Klickgesten funktionieren nur bei nativen Anzeigen, die mit dem Google Mobile Ads SDK gerendert werden. Bei Anzeigenquellen, für die zum Rendern SDKs von Drittanbietern erforderlich sind, wird die Einstellung für benutzerdefinierte Klickanweisungen nicht berücksichtigt.