Comprobar si estan deshabilitados los anuncios desde tu App

Este es un asunto un tanto espinoso de tratar y hay que intentar verlo desde dos puntos de vista. El usuario de la aplicación y el desarrollador de la Aplicación.

Por una parte, todos queremos aplicaciones gratuitas, pero el trabajo del desarrollador hay que pagarlo y animarle a que siga mejorando sus aplicaciones, de modo que para conseguir algún retorno económico debe incluir anuncios en su aplicación o bien hacerla de pago.

Una regla importante para los desarrolladores y los usuarios es que los anuncios no deberían ser intrusivos ni afectar a la usabilidad de la aplicación. Por otra parte los desarrolladores agradecen que de cuando en cuando se acceda a algún anuncio con el fin de obtener dicho beneficio, el que paga es la red de anuncios y nada el usuario.

Desde hace mucho tiempo hay aplicaciones en el Market que eliminan los anuncios modificando el fichero /etc/hosts del dispositivo incluyendo entradas a numerosas redes de anuncios para que el sistema vaya a buscarlos al propio dispositivo (1270.0.1).

Además, muchas Roms precocinadas ya vienen con dicho archivo modificado, de modo que muchos usuarios NO ven anuncios y ni se dan cuenta de ello.

Es evidente que si todos los usuarios bloquearan los anuncios, el porcentaje de aplicaciones gratuitas disminuiría, de modo que tenemos que poner todos de nuestra parte.

Este es un artículo destinado a los desarrolladores y se debaten las mejores formas de evitar que nuestra aplicación se vea perjudicada por los bloqueadores de anuncios.

Ver si el dispositivo donde se ejecuta la aplicación es muy sencillo:

try {
    if (InetAddress.getByName("a.admob.com").getHostAddress().equals("127.0.0.1") ||
        InetAddress.getByName("mm.admob.com").getHostAddress().equals("127.0.0.1") ||
        InetAddress.getByName("p.admob.com").getHostAddress().equals("127.0.0.1") ||
        InetAddress.getByName("r.admob.com").getHostAddress().equals("127.0.0.1")) {
        //Naughty Boy - Punishing code goes here.
        // In my case its a dialog which goes to the pay-for version
        // of my application in the market once the dialog is closed.
    }
} catch (UnknownHostException e) { } //no internet

o bien:

        BufferedReader in = null;
    try
    {
        in = new BufferedReader(new InputStreamReader(
                new FileInputStream("/etc/hosts")));
        String line;
        while ((line = in.readLine()) != null)
        {
            if (line.contains("admob"))
            {
                result = false;
                break;
            }
        }
    }

[ad code=1 align=center]

De modo que ya podemos saber si está modificado, y en ese caso ¿Que hacemos?

– La solución más drástica es mostrar un mensaje al usuario y No permitirle su uso, enviándole al Market por la versión de pago.

– Otra solución es mostrar anuncios propios en el espacio correspondiente, lo que al menos nos proporcionará otro tipo de satisfacción, aunque NO económica.

– Otra es mostrar un mensaje moral sobre “lo que está bien y está mal” y dejarle continuar

– La última es NO hacer nada.

¿Cuál es vuestra opinión sobre el tema?

3 comentarios

  • Gracias por la ayuda, y a ver si la gente se entera que los que programamos app gratuitas solo este medio de ingresos/motivación para seguir programando.

  • Android Developer

    Y ya no solo es que no paguen sino que encima critican a unos niveles insospechados las apps gratuitas, un poco de consideración por dios.

  • Otra vez la escusa de que de algo tienen que vivir si quieren dinero pues cobren por su aplicacion y jodan no jodan al usuario, claro que no la cobran porque entonces tendrian que hacer una app de calidad y dar soporte que no estan dispuestos a dar, afortunadamente hay apps muy buenas sin publicidad y gratuitas, almenos mis conocidos y yo si dice contiene anuncios no descargamos la app, si es una app que sea muy necesaria se busca la version sin anuncios aunque se tenga que pagar.

Deja un comentario

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