Gli annunci nativi dispongono di molte funzionalità avanzate che ti consentono di apportare personalizzazioni aggiuntive e offrire la migliore esperienza pubblicitaria possibile. Questa guida illustra come utilizzare le funzionalità avanzate degli annunci nativi.
Prerequisiti
- Integra il formato dell'annuncio nativo.
Controlli degli asset
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à pubblicitarie.
Chiama NativeAdOptions.Builder.setMediaAspectRatio()
con un valore NativeAdOptions.MediaAspectRatio
.
Se non viene impostato, l'annuncio restituito può avere qualsiasi formato video.
Una volta 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 con proporzioni specifiche.
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.build();
Controllo del download delle immagini
Il controllo del download delle immagini ti consente di decidere se l'SDK deve restituire asset immagine o solo URI.
ChiamaNativeAdOptions.Builder.setReturnUrlsForImageAssets()
con un valore boolean
.
Il controllo del download delle immagini è disattivato per impostazione predefinita.
Se questa opzione è disattivata, l'SDK Google Mobile Ads compila sia l'immagine sia l'URI per te.
Se questa opzione è attivata, l'SDK compila solo l'URI, consentendoti di scaricare le immagini effettive a tua discrezione.
Il seguente esempio indica all'SDK di restituire solo l'URI.
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setReturnUrlsForImageAssets(true)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.forNativeAd(nativeAd -> {
List<Uri> imageUris = new ArrayList<>();
for (Image image : nativeAd.getImages()) {
imageUris.add(image.getUri());
}
})
.build();
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.
ChiamaNativeAdOptions.Builder.setRequestMultipleImages()
con un valore boolean
.
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 gli asset che contengono una serie.
Se questa opzione è attivata, 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.
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setRequestMultipleImages(true)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.build();
Posizionamenti Scegli Tu!
Controlli della posizione di Scegli Tu!
I controlli della posizione di Scegli Tu! ti consentono di scegliere in quale angolo visualizzare l'icona Scegli Tu!.
Chiama NativeAdOptions.Builder.setAdChoicesPlacement()
con un valore NativeAdOption.AdChoicesPlacement
.
Se non è impostato, la posizione dell'icona Scegli Tu! è impostata in alto a destra.
Se impostato, AdChoices viene posizionato nella posizione personalizzata richiesta.
L'esempio seguente mostra come impostare una posizione dell'immagine AdChoices personalizzata.
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.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. È diverso dai controlli della posizione di AdChoices, che consentono di specificare solo uno dei quattro angoli.
ChiamaNativeAdView.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
.
public void onNativeAdLoaded(NativeAd ad) {
NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
AdChoicesView adChoicesView = new AdChoicesView(this);
nativeAdView.setAdChoicesView(adChoicesView);
}
Comandi video
Comportamento di attivazione della disattivazione audio
Il comportamento di inizio con l'audio disattivato ti consente di disattivare o attivare l'audio iniziale di un video.
ChiamaVideoOptions.Builder.setStartMuted()
con un valore boolean
.
Il comportamento di attivazione della disattivazione audio all'avvio è attivo per impostazione predefinita.
Se questa opzione è disattivata, l'app richiede che il video inizi con l'audio.
Se questa opzione è attivata, l'app richiede che l'audio del video sia disattivato all'inizio.
L'esempio seguente mostra come avviare il video con l'audio non disattivato.
VideoOptions videoOptions = new VideoOptions.Builder()
.setStartMuted(false)
.build();
NativeAdOptions adOptions = new NativeAdOptions.Builder()
.setVideoOptions(videoOptions)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(adOptions).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.
ChiamaVideoOptions.Builder.setCustomControlsRequested()
con un valore boolean
.
I controlli di riproduzione personalizzati sono disattivati per impostazione predefinita.
Se questa opzione non è attiva, nel video verranno mostrati i controlli di input visualizzati dall'SDK.
- Se l'annuncio include contenuti video e i controlli personalizzati sono attivati, devi mostrare i controlli personalizzati insieme all'annuncio, in quanto l'annuncio stesso non mostrerà alcun controllo. I controlli possono quindi chiamare i metodi pertinenti su
VideoController
.
L'esempio seguente mostra come richiedere un video con controlli di riproduzione personalizzati.
VideoOptions videoOptions = new VideoOptions.Builder()
.setCustomControlsRequested(true)
.build();
NativeAdOptions adOptions = new NativeAdOptions.Builder()
.setVideoOptions(videoOptions)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(adOptions).build();
Verificare 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 sono attivati.
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
}
}
Visualizzare controlli video personalizzati
Per visualizzare i controlli video personalizzati, segui le best practice riportate di seguito:
- Esegui il rendering della visualizzazione dei controlli personalizzati come elemento secondario della visualizzazione dell'annuncio nativo. Questo approccio garantisce che i calcoli della visibilità di Open Measurement considerino i controlli personalizzati come un'ostruzione non dannosa.
- Evita di eseguire il rendering di un overlay invisibile sull'intera visualizzazione dei contenuti multimediali. Gli overlay bloccano i clic nella visualizzazione dei contenuti multimediali, con un impatto negativo sul rendimento degli annunci nativi. Crea invece un piccolo overlay sufficientemente grande da adattarsi ai controlli.
Gesti di clic personalizzati
I gesti di clic personalizzati sono una funzionalità degli annunci nativi che consente di registrare come clic sugli annunci gli scorrimenti sulle visualizzazioni degli annunci. È progettato per funzionare con le app che utilizzano gesti di scorrimento per la navigazione nei contenuti. Questa guida spiega come attivare i gesti di clic personalizzati negli annunci nativi.
Chiama NativeAdOptions.Builder.enableCustomClickGestureDirection()
con un NativeAdOptions.SwipeGestureDirection
e un boolean
per indicare se vuoi che i tocchi siano consentiti come clic.
I gesti di clic personalizzati sono disattivati per impostazione predefinita.
Se questa opzione è disattivata, l'app supporterà il normale comportamento dei clic.
Se abilitata, l'app supporterà i gesti di scorrimento personalizzati.
L'esempio seguente implementa un gesto di scorrimento personalizzato verso destra e conserva il normale comportamento della scheda.
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, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(adOptions);
Ascolta gli eventi relativi ai gesti di scorrimento
Quando viene registrato un clic con gesto di scorrimento, l'SDK Google Mobile Ads invoca il metodo onAdSwipeGestureClicked()
su AdListener
, oltre al metodo onAdClicked()
esistente.
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();
Mediazione
I gesti di clic personalizzati funzionano solo sugli annunci nativi visualizzati dall'SDK Google Mobile Ads. Le origini annuncio che richiedono SDK di terze parti per il rendering non rispondono all'impostazione delle indicazioni sui clic personalizzate.