Reklamy natywne mają wiele funkcji zaawansowanych, które umożliwiają dodatkowe dostosowywanie i zapewniają najlepszą możliwą jakość reklamy. Z tego przewodnika dowiesz się, jak korzystać z funkcji zaawansowanych reklam natywnych.
Wymagania wstępne
- Zintegruj format reklamy natywnej.
Ustawienia komponentów
W tej sekcji opisujemy, jak dostosować komponenty kreacji w reklamach natywnych. Możesz określić preferowany format obrazu w przypadku zasobów multimedialnych oraz sposób pobierania i wyświetlania komponentów z obrazem.
Elementy sterujące preferowanym formatem obrazu multimediów
Elementy sterujące formatem obrazu multimediów umożliwiają określenie preferowanego formatu obrazu w kreacjach reklamowych.
Wywołaj NativeAdRequest.Builder.setMediaAspectRatio() z wartością NativeAd.NativeMediaAspectRatio.
Jeśli nie skonfigurujesz tego parametru, zwrócona reklama może mieć dowolny format obrazu.
Po ustawieniu tego parametru możesz poprawić wrażenia użytkownika, określając preferowany typ formatu obrazu.
Poniższy przykład instruuje pakiet SDK, aby preferował zwracany obraz lub film o określonym formacie.
Kotlin
val adRequest = NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build()
Java
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build();
Kontrola pobierania obrazów
Kontrola pobierania obrazów pozwala zdecydować, czy pakiet SDK ma zwracać komponenty z obrazem czy tylko identyfikatory URI.
Zadzwoń pod numer NativeAdRequest.Builder.disableImageDownloading().
Ustawienia pobierania obrazów są domyślnie wyłączone.
Gdy ta opcja jest wyłączona, GMA Next-Gen SDK wypełnia zarówno obraz, jak i identyfikator URI.
Gdy ta opcja jest włączona, pakiet SDK wypełnia tylko identyfikator URI, co umożliwia pobieranie rzeczywistych obrazów według własnego uznania.
W przykładzie poniżej pakiet SDK ma zwrócić tylko identyfikator URI.
Kotlin
val adRequest = NativeAdRequest.Builder(
"/21775744923/example/native",
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(
"/21775744923/example/native",
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);
Zarządzanie zestawem danych obrazu
Niektóre reklamy zawierają serię obrazów, a nie tylko jeden. Użyj tej funkcji, aby wskazać, czy aplikacja jest przygotowana do wyświetlania wszystkich obrazów czy tylko jednego.
Zarządzanie zestawem danych obrazu jest domyślnie wyłączone.
Gdy ta opcja jest wyłączona, aplikacja instruuje pakiet SDK, aby w przypadku komponentów zawierających serię obrazów udostępniał tylko pierwszy obraz.
Gdy ta opcja jest włączona, aplikacja wskazuje, że jest przygotowana do wyświetlania wszystkich obrazów w przypadku komponentów, które mają więcej niż 1 obraz.
Poniższy przykład pokazuje, jak poinstruować pakiet SDK, aby zwracał wiele komponentów z obrazem.
Miejsca docelowe reklamy z oznaczeniem Informacja
W tej sekcji opisujemy, jak umieścić nakładkę Informacja. Możesz umieścić go w 1 z 4 rogów lub w niestandardowym widoku.
Ustawienia pozycji ikony Informacja
Ustawienie Informacja umożliwia wybranie rogu, w którym ma być renderowana ta ikona.
Wywołaj NativeAdRequest.Builder.setAdChoicesPlacement() z wartością NativeAdRequest.AdChoicesPlacement.
Jeśli nie jest ustawiona, ikona Informacja jest umieszczana w prawym górnym rogu.
Jeśli jest ustawiona, ikona Informacja jest umieszczana w niestandardowym miejscu zgodnie z żądaniem.
Przykład poniżej pokazuje, jak ustawić niestandardową pozycję obrazu Informacja.
Kotlin
val adRequest = NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build()
Java
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build();
Widok niestandardowy Informacja
Funkcja niestandardowego widoku ikony Informacja umożliwia umieszczenie tej ikony w niestandardowym miejscu. Różni się to od ustawień pozycji ikony Informacja, które umożliwiają określenie tylko 1 z 4 rogów.
Wywołaj NativeAdView.setAdChoicesView() z wartością AdChoicesView.
Poniższy przykład pokazuje, jak ustawić niestandardowy widok ikony Informacja, która jest renderowana w widoku AdChoicesView.
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);
}
Sterowanie odtwarzaniem
W tej sekcji opisujemy, jak dostosować odtwarzanie reklam wideo. Możesz ustawić początkowy stan wyciszenia i wdrożyć niestandardowe elementy sterujące odtwarzaniem.
Zachowanie na początku wyciszenia
Opcja „Rozpocznij wyciszony” umożliwia wyłączenie lub włączenie dźwięku na początku filmu.
Wywołaj VideoOptions.Builder.setStartMuted() z wartością boolean i wywołaj NativeAdOptions.Builder.setVideoOptions().
Domyślnie wyciszenie na początku jest włączone.
Gdy ta opcja jest wyłączona, aplikacja wysyła żądanie, aby film zaczynał się od dźwięku.
Gdy ta opcja jest włączona, aplikacja wysyła żądanie, aby film zaczynał się z wyciszonym dźwiękiem.
Poniższy przykład pokazuje, jak rozpocząć odtwarzanie filmu z włączonym dźwiękiem.
Kotlin
val videoOptions = VideoOptions.Builder()
.setStartMuted(false)
.build()
val adRequest = NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Java
VideoOptions videoOptions = VideoOptions.Builder()
.setStartMuted(false)
.build()
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Niestandardowe elementy sterujące odtwarzaniem
Dzięki temu możesz poprosić o niestandardowe elementy sterujące odtwarzaniem, wstrzymywaniem i wyciszaniem filmu.
Aby ustawić początkowy stan wyciszenia reklam, wywołaj metodę VideoOptions.Builder.setCustomControlsRequested().
Niestandardowe elementy sterujące odtwarzaniem są domyślnie wyłączone.
Gdy ta opcja jest wyłączona, w filmie będą wyświetlane elementy sterujące renderowane przez pakiet SDK.
Jeśli reklama zawiera treści wideo i włączone są niestandardowe elementy sterujące, należy wyświetlać je razem z reklamą, ponieważ sama reklama nie będzie zawierać żadnych elementów sterujących. Elementy sterujące mogą następnie wywoływać odpowiednie metody w
VideoOptions.Builder.setCustomControlsRequested().
Poniższy przykład pokazuje, jak wysłać żądanie reklamy wideo z niestandardowymi elementami sterującymi odtwarzaniem.
Kotlin
val videoOptions: VideoOptions.Builder()
.setCustomControlsRequested(true)
.build()
val adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Java
VideoOptions VideoOptions = VideoOptions.Builder()
.setCustomControlsRequested(true)
.build()
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Sprawdzanie, czy ustawienia niestandardowe są włączone
Ponieważ w momencie wysyłania żądania nie wiadomo, czy zwrócona reklama będzie zezwalać na niestandardowe elementy sterujące, musisz sprawdzić, czy ma ona włączone niestandardowe elementy sterujące.
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();
}
}
}
};
Renderowanie niestandardowych elementów sterujących odtwarzaniem wideo
Aby renderować niestandardowe elementy sterujące odtwarzaniem wideo, postępuj zgodnie z tymi sprawdzonymi metodami:
- Wyrenderuj widok elementów sterujących jako element podrzędny widoku reklamy natywnej. Dzięki temu obliczenia widoczności w ramach Open Measurement będą uwzględniać niestandardowe elementy sterujące jako przyjazne przeszkody.
- Unikaj renderowania niewidocznej nakładki na całym widoku multimediów. Nakładki blokują kliknięcia w widoku multimediów, co negatywnie wpływa na skuteczność reklam natywnych. Zamiast tego utwórz małą nakładkę, która będzie wystarczająco duża, aby zmieściły się w niej elementy sterujące.
Gesty kliknięć niestandardowych
Niestandardowe gesty kliknięcia to funkcja reklam natywnych, która umożliwia rejestrowanie przesunięć palcem po wyświetleniach reklam jako kliknięć reklam. Działa z aplikacjami, które używają gestów przesuwania do poruszania się po treściach. Z tego przewodnika dowiesz się, jak włączyć niestandardowe gesty kliknięcia w reklamach natywnych.
Wywołaj NativeAdRequest.Builder.enableCustomClickGestureDirection() z NativeAd.SwipeGestureDirection i wartością boolean.
Gesty kliknięć niestandardowych są domyślnie wyłączone.
Gdy jest wyłączona, aplikacja obsługuje normalne zachowanie po kliknięciu.
Po włączeniu tej opcji aplikacja obsługuje niestandardowe gesty przesuwania.
W przykładzie poniżej implementujemy niestandardowy gest przesunięcia w prawo i zachowujemy normalne działanie kliknięcia.
Kotlin
Java
Nasłuchiwanie zdarzeń gestu przesunięcia
Aby nasłuchiwać zdarzeń gestu przesunięcia, wywołaj NativeAd.setAdEventCallback() z NativeAdEventCallback i zaimplementuj metodę 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);
Mediacja
Niestandardowe gesty kliknięcia działają tylko w przypadku reklam natywnych renderowanych przez pakiet SDK do reklam mobilnych Google. Źródła reklam, które do renderowania wymagają pakietów SDK innych firm, nie reagują na ustawienie niestandardowych wskazówek dojazdu po kliknięciu.