2011-08-11 11 views
8

Estoy buscando una buena solución para hacer análisis móviles para Jquery mobile. Hice esta pregunta comprobarCómo hacer análisis móviles usando Jquery mobile

Flurry Analytics vs Google Analytics on the mobile platform

pero estas son todas las soluciones para un fabricante específico/teléfono plataforma de trabajos específicos, pero jQuery Mobile en todas las plataformas, independientemente del fabricante o del sistema operativo. Básicamente, estoy buscando una solución analítica para webapps.

Información adicional: - bango parece caro a $ 49/mes. Admob no funcionará, ya que no lo necesitamos para publicidad y no para colocar anuncios.

Respuesta

1

utilizo los siguientes bits de código de Google Analytics y funciona bien:

El siguiente es más o menos lo normal de configuración de Google Analytics:

var _gaq = _gaq || []; 
_gaq.push(['_setAccount', '**-*****-**']); 

(function() { 
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
})(); 

La actualización para jQuery Mobile es aquí, así que cada pseudo-radiolocalización se registra:

$(document).delegate('[data-role=page]', 'pageshow', function (event, ui) { 
    var url = location.href; 
    try { 
     if (location.hash) { 
      url = location.hash; 
     } 
     _gaq.push(['_trackPageview', url]); 
    } 
    catch(error) { 
     // error catch 
    } 
}); 
+0

Lo intentaré y enviaré mis comentarios. – pal4life

+0

no han intentado esto todavía, pero Bango Analytics definitivamente funciona para Mobile Webapps. – pal4life

+0

¿Dónde se define defaulturl? – pauloya

2

estoy usando lo siguiente:

<script> 
    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-xxxxxx-xx']); 

    (function() { 
     var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
    })(); 

$('[data-role=page]').live('pageshow', function (event, ui) { 
    try { 

     hash = location.hash; 

     if (hash && hash.length > 1) { 
      _gaq.push(['_trackPageview', hash.substr(1)]); 
     } else { 
      _gaq.push(['_trackPageview']); 
     } 
    } catch(err) { 

    } 

}); 
</script> 

El evento 'pageshow' se dispara incluso para la primera página, por lo que no creo que quiera incluir _trackPageview con la configuración de GA. Además, location.hash devolverá url con el carácter "#" para que hash.subtr (1) lo limpie y normalice los visitantes hash/pushstate.

Actualización 11/30/11: Comprobación adicional de la longitud de hash para, por ejemplo, error (de: Paulo Manuel Santos).

+0

Encontré que en algunos casos con IE y después de hacer clic en el botón Atrás, la URL es representado con un hash vacío (http: blabla/Index #). Así que lo cambié a 'if (hash && hash.length> 1)'. – pauloya

+0

Para 'else' utilicé' location.pathname'. – pauloya

+0

¿Alguien probó esta solución y la encontró * no * funciona? Esta configuración funciona solo para la aplicación que publico como un sitio de demostración en línea, pero no para ninguna instalación de mi aplicación en teléfonos móviles. – Wytze

Cuestiones relacionadas