2012-01-13 16 views
12

jQueryMobile carica la prima pagina come fa ogni sito. La normale integrazione di Google Analytics funziona - la richiesta è tracciata. Ma le pagine seguenti vengono caricate in modo asincrono e i clic dell'utente non vengono tracciati.Come integrare Google Analytics in un sito Web jQueryMobile

Come integrare Google Analytics in un sito Web jQueryMobile, in modo che tutti i clic su una pagina vengano tracciati?

+1

[Ecco un risposta aggiornata con associazione evento corretta, utilizzando jQuery Mobile 1.3] (http://stackoverflow.com/a/18736218/315024) – Walf

risposta

15

Jon Gales ha scritto un grande articolo su questo.

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

Ecco il codice che consiglia di utilizzare:

$('[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) { 

    } 

}); 

Aggiornamento

Dal live ora è deprecato si dovrebbe utilizzare l'evento on invece, se stai usando jQuery 1.7 +. http://api.jquery.com/on/

+3

Non è tuttavia necessaria la chiamata _setAccount. Se lo hai già nella prima pagina. Puoi chiamare più volte _trackPageview dopo il _setAccount – Eduardo

+2

jQuery Mobile 1.0 Final è impacchettato con jQuery Core 1.6.4 perché l'aggiornamento a 1.7+ può causare problemi (ho visto problemi di schermo bianco con Blackberry e 1.7). Vi presento bceuase '. On()' è un po 'troppo nuovo da usare con jQuery Mobile 1.0 Final, tuttavia è possibile usare '.delegate()' nello stesso maniero. – Jasper

+0

Nota che devi associare questo evento prima che jQuery Mobile venga eseguito altrimenti non funzionerà affatto (inseriscilo nel tuo gestore mobileinit). E sì, dovresti chiamare _SetAccount una volta sola, ma funziona anche così. –

4

Per coloro che hanno problemi con PhoneGap e Google Analytics:

codice di Google utilizza i cookie e non funziona con il file: // URL Quale è quello che utilizza PhoneGap. Il team Pokki ha creato a good implementation che utilizza localStorage al posto dei cookie. Ho fatto una forchetta su github per eliminare la necessità di Pokki, ecco una soluzione che funziona con PhoneGap come una libreria autonoma

https://github.com/ggendre/GALocalStorage

speranza che questo vi aiuterà qualcun altro :)

Problemi correlati