Gli annunci banner sono annunci rettangolari che occupano una parte del layout dell'app. Rimangono sullo schermo durante l'interazione degli utenti con l'app, ancorati nella parte superiore o inferiore dello schermo o in linea con i contenuti mentre l'utente scorre. Gli annunci banner possono aggiornarsi automaticamente dopo un determinato periodo di tempo. Per saperne di più, consulta Panoramica degli annunci banner.
Questa guida spiega come iniziare a utilizzare gli annunci banner adattivi ancorati, che massimizzano il rendimento ottimizzando le dimensioni degli annunci per ciascun dispositivo utilizzando una larghezza dell'annuncio da te specificata.
Gli annunci banner adattivi ancorati sono annunci con proporzioni fisse anziché i normali annunci a dimensione fissa. Le proporzioni sono simili a quelle dello standard di settore 320 x 50. Una volta specificata la larghezza massima disponibile, ti verrà restituito un annuncio con l'altezza ottimale per quella larghezza. L'altezza ottimale non cambia tra le richieste dello stesso dispositivo e le visualizzazioni circostanti non devono cambiare quando l'annuncio viene aggiornato.
Prerequisiti
- Completa la Guida introduttiva.
Effettua sempre test con annunci di prova
Quando crei e testi le tue app, assicurati di utilizzare annunci di prova anziché annunci di produzione pubblicati. In caso contrario, l'account verrà sospeso.
Il modo più semplice per caricare annunci di prova è utilizzare il nostro ID unità pubblicitaria di prova dedicato per i banner Android:
ca-app-pub-3940256099942544/9214589741
È stato appositamente configurato per restituire annunci di prova per ogni richiesta e puoi utilizzarlo nelle tue app durante la programmazione, i test e il debug. Assicurati solo di sostituirlo con il tuo ID unità pubblicitaria prima di pubblicare l'app.
Per ulteriori informazioni sul funzionamento degli annunci di prova dell'SDK Mobile Ads, consulta la pagina Annunci di prova.
Aggiungi AdView al layout
Il primo passaggio per visualizzare un banner è posizionare AdView
nel layout per Activity
o Fragment
in cui vuoi visualizzarlo
.
Java
private AdSize getAdSize() {
// Determine the screen width (less decorations) to use for the ad width.
Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
display.getMetrics(outMetrics);
float density = outMetrics.density;
float adWidthPixels = adContainerView.getWidth();
// If the ad hasn't been laid out, default to the full screen width.
if (adWidthPixels == 0) {
adWidthPixels = outMetrics.widthPixels;
}
int adWidth = (int) (adWidthPixels / density);
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}
private void loadBanner() {
// Create a new ad view.
AdView adView = new AdView(this);
adView.setAdSizes(getAdSize());
adView.setAdUnitId("ca-app-pub-3940256099942544/9214589741");
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
// Start loading the ad in the background.
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
Kotlin
// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
private val adSize: AdSize
get() {
val display = windowManager.defaultDisplay
val outMetrics = DisplayMetrics()
display.getMetrics(outMetrics)
val density = outMetrics.density
var adWidthPixels = binding.adViewContainer.width.toFloat()
if (adWidthPixels == 0f) {
adWidthPixels = outMetrics.widthPixels.toFloat()
}
val adWidth = (adWidthPixels / density).toInt()
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
}
private fun loadBanner() {
// Create a new ad view.
val adView = AdView(this)
adView.adSizes = adSize
adView.adUnitId = "ca-app-pub-3940256099942544/9214589741"
// Create an ad request.
val adRequest = AdRequest.Builder().build()
// Start loading the ad in the background.
adView.loadAd(adRequest)
}
Carica un annuncio
Una volta impostato l' AdView , il passaggio successivo consiste
nel caricare un annuncio. Puoi farlo usando il metodo loadAd()
nella classe AdView
. Occorre un parametro AdRequest
contenente informazioni sul tempo di esecuzione, ad esempio informazioni sul targeting, per
una singola richiesta di annuncio.
Ecco un esempio che mostra come caricare un annuncio nel metodo onCreate()
di un
Activity
:
Java
private void loadBanner() {
// Create a new ad view.
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT);
adView.setAdSize(getAdSize());
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
// Start loading the ad in the background.
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
Kotlin
private fun loadBanner() {
// This is an ad unit ID for a test ad. Replace with your own banner ad unit ID.
adView.adUnitId = "/6499/example/banner"
adView.setAdSize(adSize)
// Create an ad request.
val adRequest = AdRequest.Builder().build()
// Start loading the ad in the background.
adView.loadAd(adRequest)
}
Se l'annuncio non viene caricato, non è necessario richiederne un altro purché hai configurato l'unità pubblicitaria per l'aggiornamento; l'SDK Google Mobile Ads rispetterà qualsiasi frequenza di aggiornamento specificata nell' AdMob interfaccia web. Se non hai abilitato l'aggiornamento, dovrai inviare una nuova richiesta.
È tutto. L'app è ora pronta per mostrare annunci banner.
Eventi annuncio
Puoi ascoltare una serie di eventi nel ciclo di vita dell'annuncio, tra cui caricamento, impressione e clic dell'annuncio, nonché eventi di apertura e chiusura degli annunci. Ti consigliamo di impostare il callback prima di caricare il banner.Java
AdView.setAdListener(new AdListener() {
@Override
public void onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
@Override
public void onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
});
Kotlin
AdView.adListener = object: AdListener() {
override fun onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
override fun onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
override fun onAdFailedToLoad(adError : LoadAdError) {
// Code to be executed when an ad request fails.
}
override fun onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
override fun onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
override fun onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
}
Ciascuno dei metodi di cui è possibile eseguire l'override in AdListener
corrisponde a un evento nel ciclo di vita di un annuncio.
Metodi sostituibili | |
---|---|
onAdClicked() |
Il metodo onAdClicked() viene richiamato quando viene registrato un clic per un annuncio.
|
onAdClosed() |
Il metodo onAdClosed() viene richiamato quando un utente torna all'app dopo aver visualizzato l'URL di destinazione di un annuncio. L'app può utilizzarla per riprendere le attività sospese o
eseguire qualsiasi altro lavoro necessario per prepararsi all'interazione.
Fai riferimento all'esempio
di AdListener AdMob per un'implementazione dei metodi
di listener di annunci nell'app Android API Demo.
|
onAdFailedToLoad() |
Il metodo onAdFailedToLoad() è l'unico che include un parametro. Il parametro di errore di tipo LoadAdError descrive quale errore si è verificato. Per ulteriori informazioni,
consulta la documentazione relativa al debug degli errori
di caricamento degli annunci.
|
onAdImpression() |
Il metodo onAdImpression() viene richiamato quando viene registrata un'impressione per un annuncio.
|
onAdLoaded() |
Il metodo onAdLoaded() viene eseguito al termine del caricamento di un annuncio. Se vuoi ritardare l'aggiunta dell'elemento AdView all'attività o al frammento fino a quando non hai la certezza che un annuncio verrà caricato, ad esempio, puoi farlo qui.
|
onAdOpened() |
Il metodo onAdOpened() viene richiamato quando un annuncio apre un overlay che copre lo schermo.
|
Accelerazione hardware per annunci video
Affinché gli annunci video vengano mostrati correttamente nelle visualizzazioni degli annunci banner, è necessario attivare l'accelerazione hardware.
L'accelerazione hardware è abilitata per impostazione predefinita, ma alcune app potrebbero decidere di disattivarla. Se questo è il caso della tua app, ti consigliamo di attivare l'accelerazione hardware per
le classi Activity
che utilizzano annunci.
Attivazione dell'accelerazione hardware
Se la tua app non funziona correttamente con l'accelerazione hardware attivata a livello globale, puoi controllarla anche per le singole attività. Per attivare o
disattivare l'accelerazione hardware, puoi utilizzare l'attributo android:hardwareAccelerated
per gli elementi
<application>
e
<activity>
nel tuo AndroidManifest.xml
. L'esempio seguente abilita
l'accelerazione hardware per l'intera app, ma la disabilita per un'attività:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
Consulta la Guida all'accelerazione hardware per ulteriori informazioni sulle opzioni a disposizione per controllare l'accelerazione hardware. Tieni presente che le visualizzazioni di singoli annunci non possono essere abilitate per l'accelerazione hardware se l'attività è disattivata, pertanto per l'attività stessa deve essere abilitata l'accelerazione hardware.
Risorse aggiuntive
Esempi su GitHub
Passaggi successivi
Banner comprimibili
Gli annunci banner comprimibili sono annunci banner che vengono inizialmente presentati come overlay più grande, con un pulsante per comprimere l'annuncio in modo da ridurne la dimensione. Valuta la possibilità di utilizzarlo per ottimizzare ulteriormente il tuo rendimento. Per ulteriori dettagli, consulta la sezione sugli annunci banner comprimibili.
Banner adattivi in linea
I banner adattivi in linea sono banner più grandi e più alti rispetto ai banner adattivi ancorati. Sono di altezza variabile e possono essere alti quanto lo schermo del dispositivo. I banner adattivi in linea sono consigliati rispetto agli annunci banner adattivi ancorati per le app che inseriscono annunci banner in contenuti scorrevoli. Per ulteriori dettagli, vedi Banner adattivi in linea.