In questo tutorial, imparerai come integrare AdMob in modo che tu possa guadagnare da quella fantastica app Android che hai scritto, dai chi non vuole? AdMob è tra le più grandi piattaforme di pubblicità mobile sul mercato ed è di proprietà di Google.
Esistono diversi modi per monetizzare le tue app su Android: download a pagamento, abbonamenti a pagamento, acquisti in-app e visualizzazione di annunci. Puoi combinarli, ma ti consigliamo di scegliere un singolo modello. In questo tutorial, imparerai come monetizzare la tua app visualizzando gli annunci.
I tipi di annunci che creerai in questo tutorial sono banner, annunci interstiziali e nativi. Spiegherò ognuno di loro e ti mostrerò come implementarli nella tua applicazione. Ma prima, vediamo prima come integrare l'SDK per gli annunci per dispositivi mobili e inizializzarlo.
In Android Studio, crea un nuovo progetto chiamato Attività principale
.
Per iniziare l'integrazione di AdMob con la tua app, devi prima includere l'SDK annunci per dispositivi mobili nel modulo dell'app build.gradle
file:
compila "com.google.android.gms: play-servizi-annunci: 11.0.2"
Se hai intenzione di integrare Firebase nella tua app, dovresti utilizzare l'SDK che fa parte di Firebase:
compila "com.google.firebase: firebase-ads: 11.0.2"
Consulta alcuni dei nostri tutorial di Firebase qui su Envato Tuts + se hai bisogno di aiuto per iniziare con Firebase:
Assicurati di sincronizzare il progetto dopo averlo aggiunto agli SDK in modo da estrarre le librerie da Internet nell'applicazione.
Devi inizializzare l'SDK per annunci per dispositivi mobili prima di poter caricare annunci sulla tua app per Android, quindi fallo il prima possibile. Creiamo una classe che estende il Applicazione
classe, e quindi inizializziamo il MobileAds
SDK in onCreate ()
metodo di quella classe, perché questo metodo viene chiamato una sola volta all'avvio dell'app.
importare com.google.android.gms.ads.MobileAds; importare android.app.Application; l'app di classe pubblica estende l'applicazione @Override public void onCreate () super.onCreate (); MobileAds.initialize (questo, "ca-app-pub-3940256099942544/6300978111");
Il secondo argomento fornito al metodo statico inizializzare()
del MobileAds
class dovrebbe essere l'ID dell'applicazione AdMob che hai ottenuto quando ti sei registrato ad AdMob. In questo caso, utilizziamo l'ID applicazione pubblico fornito da Google per scopi dimostrativi.
Abbiamo bisogno di aggiungere la classe dell'applicazione che abbiamo creato all'attributo del nome del tag dell'applicazione nel nostro AndroidManifest.xml file.
Mentre sei in questo file, assicurati anche di includere il file INTERNET
permesso in modo che gli annunci per dispositivi mobili di Google possano essere pubblicati.
Nel frammento di codice qui sotto, abbiamo aggiunto il AdActivity
a noi AndroidManifest.xmlfile all'interno del tag dell'applicazione.
Questa attività è fornita dall'SDK. È utile negli annunci banner per attivare l'annuncio da visualizzare quando l'utente fa clic sull'annuncio, mentre per un annuncio interstitial viene utilizzato per la visualizzazione dell'annuncio quando l'utente fa clic su di esso.
Gli annunci banner coprono una parte della schermata attualmente visibile. In altre parole, qualsiasi contenuto nella tua app e l'annuncio vengono visualizzati insieme sullo schermo. Ciò migliora l'esperienza dell'utente perché gli utenti possono continuare a utilizzare la tua app mentre l'annuncio viene visualizzato, a differenza di un annuncio interstitial (tieni duro, ci arriveremo a breve). Nota che un banner pubblicitario può essere un testo o un'immagine.
Diamo un'occhiata a come implementare un banner pubblicitario.
AdView
è una consuetudine ViewGroup
che conterrà l'annuncio banner, quindi dobbiamo modificare il nostro activity_banner_ad.xml file di layout per includere questa vista.
Stiamo definendo il AdView
dimensione usando l'attributo annunci: adSize
e impostandolo su BANNER
. Altre alternative disponibili sono LARGE_BANNER
, FULL_BANNER
, SMART_BANNER
, eccetera.
Il annunci: AdUnitId
AdView
l'attributo è impostato su un'unità pubblicitaria di esempio fornita da Google. Dovrai aggiornarlo con un'unità pubblicitaria associata al tuo account se vuoi davvero guadagnare dai tuoi annunci!
L'ID dell'unità pubblicitaria identifica un posizionamento dell'annuncio e puoi trovarlo nella console di amministrazione AdMob. Questo ID comunicherà ad AdMob il tipo di annuncio da visualizzare sulla tua app e anche il formato di visualizzazione (immagine, testo o video).
Per farci finalmente vedere la pubblicità, dobbiamo fare una richiesta e mostrarla nella AdView
abbiamo creato sopra nel BannerAdActivity
classe.
import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdView; importare android.os.Bundle; import android.support.v7.app.AppCompatActivity; public class BannerAdActivity estende AppCompatActivity AdView privato mAdView; @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); mAdView = (AdView) findViewById (R.id.adView); AdRequest adRequest = new AdRequest.Builder () .addTestDevice (AdRequest.DEVICE_ID_EMULATOR) .build (); mAdView.loadAd (adRequest);
Abbiamo inoltrato una richiesta di annuncio creando un'istanza di AdRequest utilizzando il builder. Quindi abbiamo usato il metodo addTestDevice ()
, passare un id del dispositivo come argomento per ricevere annunci di prova sul dispositivo, che nel nostro caso è l'emulatore. Alla fine abbiamo chiamato il AdView
metodo loadAd ()
che prende in questo AdRequest
istanza e quindi carica l'annuncio su un thread in background (in modo da non bloccare l'interfaccia utente / thread principale).
A questo punto, possiamo eseguire il nostro progetto e vedere il risultato.
Dallo screenshot qui sopra, possiamo vedere che il nostro banner pubblicitario di prova viene visualizzato sotto la vista. Ora interagisci con l'annuncio facendo clic su di esso.
Analizziamo ora gli eventi o i callback che possiamo osservare in un annuncio. Questi sono gli eventi disponibili:
onAdLoaded ()
: questo metodo viene attivato quando l'annuncio viene recuperato. onAdOpened ()
: questo metodo viene richiamato quando l'annuncio è aperto. onAdClosed ()
: questo metodo viene attivato quando l'annuncio viene chiuso.onAdLeftApplication ()
: questo metodo viene richiamato quando l'utente ha lasciato l'applicazione.onAdFailedToLoad (int errorCode)
: questo viene generato quando una richiesta per l'annuncio fallisce. Il codice può essere uno di ERROR_CODE_NETWORK_ERROR
, ERROR_CODE_INVALID_REQUEST
, ERROR_CODE_NO_FILL
, o ERROR_CODE_INTERNAL_ERROR
.// ... @Override protected void onCreate (Bundle savedInstanceState) // ... mAdView.setAdListener (new AdListener () @Override public void onAdLoaded () super.onAdLoaded (); Toast.makeText (MainActivity.this, "onAdLoaded ( ) ", Toast.LENGTH_SHORT) .show (); @Override public void onAdOpened () super.onAdOpened (); Toast.makeText (MainActivity.this," onAdOpened () ", Toast.LENGTH_SHORT) .show (); @Override public void onAdClosed () super.onAdClosed (); Toast.makeText (MainActivity.this, "onAdClosed ()", Toast.LENGTH_SHORT) .show (); @Override public void onAdFailedToLoad (int i) super .onAdFailedToLoad (i); Toast.makeText (MainActivity.this, "onAdFailedToLoad ()", Toast.LENGTH_SHORT) .show (); @Override public void onAdLeftApplication () super.onAdLeftApplication (); Toast.makeText (MainActivity. questo, "onAdLeLeApplication ()", Toast.LENGTH_SHORT) .show ();); @Override public void onPause () // Questo metodo dovrebbe essere chiamato nel metodo onPause () dell'attività parent. if (mAdView! = null) mAdView.pause (); super.onPause (); @Override public void onResume () super.onResume (); // Questo metodo dovrebbe essere chiamato nel metodo onResume () dell'attività padre. if (mAdView! = null) mAdView.resume (); @Override public void onDestroy () // Questo metodo dovrebbe essere chiamato nel metodo onDestroy () di Activity padre. if (mAdView! = null) mAdView.destroy (); super.onDestroy ();
Dopo aver aggiunto il listener, esegui di nuovo il progetto e interagisci con l'annuncio. Osserva gli eventi invocati guardando i toast che abbiamo creato.
Abbiamo visto quanto sia facile visualizzare un banner pubblicitario. Ora vediamo come creare annunci interstitial.
Gli annunci interstiziali sono annunci che coprono l'intero schermo della tua applicazione, senza lasciare spazio per altre visualizzazioni della tua app da mostrare (come vedremo tra poco). Poiché questo occupa l'intero schermo e richiede anche un po 'di tempo per caricarsi se la rete è lenta, è necessario fare attenzione a non irritare gli utenti. Quindi idealmente questi annunci interstiziali dovrebbero essere mostrati durante le pause naturali nella tua app, ad es. tra i livelli di un gioco e non quando gli utenti si trovano nel mezzo di qualche altra attività.
import com.google.android.gms.ads.AdListener; import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.InterstitialAd; importare android.os.Bundle; import android.support.v7.app.AppCompatActivity; importare android.widget.Toast; la classe pubblica InterstitialAdActivity estende AppCompatActivity mInterstitialAd interstitialAd privato; @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); loadInterstitialAd (); private void loadInterstitialAd () mInterstitialAd = new InterstitialAd (this); mInterstitialAd.setAdUnitId ( "ca-app-pub-3940256099942544/1033173712"); mInterstitialAd.setAdListener (new AdListener () @Override public void onAdLoaded () super.onAdLoaded (); Toast.makeText (MainActivity.this, "onAdLoaded ()", Toast.LENGTH_SHORT) .show (); if (mInterstitialAd. isLoaded ()) mInterstitialAd.show (); @Override public void onAdFailedToLoad (int i) super.onAdFailedToLoad (i); Toast.makeText (MainActivity.this, "onAdFailedToLoad ()", Toast.LENGTH_SHORT) .show ();); AdRequest adRequest = new AdRequest.Builder (). Build (); mInterstitialAd.loadAd (adRequest);
Nel codice sopra, abbiamo dichiarato e inizializzato un'istanza della classe InterstitialAd
nel InterstitialAdActivity
classe. Impostiamo l'ID unità add passando quello fornito da Google come unico argomento nel metodo setAdUnitId ()
.
Proprio come quello che abbiamo fatto per l'annuncio banner, vogliamo ascoltare gli eventi sull'annuncio, quindi impostiamo un listener per attivare i metodi sovraccaricati onAdLoaded ()
e onAdFailedToLoad (int i)
. Facciamo una richiesta di annuncio creando un'istanza di AdRequest
classe usando il suo builder e poi chiama il metodo loadAd ()
, passare questa richiesta come argomento al metodo. Usiamo il metodo IsLoaded ()
per determinare quando l'annuncio è stato caricato e quindi chiamare il metodo mostrare()
per visualizzarlo finalmente.
Puoi anche aggiungere un AdListener
proprio come abbiamo fatto per il banner pubblicitario.
A questo punto ora possiamo eseguire l'app e vedere il risultato.
Nello screenshot in alto, puoi vedere che il nostro annuncio interstitial di prova ora sta mostrando.
Native Ads Express offre all'editore la possibilità di personalizzare l'aspetto degli annunci in modo che possano adattarsi naturalmente alla tua app. Questa personalizzazione viene eseguita definendo i modelli CSS in cui definisci i tuoi caratteri, colori, dimensioni, ecc. Dal tuo account AdMob. Tuttavia, non è possibile modificare le immagini, le descrizioni e i titoli, che sono impostati dagli inserzionisti.
Gli annunci personalizzati possono essere visualizzati nella tua app in a NativeExpressAdView
.
NativeExpressAdView
nel tuo layoutDi seguito, includiamo il NativeExpressAdView
, il quale è un ViewGroup
, nel nostro file di layout. Definiamo anche il Android: layout_height
e Android: layout_width
essere wrap_content
. Il annunci: adSize
sarà "320x300"
, e utilizzeremo l'ID dell'unità pubblicitaria NativeExpress fornita da Google (solo a scopo dimostrativo).
Successivamente, costruiamo il nostro AdRequest
e quindi iniziare a caricare l'annuncio da visualizzare. Aggiungiamo anche il codice per rispondere ai callback del ciclo di vita di Activity. Puoi anche aggiungere un AdListener
se vuoi, proprio come abbiamo fatto per il banner pubblicitario.
import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.NativeExpressAdView; importare android.os.Bundle; import android.support.v7.app.AppCompatActivity; public class NativeExpressAdActivity estende AppCompatActivity NativeExpressAdView mNativeExpressAdView; @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_native_ad); mNativeExpressAdView = (NativeExpressAdView) findViewById (R.id.adView); AdRequest.Builder adRequestBuilder = new AdRequest.Builder (); adRequestBuilder.addTestDevice (AdRequest.DEVICE_ID_EMULATOR); mNativeExpressAdView.loadAd (adRequestBuilder.build ()); @Override public void onResume () super.onResume (); mNativeExpressAdView.resume (); @Override public void onPause () mNativeExpressAdView.pause (); super.onPause (); @Override public void onDestroy () mNativeExpressAdView.destroy (); super.onDestroy ();
Questo è tutto! Ora puoi eseguire l'app e vedere il tuo annuncio nativo Express in azione.
Ora che abbiamo imparato a conoscere i diversi tipi di annunci, puoi procedere e integrarli nella tua applicazione. Per iniziare a mostrare annunci reali e fare soldi, avrai bisogno di un account AdMob, con ID unità pubblicitarie reali collegati agli annunci reali degli inserzionisti. Visita il sito Web di AdMob per registrarti!
In questo tutorial, hai appreso di AdMob e come integrare diversi formati di annunci AdMob come banner, interstitial e annunci nativi espressi su Android.
Per ulteriori informazioni su AdMob su Android, fare riferimento alla documentazione ufficiale. E nel frattempo, dai uno sguardo ad alcuni dei nostri altri corsi e tutorial sullo sviluppo di app per Android!