Gli annunci banner occupano uno spazio all'interno del layout di un'app, nella parte superiore o inferiore dello schermo del dispositivo. Rimangono sullo schermo mentre gli utenti interagiscono con l'app e possono aggiornarsi automaticamente dopo un determinato periodo di tempo. Se non hai mai utilizzato la pubblicità per il mobile, sei un buon punto di partenza. Case study.
Questa guida illustra come integrare gli annunci bannerAdMob in un'app per Android. Oltre agli snippet di codice e alle istruzioni, include informazioni sul dimensionamento corretto dei banner e sui link a risorse aggiuntive.
Prerequisiti
- Importa l'SDK Google Mobile Ads da solo o come parte di Firebase.
Aggiungi AdView al layout
Il primo passaggio verso la visualizzazione di un banner consiste nel posizionare
AdView
nel layout della Activity
o del Fragment
in cui vuoi
visualizzarlo. Il modo più semplice per farlo è aggiungere uno al file di layout XML corrispondente. Ecco un esempio che mostra un'attività:AdView
# main_activity.xml ... <com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto" android:id="@+id/adView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" ads:adSize="BANNER" ads:adUnitId="ca-app-pub-3940256099942544/6300978111"> </com.google.android.gms.ads.AdView> ...
Tieni presente i seguenti attributi obbligatori:
ads:adSize
: impostala sulle dimensioni degli annunci che vuoi utilizzare. Se non vuoi utilizzare la dimensione standard definita dalla costante, puoi impostare una dimensione personalizzata. Per informazioni dettagliate, consulta la sezione Dimensioni banner di seguito.ads:adUnitId
: impostalo sull'identificatore univoco fornito all'unità pubblicitaria nell'app in cui devono essere visualizzati gli annunci. Se pubblichi annunci banner in diverse attività, ciascuno richiede un'unità pubblicitaria.
In alternativa, puoi creare AdView
in modo programmatico:
Java
AdView adView = new AdView(this); adView.setAdSize(AdSize.BANNER); adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111"); // TODO: Add adView to your view hierarchy.
Kotlin
val adView = AdView(this) adView.adSize = AdSize.BANNER adView.adUnitId = "ca-app-pub-3940256099942544/6300978111" // TODO: Add adView to your view hierarchy.
Eseguire sempre i test con gli annunci di prova
Durante la creazione e il test delle tue app, assicurati di utilizzare annunci di prova anziché annunci attivi di produzione. In caso contrario, l'account potrebbe essere sospeso.
Il modo più semplice per caricare gli annunci di prova è utilizzare l'ID dell'unità pubblicitaria di prova dedicata per i banner Android:
ca-app-pub-3940256099942544/6300978111
È stato configurato appositamente per restituire annunci di test per ogni richiesta e puoi utilizzarlo liberamente nelle tue app durante la programmazione, i test e il debug. Devi solo assicurarti di sostituirlo con il tuo ID unità pubblicitaria prima di pubblicare l'app.
Per maggiori informazioni su come funzionano gli annunci di prova dell'SDK Mobile Ads, consulta Testa annunci.
Caricare un annuncio
Una volta AdView eseguito l'inserimento, il passaggio successivo consiste
nel caricare un annuncio. Questo è possibile utilizzando il metodo loadAd()
nella classe AdView
. Richiede un parametro AdRequest
, che contiene informazioni di runtime (come le informazioni di targeting) su una singola richiesta di annuncio.
Di seguito è riportato un esempio che mostra come caricare un annuncio nel metodo onCreate()
di un Activity
:
MainActivity (estrazione)
Java
package ... import ... import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdView; public class MainActivity extends AppCompatActivity { private AdView mAdView; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MobileAds.initialize(this, new OnInitializationCompleteListener() { @Override public void onInitializationComplete(InitializationStatus initializationStatus) { } }); mAdView = findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest); } }
Kotlin
package ... import ... import com.google.android.gms.ads.AdRequest import com.google.android.gms.ads.AdView class MainActivity : AppCompatActivity() { lateinit var mAdView : AdView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) MobileAds.initialize(this) {} mAdView = findViewById(R.id.adView) val adRequest = AdRequest.Builder().build() mAdView.loadAd(adRequest) } }
Ecco fatto. La tua app è ora pronta per mostrare annunci banner.
Eventi annuncio
Per personalizzare ulteriormente il comportamento del tuo annuncio, puoi collegare una serie di eventi nel ciclo di vita dell'annuncio: caricamento, apertura, chiusura e così via. Puoi saperne di più su questi eventi tramite il corso AdListener
.
Per utilizzare un
AdListener
con
AdView
,
chiama il metodo
setAdListener()
:
Java
mAdView.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
mAdView.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 sostituibili in
AdListener
corrisponde a un evento nel ciclo di vita di un annuncio.
Metodi in cui è possibile eseguire l'override | |
---|---|
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ò usarla per riprendere le attività sospese o eseguire altre operazioni necessarie per prepararsi all'interazione.
Fai riferimento all'
esempio di
AdListener di AdMob per un'implementazione dei metodi dell'ascoltatore 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 sul debug degli errori di caricamento dell'annuncio.
|
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 di AdView alla tua attività o al tuo frammento fino a quando non avrai la certezza che un annuncio verrà caricato, ad esempio qui puoi farlo.
|
onAdOpened()
|
Il metodo onAdOpened()
viene richiamato quando un annuncio apre un overlay che copre lo schermo.
|
Dimensioni dei banner
Nella tabella seguente sono elencate le dimensioni standard dei banner.
Dimensioni in dp (LxA) | Descrizione | Disponibilità | costante di dimensioni degli annunci |
---|---|---|---|
320 x 50 | Banner | Telefoni e tablet | BANNER |
320 x 100 | Banner grande | Telefoni e tablet | LARGE_BANNER |
300 x 250 | Rettangolo medio IAB | Telefoni e tablet | MEDIUM_RECTANGLE |
468 x 60 | Banner IAB a grandezza originale | Tablet | FULL_BANNER |
728 x 90 | Classifica IAB | Tablet | LEADERBOARD |
Larghezza fornita x Altezza adattiva | Banner adattivo | Telefoni e tablet | N/D |
Larghezza schermo x 32|50|90 | Banner intelligente | Telefoni e tablet | SMART_BANNER |
Scopri di più sui banner adattivi, destinati a sostituire i banner intelligenti. |
Per definire una dimensione banner personalizzata, imposta la dimensione desiderata AdSize
, come mostrato di seguito:
Java
AdSize adSize = new AdSize(300, 50);
Kotlin
val adSize = AdSize(300, 50)
Accelerazione hardware per gli annunci video
Per mostrare gli annunci video nelle visualizzazioni di annunci banner, devi attivare l'accelerazione hardware.
L'accelerazione hardware è abilitata per impostazione predefinita, ma alcune app potrebbero decidere di disattivarla. Se questo è il tuo caso, ti consigliamo di attivare l'accelerazione hardware per le classi di attività che utilizzano gli annunci.
Attivazione dell'accelerazione hardware
Se la tua app non si comporta correttamente con l'accelerazione hardware attivata a livello globale, puoi controllarla per le singole attività. Per attivare o disattivare l'accelerazione hardware, puoi utilizzare l'attributo android:hardwareAccelerated
per gli elementi <application>
e <activity>
in AndroidManifest.xml
. L'esempio seguente consente 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 HW per saperne di più sulle opzioni per il controllo dell'accelerazione hardware. Tieni presente che non è possibile attivare le visualizzazioni hardware di singoli annunci per l'accelerazione hardware se l'attività è disattivata, quindi l'attività stessa deve avere l'accelerazione hardware abilitata.
Risorse aggiuntive
Esempi su GitHub
App di esempio Banner RecyclerView: Java