Native Anzeigen bieten viele erweiterte Funktionen, mit denen Sie zusätzliche Anpassungen vornehmen und die bestmögliche Anzeigenbereitstellung erzielen können. In diesem Leitfaden erfahren Sie, wie Sie die erweiterten Funktionen nativer Anzeigen verwenden.
Vorbereitung
- Integrieren Sie das native Anzeigenformat.
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 Medien-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 NativeAdRequest.Builder.setMediaAspectRatio() mit einem NativeAd.NativeMediaAspectRatio-Wert auf.
Wenn diese Option nicht festgelegt ist, kann die zurückgegebene Anzeige ein beliebiges Seitenverhältnis haben.
Wenn diese Option festgelegt ist, 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();
Einstellung für den Download von Bildern
Mit der Steuerung des Bilddownloads können Sie festlegen, ob Bild-Assets oder nur URIs vom SDK zurückgegeben werden.
Rufen Sie NativeAdRequest.Builder.disableImageDownloading() auf.
Die Steuerung für den Bilddownload ist standardmäßig deaktiviert.
Wenn diese Option deaktiviert ist, werden sowohl das Bild als auch der URI von GMA Next-Gen SDK ausgefüllt.
Wenn diese Option aktiviert ist, füllt das SDK stattdessen nur den URI aus, sodass Sie die eigentlichen Bilder nach eigenem Ermessen herunterladen können.
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);
Einstellungen für die Bild-Payload
Einige Anzeigen enthalten eine Reihe von Bildern statt nur eines einzelnen Bildes. Mit dieser Funktion können Sie angeben, ob Ihre App alle Bilder oder nur eines anzeigen soll.
Die 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 alle Assets bereitzustellen, die eine Serie enthalten.
Wenn diese Option aktiviert ist, gibt Ihre App an, dass sie alle Bilder für alle Assets anzeigen kann, die mehr als ein Bild haben.
Im folgenden Beispiel wird das SDK angewiesen, mehrere Bild-Assets zurückzugeben.
Platzierung der Datenschutzinfos
In diesem Abschnitt wird beschrieben, wie Sie das Datenschutzinfo-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 des Datenschutzinfo-Symbols
Mit den Einstellungen für die Position des Datenschutzinfo-Symbols können Sie festlegen, in welcher Ecke das Symbol gerendert werden soll.
Rufen Sie NativeAdRequest.Builder.setAdChoicesPlacement() mit einem NativeAdRequest.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 Datenschutzinfo-Symbol 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 Funktion für die benutzerdefinierte Ansicht des Datenschutzinfo-Symbols können Sie das Symbol an einer benutzerdefinierten Position platzieren. Dies unterscheidet sich von den Einstellungen für die Position von Datenschutzinfo, 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 Sie eine benutzerdefinierte Datenschutzinfo-Ansicht festlegen, wobei das Datenschutzinfo-Symbol innerhalb der 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 Steuerelemente für die Wiedergabe implementieren.
Ausblendungsverhalten beim Start
Mit der Einstellung „Stummgeschaltet starten“ können Sie den Ton eines Videos zu Beginn deaktivieren oder aktivieren.
Rufen Sie VideoOptions.Builder.setStartMuted() mit einem boolean-Wert auf und rufen Sie NativeAdOptions.Builder.setVideoOptions() auf.
Die Funktion „Stummgeschaltet starten“ ist standardmäßig aktiviert.
Wenn diese Option deaktiviert ist, fordert Ihre App an, dass das Video mit Ton beginnt.
Wenn diese Option aktiviert ist, wird das Video in Ihrer App standardmäßig ohne Ton wiedergegeben.
Im folgenden Beispiel wird gezeigt, wie das Video mit aktiviertem Ton 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 Wiedergabesteuerung
Damit können Sie benutzerdefinierte Steuerelemente für die Videoeingabe anfordern, um das Video abzuspielen, zu pausieren oder stummzuschalten.
Wenn Sie den Stummschaltungsstatus der Anzeigen beim Start festlegen möchten, rufen Sie VideoOptions.Builder.setCustomControlsRequested() 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 diese zusammen mit der Anzeige einblenden, da in der Anzeige selbst keine Steuerelemente angezeigt werden. Die Steuerelemente können dann die relevanten Methoden für die
VideoOptions.Builder.setCustomControlsRequested().
Das folgende Beispiel zeigt, wie ein Video mit benutzerdefinierter Wiedergabesteuerung angefordert wird.
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 die zurückgegebene Anzeige benutzerdefinierte Videosteuerelemente zulässt, müssen Sie prüfen, ob benutzerdefinierte Steuerelemente 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 Steuerelemente für die Videowiedergabe rendern
Beachten Sie beim Rendern benutzerdefinierter Steuerelemente für die Videowiedergabe die folgenden Best Practices:
- Rendern Sie die Ansicht mit den benutzerdefinierten Steuerelementen als untergeordnetes Element der Ansicht für native Anzeigen. Bei diesem Ansatz werden die benutzerdefinierten Steuerelemente bei der Berechnung der Sichtbarkeit für Open Measurement als zulässige Hindernisse berücksichtigt.
- Vermeiden Sie es, ein unsichtbares Overlay über die gesamte Medienansicht zu rendern. Overlays blockieren Klicks auf die Medienansicht, was sich negativ auf die Leistung nativer Anzeigen auswirkt. 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, die Wischgesten für die Inhaltsnavigation verwenden. 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.
Benutzerdefinierte Klickgesten sind standardmäßig deaktiviert.
Wenn die 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 Wischgeste nach rechts implementiert und das normale Tippverhalten beibehalten.
Kotlin
Java
Auf Wischgestenereignisse warten
Wenn Sie auf Ereignisse von Wischgesten warten möchten, rufen Sie NativeAd.setAdEventCallback() mit einem NativeAdEventCallback auf und implementieren Sie die Methode onAdSwipeGestureClicked().
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 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.