Annunci banner

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

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.

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

  • Esempio di annunci banner: Java | Kotlin

  • Demo delle funzionalità avanzate: Java | Kotlin

  • App di esempio Banner RecyclerView: Java

Tutorial video di Mobile Ads Garage

Casi di successo