Integrare AdMob nelle applicazioni Android

di  Antonio Coschignano, martedì 22 giugno 2010
AdMob è la più grande società mondiale per l'advertising mobile - ultimamante acquistata da Google - che è disponibile sia per il Web Mobile che per applicazioni sviluppate per i dispositivi mobili (Android, IPhone e altre piattaforme emergenti). L'integrazione del codice per il Web Mobile non è un'operazione complicata in quanto basta copiare ed incollare direttamente il codice javascript che AdMob fornisce per un particolare annuncio pubblicitario. L'operazione invece diventa un po più complessa quando dobbiamo integrare gli annunci pubblicitari nelle applicazioni mobile. Infatti AdMob fornisce una libreria di classi per l'integrazione degli annunci per le differenti piattaforme mobili come Android, IPhone, IPad etc.. In questa guida vedremo come integrare questi annunci nelle applicazioni Android effettuando la configurazione tramite l'Eclipse ADT e l'implementazione del codice all'interno dell'Activity.

Registrarsi su AdMob

Per effettuare la registrazione su AdMob andare su http://it.admob.com/register/. Una volta che ci siamo registrati ed eseguito il login bisogna accedere al Marketplace nel menu in alto e selezionare la voce Siti e Applicazioni. L'interfaccia è riepilogata in questa immagine, dove le frecce rosse indicano le opzioni che ci interessano.

Admob Panel

Adesso bisogna selezionare Aggiungi sito/applicazione e verrà visualizzata la pagina dove specificare la piattaforma di sviluppo in cui vogliamo integrare gli annunci pubblicitari:

Pannello di AdMob per selezionare la piattaforma

Una volta selezionato Android, comparira in fondo alla pagina questo modulo (i campi in grassetto sono obbligatori):

Pannello di AdMob per registrare l'applicazione

A questo punto - una volta compilato il modulo - cliccando su Continua abbiamo accesso al download dell'Android AdMob SDK e ci verrà rilasciato il Codice Editore che ci servirà tra poco nell'applicazione.

AdMob SDK per Android

Adesso bisogna importare la libreria che abbiamo scaricato nel progetto dell'applicazione Android. Se stiamo lavorando con l'ADT di Eclipse, bisogna fare tasto destro sul progetto e selezionare Properties. A questo punto dal menu a sinistra selezionare la voce Java Build Path. Poi cliccare su Ad External Jars e importare il file admob-sdk-android.jar contenuto nella cartella che abbiamo scaricato.

L'integrazione dell'annuncio prevede la modifica dell'AndroidManifest.xml, dove dobbiamo aggiungere una permission che riguarda l'utilizzo di Internet da parte dell'applicazione poichè deve reperire l'immagine dell'annuncio, e bisogna specificare il Codice Editore che abbiamo ottenuto nella registrazione dell'applicazione su AdMob:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
  <application ... >
    <activity ... >
      ...
    </activity>
    <!-- Codice (ID) Editore -->
    <meta-data android:value="xxxxxxxxxx"
               android:name="ADMOB_PUBLISHER_ID" />
  </application>
  ...
  <!-- Permission -->
  <uses-permission android:name="android.permission.INTERNET">
  </uses-permission>
</manifest>
Fare attenzione ad inserire questi campi nella giusta posizione della struttura XML. Quindi per riepilogare il Codice Editore va inserito all'interno dell'elemento application, mentre la permission all'interno di manifest. La stringa xxxxxxxx rappresenta il codice (o ID) editore che è possibile reperirlo - come abbiamo visto - durante la fase di registrazione dell'applicazione, oppure bisogna selezionare l'applicazione che abbiamo registrato e andare su impostazioni, dove sotto al nome verrà visualizzato l'ID editore.

AdView

La libreria di AdMob implementa delle TextView customizzate (AdView) per visulizzare gli annunci pubblicitari. Quindi, una volta impostato l'AndroidManifest.xml, dobbiamo inserire l'elemento grafico nell'Activity. Possiamo farlo direttamente da codice:
import com.admob.android.ads.AdView;
...
LinearLayout layout = (LinearLayout)findViewById(R.id.LinearLayoutAdMob);
AdView adView = new AdView(this);
adView.setVisibility(AdView.VISIBLE);
layout.addView(adView);
...
Oppure da XML, inserendo questo tag nel punto in cui vogliamo visualizzare l'annuncio nella GUI dell'applicazione:
<com.admob.android.ads.AdView
           android:id="@+id/ad"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           myapp:backgroundColor="#000000"
           myapp:primaryTextColor="#FFFFFF"
           myapp:secondaryTextColor="#CCCCCC"
  />
Per testare le nostre applicazioni, per verificare che tutto funzioni correttamente senza generare impressioni non valide, basta aggiungere questo frammento di codice nell'Activity dell'applicazione:
import com.admob.android.ads.AdManager;
...
AdManager.setTestDevices( new String[] {
	AdManager.TEST_EMULATOR,             // Android emulator
    "E83D20734F72FB3108F104ABC0FFC738",  // ID dell'emulatore T-Mobile G1 Test Phone
});
...
Può capitare che gli annunci non vengono visualizzati. Potrebbe dipendere dal fatto che AdMob o non abbia trovato nessun annuncio corrispondente all'applicazione oppure non abbiamo configurato bene i parametri. Per approfondire l'argomento e risolvere eventuali problemi vi invito a consultare l'AdMob Android for Developers dove è disponibile tutta la documentazione.

Aggiornamento Gennaio 2011

Nella metà del mese di gennaio del 2011 AdMob ha rilasciato una nuova libreria. Infatti nella dashboard di Admob sotto il nome dell'applicazione compare in rosso il messaggio code update available. Se cliccate su update potete scricare la nuova libreria. Tutto quello che abbiamo visto in questa guida rimane valido. Bisogna solo aggiungere nel file AndroidManifest.xml oltre all'id che abbiamo visto anche le seguenti dichiarazioni :
<activity android:name="com.admob.android.ads.AdMobActivity"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:configChanges="orientation|keyboard|keyboardHidden" />
    <!-- Track Market installs -->
    <receiver android:name="com.admob.android.ads.analytics.InstallReceiver"
      android:exported="true">
       <intent-filter>
         <action android:name="com.android.vending.INSTALL_REFERRER" />
       </intent-filter>
   </receiver>
Con questa nuova libreria, se non aggiungete queste dichiarazioni nel manifest dell'applicazione i banner non verranno visualizzati.
Altri link che potrebbero interessarti
  • » Struttura di un'applicazione Android
  • » Screenshot su un dispositivo Android
  • » Pubblicare applicazioni nell'Android Market
  • » Integrare Google Analytics nelle applicazioni Android
  • » Guida all'installazione dell'Android SDK
  • » Guida agli Adapter e le ListView in Android
  • » Gestire Thread e GUI nelle applicazioni Android
  • » Applicazioni Android ed il supporto multilingue
  • » Android VideoView e le Youtube Api
  • » Android Linkify e i collegamenti testuali
  • » Android HTML TextView
  • » Android e tecniche multithreading
  • » Android e la gestione dei sensori
  • » Android e l'interfaccia Parcelable

  • Lascia un commento

    Nome :
    E-mail :
    Commento :

    Tutti i commenti inseriti devono essere approvati da un amministratore prima di essere visualizzati al pubblico. Si tratta di una misura preventiva contro spam e pubblicità e non è necessario reinviare il commento. Si prega di scrivere commenti in tema. Spam e messaggi promozionali non vengono approvati.