Gli annunci nativi dispongono di molte funzionalità avanzate che ti consentono di apportare ulteriori personalizzazioni e di creare la migliore esperienza pubblicitaria possibile. Questa guida mostra come utilizzare le funzionalità avanzate degli annunci nativi.
Prerequisiti
- Integra il formato dell'annuncio nativo.
Controlli degli asset
Questa sezione spiega come personalizzare gli asset delle creatività negli annunci nativi. Puoi specificare le proporzioni preferite per gli asset multimediali e il modo in cui gli asset immagine vengono scaricati e visualizzati.
Controlli delle proporzioni dei contenuti multimediali preferiti
I controlli delle proporzioni dei contenuti multimediali ti consentono di specificare una preferenza per le proporzioni delle creatività degli annunci.
Chiama NativeAdRequest.Builder.setMediaAspectRatio() con un valore NativeAd.NativeMediaAspectRatio.
Se non viene impostato, l'annuncio restituito può avere qualsiasi formato multimediale.
Se impostato, potrai migliorare l'esperienza utente specificando il tipo di proporzioni preferito.
L'esempio seguente indica all'SDK di preferire un'immagine o un video di ritorno con proporzioni specifiche.
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();
Controllo del download delle immagini
Il controllo del download delle immagini ti consente di decidere se l'SDK deve restituire gli asset immagine o solo gli URI.
Chiama NativeAdRequest.Builder.disableImageDownloading().
Il controllo del download delle immagini è disattivato per impostazione predefinita.
Se questa opzione è disabilitata, GMA Next-Gen SDK compila automaticamente sia l'immagine sia l'URI.
Se questa opzione è attiva, l'SDK compila solo l'URI, consentendoti di scaricare le immagini effettive a tua discrezione.
L'esempio seguente indica all'SDK di restituire solo l'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);
Controlli del payload delle immagini
Alcuni annunci contengono una serie di immagini anziché una sola. Utilizza questa funzionalità per indicare se la tua app è pronta a mostrare tutte le immagini o solo una.
I controlli del payload delle immagini sono disattivati per impostazione predefinita.
Se questa opzione è disattivata, l'app indica all'SDK di fornire solo la prima immagine per tutti gli asset che contengono una serie.
Se questa opzione è attiva, l'app indica che è pronta a visualizzare tutte le immagini per gli asset che ne hanno più di una.
L'esempio seguente indica all'SDK di restituire più asset immagine.
Posizionamenti Scegli Tu!
Questa sezione descrive come posizionare l'overlay Scegli Tu!. Puoi impostare il posizionamento in uno dei quattro angoli o eseguirne il rendering all'interno di una visualizzazione personalizzata.
Controlli della posizione di Scegli Tu!
I controlli di posizione di AdChoices ti consentono di scegliere l'angolo in cui visualizzare l'icona Scegli Tu!.
Chiama NativeAdRequest.Builder.setAdChoicesPlacement() con un valore NativeAdRequest.AdChoicesPlacement.
Se non viene impostata, la posizione dell'icona Scegli Tu! viene impostata in alto a destra.
Se impostata, l'icona Scegli Tu! viene posizionata nella posizione personalizzata richiesta.
L'esempio seguente mostra come impostare una posizione personalizzata dell'immagine Scegli Tu!.
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();
Visualizzazione personalizzata di Scegli Tu!
La funzionalità di visualizzazione personalizzata di Scegli Tu! ti consente di posizionare l'icona Scegli Tu! in una posizione personalizzata. Questa opzione è diversa dai controlli di posizione di Scegli Tu!, che consentono di specificare solo uno dei quattro angoli.
Chiama NativeAdView.setAdChoicesView() con un valore AdChoicesView.
L'esempio seguente mostra come impostare una visualizzazione Scegli Tu! personalizzata, con l'icona Scegli Tu! visualizzata all'interno di 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);
}
Comandi video
Questa sezione descrive in dettaglio come personalizzare l'esperienza di riproduzione degli annunci video. Puoi scegliere di impostare lo stato di disattivazione audio iniziale e implementare controlli di riproduzione personalizzati.
Comportamento di disattivazione audio all'avvio
Il comportamento di avvio con audio disattivato ti consente di disattivare o attivare l'audio iniziale di un video.
Chiama VideoOptions.Builder.setStartMuted() con un valore boolean e chiama NativeAdOptions.Builder.setVideoOptions().
Il comportamento di avvio con audio disattivato è attivo per impostazione predefinita.
Se l'opzione è disattivata, l'app richiede che il video inizi con l'audio.
Se questa opzione è attiva, l'app richiede che il video inizi con l'audio disattivato.
L'esempio seguente mostra come avviare il video con l'audio attivato.
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()
Controlli di riproduzione personalizzati
In questo modo, puoi richiedere controlli di input video personalizzati per riprodurre, mettere in pausa o disattivare l'audio del video.
Per impostare lo stato di disattivazione dell'audio iniziale degli annunci, chiama VideoOptions.Builder.setCustomControlsRequested().
I controlli di riproduzione personalizzati sono disattivati per impostazione predefinita.
Se l'opzione è disattivata, il video mostrerà i controlli di input visualizzati dall'SDK.
Se l'annuncio include contenuti video e i controlli personalizzati sono attivati, devi visualizzare i controlli personalizzati insieme all'annuncio, poiché l'annuncio non mostrerà alcun controllo. I controlli possono quindi chiamare i metodi pertinenti su
VideoOptions.Builder.setCustomControlsRequested().
L'esempio seguente mostra come richiedere un video con controlli di riproduzione personalizzati.
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()
Controlla se i controlli personalizzati sono attivi
Poiché al momento della richiesta non è noto se l'annuncio restituito consentirà i controlli video personalizzati, devi verificare se i controlli personalizzati sono attivati.
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();
}
}
}
};
Visualizza i controlli video personalizzati
Esegui il rendering dei controlli video personalizzati utilizzando le seguenti best practice:
- Esegui il rendering della visualizzazione dei controlli personalizzati come elemento secondario della visualizzazione dell'annuncio nativo. Questo approccio consente ai calcoli della visibilità di Open Measurement di considerare i controlli personalizzati come un'ostruzione accettabile.
- Evita di eseguire il rendering di un overlay invisibile sull'intera visualizzazione dei contenuti multimediali. Gli overlay bloccano i clic sulla visualizzazione dei contenuti multimediali, con un impatto negativo sul rendimento degli annunci nativi. Crea invece un piccolo overlay di dimensioni sufficienti per contenere i controlli.
Gesti di clic personalizzati
I gesti di clic personalizzati sono una funzionalità degli annunci nativi che ti consente di registrare gli scorrimenti sulle visualizzazioni degli annunci come clic sugli annunci. Funziona con le app che utilizzano i gesti di scorrimento per la navigazione dei contenuti. Questa guida mostra come attivare i gesti di clic personalizzati per gli annunci nativi.
Chiama NativeAdRequest.Builder.enableCustomClickGestureDirection() con un NativeAd.SwipeGestureDirection e un valore boolean.
I gesti di clic personalizzati sono disattivati per impostazione predefinita.
Se l'opzione è disattivata, l'app supporta il normale comportamento dei clic.
Se l'opzione è attiva, l'app supporta i gesti di scorrimento personalizzati.
L'esempio seguente implementa un gesto di scorrimento personalizzato verso destra e conserva il normale comportamento del tocco.
Kotlin
Java
Ascolta gli eventi dei gesti di scorrimento
Per ascoltare gli eventi dei gesti di scorrimento, chiama NativeAd.setAdEventCallback()
con un NativeAdEventCallback e
implementa il metodo
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);
Mediazione
I gesti di clic personalizzati funzionano solo sugli annunci nativi di cui l'SDK Google Mobile Ads esegue il rendering. Le origini annuncio che richiedono SDK di terze parti per il rendering non rispondono all'impostazione delle indicazioni per i clic personalizzati.