2011-01-24 14 views
11

Estoy intentando rastrear páginas usando Google Analytics dentro de una aplicación GWT. ya comprobar el siguiente hilo: Integrating Google Analytics into GWT applicationCómo integrar Google Analytics en GWT mediante el script asíncrono

creo que la solución:

public static native void recordAnalyticsHit(String pageName) /*-{ 
$wnd.pageTracker._trackPageview(pageName);}-*/; 

sólo funciona con el script GA síncrona.

estoy tratando con lo siguiente:

public native void trackHit (String pageName) /*-{ 
    try { 
    $wnd._gaq.push (['_setAccount', 'UA-XXXXXX-XX']); 
    $wnd._gaq.push (['_setDomainName', '.mydomain.com']); 
    $wnd._gaq.push (['_trackPageview', pageName]); 
    } catch (err) { 
    alert('failure on gaq' + err); 
    } 
}-*/; 

y no está funcionando para mí.

Respuesta

20

Éstos son mis página-y el evento de seguimiento de funciones:

public static native void trackEvent(String category, String action, String label) /*-{ 
    $wnd._gaq.push(['_trackEvent', category, action, label]); 
}-*/; 

public static native void trackEvent(String category, String action, String label, int intArg) /*-{ 
    $wnd._gaq.push(['_trackEvent', category, action, label, intArg]); 
}-*/; 

public static native void trackPageview(String url) /*-{ 
    $wnd._gaq.push(['_trackPageview', url]); 
}-*/; 

hago las cosas _setAccount como normal en la página principal (hay que ejecutar antes trackPageview(), etc trabajará:

<!-- Analytics --> 
<script type="text/javascript"> 

    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-FAKE1234-2']); 

    (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); 
    })(); 

</script> 

No necesita usar setAccount cada vez que publica un evento, solo al principio. No me molesto en probar {} catch {} cosas ... En realidad no sé JavaScript.

+0

de trabajo ahora! Gracias Riley – Andres

1

ahí es un proyecto en código goole llamado gwt-gatracker que implementa la función GA para usar en proyectos GWT. check it out here

3

Hay una nueva versión de Google Analytics que utiliza una nueva secuencia de comandos analytics.js. Es el mismo proceso, sin embargo, sólo tiene que añadir la secuencia de comandos en su cabecera HTML:

<script> 
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 

    ga('create', 'UA-YOUR_ACCOUNT-X', 'auto'); 
    ga('send', 'pageview'); 
</script> 

Y entonces puede llamar a los nuevos métodos de esta manera:

public static native void googleAnalyticsTrackPageView(String url) /*-{ 
    $wnd.ga('send', 'pageview', url); 
}-*/; 
+1

Esto debería marcarse como la respuesta ahora. –

Cuestiones relacionadas