Gli annunci nativi hanno molte funzionalità avanzate che ti consentono di apportare personalizzazioni aggiuntive e offrire 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 descrive in dettaglio come personalizzare gli asset delle creatività negli annunci nativi. Hai la possibilità di specificare un formato preferito per gli asset multimediali e la modalità di download e visualizzazione degli asset immagine.
Controlli del formato multimediale preferito
I controlli del formato multimediale ti consentono di specificare una preferenza per il formato delle creatività degli annunci.
Chiama NativeAdRequest.Builder.setMediaAspectRatio()
con un valore NativeAd.NativeMediaAspectRatio.
Se non è impostato, l'annuncio restituito può avere qualsiasi formato multimediale.
Se è impostato, potrai migliorare l'esperienza utente specificando il tipo di formato preferito.
L'esempio seguente indica all'SDK di preferire un'immagine o un video di ritorno con un formato specifico.
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();
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 è disattivato, GMA Next-Gen SDK compila sia l'immagine sia l'URI.
Se è attivato, 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(
"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);
Controlli del payload delle immagini
Alcuni annunci hanno una serie di immagini anziché una sola. Utilizza questa funzionalità per indicare se la tua app è pronta a visualizzare tutte le immagini o solo una.
I controlli del payload delle immagini sono disattivati per impostazione predefinita.
Se è disattivato, la tua app indica all'SDK di fornire solo la prima immagine per gli asset che contengono una serie.
Se è attivato, la tua 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 di Scegli Tu!
Questa sezione descrive in dettaglio come posizionare l'overlay Scegli Tu!. Hai la possibilità di impostare il posizionamento in uno dei quattro angoli o di eseguirne il rendering all'interno di una visualizzazione personalizzata.
Controlli della posizione di Scegli Tu!
I controlli della posizione di Scegli Tu! ti consentono di scegliere l'angolo in cui eseguire il rendering dell'icona Scegli Tu!.
Chiama NativeAdRequest.Builder.setAdChoicesPlacement()
con un valore NativeAdRequest.AdChoicesPlacement.
Se non è impostata, la posizione dell'icona Scegli Tu! è impostata in alto a destra.
Se è impostata, Scegli Tu! viene posizionata nella posizione personalizzata come richiesto.
L'esempio seguente mostra come impostare una posizione personalizzata dell'immagine Scegli Tu!.
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();
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 funzionalità è diversa dai controlli della 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 personalizzata di Scegli Tu!, con l'icona Scegli Tu! di cui è stato eseguito il rendering 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);
}
Controlli video
Questa sezione descrive in dettaglio come personalizzare l'esperienza di riproduzione degli annunci video. Hai la possibilità di impostare lo stato di disattivazione audio iniziale e implementare controlli di riproduzione personalizzati.
Comportamento di avvio con audio disattivato
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 è attivato per impostazione predefinita.
Se è disattivato, la tua app richiede che il video inizi con l'audio.
Se è attivato, la tua app richiede che il video inizi con l'audio disattivato.
L'esempio seguente mostra come avviare il video con l'audio non disattivato.
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()
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 audio iniziale degli annunci, chiama VideoOptions.Builder.setCustomControlsRequested().
I controlli di riproduzione personalizzati sono disattivati per impostazione predefinita.
Se è disattivato, il video mostrerà i controlli di input di cui è stato eseguito il rendering dell'SDK.
Se l'annuncio contiene contenuti video e i controlli personalizzati sono attivati, devi visualizzare i controlli personalizzati insieme all'annuncio, perché 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(
"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()
Verificare se i controlli personalizzati sono attivati
Poiché non è noto al momento della richiesta 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();
}
}
}
};
Eseguire il rendering dei 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 di annuncio nativo. Questo approccio consente ai calcoli della visibilità della misurazione aperta di considerare i controlli personalizzati come un'ostruzione amichevole.
- Evita di eseguire il rendering di un overlay invisibile sull'intero pannello multimediale. Gli overlay bloccano i clic sul pannello multimediale, influendo negativamente sul rendimento degli annunci nativi. Crea invece un piccolo overlay sufficientemente grande da contenere i controlli.