2012-01-13 18 views
12

jQueryMobile carga su primera página como lo hace cada sitio. La integración habitual de Google Analytics funciona: la solicitud se rastrea. Pero las páginas siguientes se cargan de forma asíncrona y los clics de los usuarios no se rastrean.Cómo integrar Google Analytics en un sitio web de jQueryMobile

Cómo integrar Google Analytics en un sitio web de jQueryMobile, de modo que se haga un seguimiento de todos los clics de página.

+1

[He aquí una respuesta actualizada con enlace de evento correcto, usando jQuery Mobile 1.3] (http://stackoverflow.com/a/18736218/315024) – Walf

Respuesta

15

Jon Gales ha escrito un gran artículo sobre esto.

http://www.jongales.com/blog/2011/01/10/google-analytics-and-jquery-mobile/

Aquí está el código que recomienda el uso de:

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

     hash = location.hash; 

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

    } 

}); 

actualización

Desde live ahora es obsoleto que debe utilizar el evento on lugar, si estás usando jQuery 1.7 +. http://api.jquery.com/on/

+3

Sin embargo, no necesita la llamada _setAccount. Si ya lo tienes en la primera página. Puede llamar varias veces _trackPageview después de _setAccount – Eduardo

+2

jQuery Mobile 1.0 Final está empaquetado con jQuery Core 1.6.4 porque la actualización a 1.7+ puede causar problemas (he visto problemas en la pantalla blanca con Blackberry y 1.7). Menciono esto porqué '.on()' es un poco demasiado nuevo para usar con jQuery Mobile 1.0 Final, sin embargo puedes usar '.delegate()' en el mismo feudo. – Jasper

+0

Tenga en cuenta que debe vincular este evento antes de que jQuery Mobile se ejecute; de ​​lo contrario, no funcionará en absoluto (colóquelo en su controlador mobileinit). Y sí, solo debe llamar a _SetAccount una vez, pero también funciona así. –

4

Para aquellos que tienen problemas con PhoneGap y Google Analytics:

código de Google utiliza cookies y no funciona con el archivo: // URLs cual es lo que utiliza Phonegap. El equipo Pokki hizo a good implementation que usa localStorage en lugar de cookies. hice un tenedor en github para eliminar la necesidad de pokki, asi que aquí hay una solución que funciona con PhoneGap como una biblioteca independiente

https://github.com/ggendre/GALocalStorage

esperanza que esto ayudará a otra persona :)

Cuestiones relacionadas