Publicado por : Ignacio Cisneros lunes, 30 de abril de 2012
COMPARTE →

Admob SDK + PhoneGap + Eclipse

Hace unas semanas que Admob no permite realizar la integración de sus anuncios en sitios móviles, para esto hay que utilizar la plataforma de anuncios web AdSense. El problema es que AdSense no permite integrar sus anuncios en aplicaciones nativas, aunque estas funcionen mediante una WebView, como es el caso de las aplicaciones PhoneGap / Cordova.

Si no utilizas PhoneGap/Cordova puedes leer la guía de instalación oficial de Admob.

La solución:

La única solución posible es integrar los anuncios de forma nativa con la SDK de Admob. Es un proceso algo más complejo que la integración mediante JavaScript y a penas hay documentación sobre la integración con una aplicación desarrollada con PhoneGap/Cordova, así que voy a explicar cómo hay que realizar esta integración:

PASO 1: Requisitos

1.1 - Descargar al última versión de Admob SDK, descomprimelo y copiar el fichero GoogleAdMobAdsSdk-X.X.X.jar en la carpeta /libs/ de tu proyecto

1.2 - Averigua tu ID de aplicación de Admob:


PASO 2: Instalación de librería

Añadir la librería al proyecto, para esto: click derecho sobre el proyecto > propiedades

Ahora pulsa sobre Add JARs y selecciona el fichero GoogleAdMobAdsSdk-X.X.X.jar de la carpeta /libs/ de tu proyecto


PASO 4: Declaración

Declara la actividad de Admob en el fichero AndroidManifest.xml de tu proyecto, para esto, pega estas líneas justo encima de la etiqueta </application>
<activity android:name="com.google.ads.AdActivity"
              android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

PASO 5: Permisos

En el mismo fichero, añade los permisos necesarios para comprobar el estado de la conexión y para realizar conexiones a Internet, tendrás que añadir estas dos líneas justo antes de </manifest>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

PASO 6: Integración Java

Vamos a incluir la vista de Admob en la aplicación, tendrás que ir a la carpeta /src/ y buscar el fichero NOMBREAPPActivity.java y abrirlo:

6.1 - Importa las clases. 
Debajo de:
import com.phonegap.*;
import android.os.Bundle;
pega estas tres líneas:
//ADMOB - Importar clases
import android.widget.LinearLayout;
import com.google.ads.*; 
6.2 - Crear variables. 
Debajo de:
public class AltimetroActivity extends DroidGap {
pega estas tres líneas (recuerda sustituir tu ID de aplicación de Admob):

// ADMOB - Declaración de variables
private static final String MY_AD_UNIT_ID = "TU_ID_DE_APP_DE_ADMOB";
private AdView adView; 
6.3 - Mostrar anuncio. 
Debajo de:
super.loadUrl("file:///android_asset/www/index.html");
pega estas líneas:
//ADMOB - Creación de vista de anuncio
adView = new AdView(this, AdSize.BANNER, MY_AD_UNIT_ID);
LinearLayout layout = super.root;
layout.addView(adView);
adView.loadAd(new AdRequest()); 

Conclusión :

Con estos sencillos pasos podrás mostrar tus anuncios de Admob de forma nativa en tus aplicaciones. El único problema que he detectado, es que la mayoría de anuncios nativos se activan con dos clicks, es decir, sólo te pagarán después de que el usuario haga click en el anuncio y confirme que quiere verlo.


{ 13 comentarios... read them below or Comment }

  1. Google traduce: Tu ejemplo es bueno, muchas gracias. ¿Tiene usted una idea de cómo poner la anuncio de AdMob en un listview?

    Ejemplo: < ul >< li >AdMob anuncio< /li >< li....

    ResponderEliminar
  2. @JD Nunca he tenido que poner un anuncio en un list view, la verdad es que no tengo muy claro como hacerlo, pero tendrías que empezar creando esa vista en Java para poder mostrar el anuncio cuando se active el list view.

    Un saludo.

    ResponderEliminar
  3. Muchas gracias por tu respuesta

    ResponderEliminar
  4. Para quien quiera probar primero con anuncios en modo test activado (que puedes clickear sin problemas)... en principio esto funciona...

    En lugar de... (en el apartado 6.3 de esta entrada del blog)
    ================================
    adView.loadAd(new AdRequest());
    ================================

    Usar esto...
    ================================
    AdRequest re = new AdRequest();
    re.setTesting(true); //anuncios con "modo test activado"
    re.setGender(AdRequest.Gender.FEMALE); //orientados a mujeres
    adview.loadAd(re);
    ================================

    ResponderEliminar
  5. @Anonimo muchas gracias, es muy útil.

    ResponderEliminar
  6. Hola. tengo una app creada en android 2.2 y el manifest me sale con fallo
    error: Error: String types not allowed (at 'configChanges' with value 'keyboard|keyboardHidden|orientation|
    screenLayout|uiMode|screenSize|smallestScreenSize').
    como puedo solucionar esto?

    ResponderEliminar
  7. Podeis consultar estas dudas en www.betamoviles.com

    ResponderEliminar
  8. Puedes explicar un poco que es eso de anuncios orientados a mujeres? significa que orientados a mujeres se gana más dinero con admob porque las mujeres pinchan más?

    ResponderEliminar
  9. Hola, yo tengo una pequeña duda. El dia 22 de mayo publique en el market mi primera app con AdMob y desde entonces hasta ahora he ganado 913$. Mi pregunta es, que tengo que hacer para cobrarlo? Como obtengo mi dinero?

    ResponderEliminar
  10. Admob te paga directamente a la cuenta que tengas establecida en tus preferencias PayPal/Transferencia. Pero ten en cuenta que lo que ganes durante el mes de junio te lo pagarán sobre el 15 de agosto.

    ResponderEliminar
  11. y si los anuncios los quiero poner arriba de la app o enlos dos arriba y abajo que codigo pongo?

    ResponderEliminar
  12. Excelente Post...MUCHAS GRACIAS!!!!

    ResponderEliminar
  13. grandeeeeeeeeee eeeeeeee aupa hiii!!!

    FUNCIONA SUBLIMEEEEE

    ResponderEliminar

Con la tecnología de Blogger.

- Copyright © Todos contra Google - El blog de Ignacio Cisneros - icisneros - Original design by Johanes Djogan modified by Ignacio Cisneros-