Google Admob para desarrolladores – Segunda parte

Hace tiempo escribí este artículo donde hablaba como incorporar el sistema de publicidad de Admob a nuestras aplicaciones para monetizarlas de algún modo y ha sido un artículo muy leido. Aqui viene la actualización de dicho artículo con el nuevo SDK de Google para analytics, después de que éste adquiriera Admob.

Lo primero de todo, esto que os voy  a contar es altamente recomendable, ya que como comprobaréis en la imagen a continuación el rendimiento ha aumentado considerablemente.

Antes de cambiar el código tenía habilitado en Admob la opción de mostrar anuncios de Adsense pero No se mostraban y me sucedía una cosa particular, una de mis Aplicaciones con más instalaciones activas mayormente es visitada por gente española y en España, se contratan muy pocos anuncios para móviles, de modo que tenía una ocupación de un 10%, de modo que había muchas solicitudes de anuncios pero no se rellenaban.

Entonces empecé por modificar el código de mis aplicaciones de Trivial y luego el resto y pasó lo siguiente:

Como se puede ver, además del porcentaje de relleno también han subido mucho los clicks, que son peor pagados, pero al final pasa de unos 20 centimos diarios a lo que véis en la imagen anterior.

¿Y como se hace?


Principalmente hay que descargar la nueva librería de Google Admob e importarla como una librería externa, vamos lo de siempre, pero luego hay que hacer los siguientes cambios. Por cierto, si el código no puede retornar un anuncio, se mostrará en su lugar un imageButton que al ser pulsado llevará al Market. MUY IMPORTANTE, hay que compilar por ejemplo para Android 4.0, pero la aplicación puede ser válida para versiones anteriores incluyendo el código siguiente en el manifest.xml <uses-sdk android:minSdkVersion=”7″ /> Siendo la versión la que tenéis ahora.

Fichero AndroidManifest.xml

Incluir la actividad.


<activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|

orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

Actividad con Anuncios
Lo primero implementar el interface com.google.ads.AdListener en la actividad
public class TrivialActivity extends Activity implements com.google.ads.AdListener

Declarar la vista dentro de la clase.

AdView adView
En el método onCreate
adView = (AdView) findViewById(R.id.adView);


adView.setAdListener(this);

ImageButton myButton = (ImageButton) findViewById(R.id.imageButton1);
myButton.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

buyPro();
}
});

Declarar el método buyPro()
private void buyPro() {

Intent myIntent = null;
String surl = "";
surl = "market://search?q=pub:pacosal";
myIntent = new Intent("android.intent.action.VIEW", Uri.parse(surl));
startActivity(myIntent);

}
Implementar los métodos. En el de fallo hacemos visible el ImageButton. El control de admob desaparece solo si no hay anuncio.

public void onReceiveAd(Ad ad) {

Util.logDebug("onReceiveAd");
}

public void onFailedToReceiveAd(Ad ad, AdRequest.ErrorCode error) {
Util.logDebug("onFailedToReceiveAd - errorcode: " + error)
ImageButton myButton = (ImageButton) findViewById(R.id.imageButton1);
myButton.setVisibility(android.view.View.VISIBLE);
}

public void onPresentScreen(Ad ad) {
Util.logDebug("onPresentScreen");

}

public void onDismissScreen(Ad ad) {
Util.logDebug("onDismissScreen");

}

public void onLeaveApplication(Ad ad) {
Util.logDebug("onLeaveApplication");

}

Layout

Por supuesto, hay que incluirlo en la Layout de la actividad.


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

<com.google.ads.AdView android:id="@+id/adView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

ads:adUnitId="numerodeidentificadoranuncio"

ads:adSize="BANNER"

ads:loadAdOnCreate="true"/>

<ImageButton

android:id="@+id/imageButton1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/admob_taskchangerpro"

android:visibility="gone"

/>

</LinearLayout>

Y ya está o se ve un anuncio o otro. Recordar incluir en el xml el identificador de vuestro anuncio que podéis ver en la consola de admob.

Hacedlo en todas vuestras aplicaciones que seguro me lo agradecéis.

3 comentarios

  • Excelente idea!! :)

    Sin embargo yo tengo habilitado AdSense y tengo un fill de más de 98%… ¿?

    Por cierto, en el onReceiveAd, ¿no habría que hacer un
    myButton.setVisibility(android.view.View.GONE); ??

    Gracias y un saludo !! Seguid así!!

  • Buenas, no me entero de como ai que implementarlo en mi aplicación de android, por cierto a mi me banearon la cuenta de adsense por click no validos (cosa que no se por que)

  • Hola!
    Alguien podría decirme si Google permite usar el AdMob cuando también uso mi aplicación para poner publicidad paga de una empresa?
    Muchas gracias!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *