Admob y SL4A

Durante un tiempo he estado desarrollando una app para Android usando SL4A y Python. Una vez desarrollada quería probar el tema de meter publicidad a la misma usando Admob.

Con SL4A uso HTML como interfaz gráfica de la aplicación y por tanto tengo que usar javascript para meter la publicidad, como si de una aplicación web se tratase.

El banner se muestra correctamente y lo puedo colocar donde quiera, el problema viene a la hora de pinchar en la publicidad, ya que al ser un webview me abre la publicidad en la propia ventana de la aplicación perdiendo toda la interfaz de la misma y quedandome sin acceso a ella.

Después de varías pruebas y un poco de ingeniería inversa sobre el javascript de Admob he descubierto la solución para que la publicidad se abra en una ventana del navegador y no en la interfaz de mi aplicación.

Primero configuramos Admob para lanzarlo nosotros de manera manual:

var admob_vars = {
 pubid: '2121324214214', // publisher id
 bgcolor: '000000', // background color (hex)
 text: 'FFFFFF', // font-color (hex)
 manual_mode: true,
 test: false// test mode, set to false to receive live ads
};

Después pedimos la publicidad:

var ad = _admob.fetchAd(document.getElementById('admob_ad'));

Y por último redefinimos la función gotourl:

_admob.gotourl = function() {
    var droid = new Android();
    droid.view(arguments[0]);
};

Con el código anterior conseguimos que la acción por defecto a la hora de pinchar en el banner sea la de abrir la URL con el navegador y no la de cargar la URL en la página actual, que en nuestro caso es la interfaz gráfica.

Deja un comentario

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

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>