gwt - together - install google analytics with tag manager
IntegraciĆ³n de Google Analytics en la aplicaciĆ³n GWT (2)
Esto es solo una conjetura, pero es probable que necesite hacer referencia a la página del host (en la que se incluye el código JS de Google Analytics) a través de $wnd
en la JSNI, como esto:
public static native void recordAnalyticsHit(String pageName) /*-{
$wnd.pageTracker._trackPageview(pageName);
}-*/;
El código JSNI (y, en general, el código GWT) se ejecuta en un iframe para mantener limpio el espacio de nombres, por eso necesita la referencia $wnd
a la ventana principal.
Esto debería ser totalmente simple pero no puedo hacerlo funcionar sin importar lo que intente. Estoy tratando de usar Google Analytics con la aplicación GWT. Por lo que entendí, hay dos formas de hacerlo:
Primero es sincrónico, insertando el código de seguimiento al final de la página HTML de la sección <head> y luego llamando a este método:
public static native void recordAnalyticsHit(String pageName) /*-{
pageTracker._trackPageview(pageName);
}-*/;
El segundo es asíncrono, insertando el código de seguimiento justo después de la etiqueta <body> y luego llamando a este método:
public static native void recordAnalyticsHit(String pageName) /*-{
_gaq.push([''_trackPageview('' + pageName + '')'']);
}-*/;
Sin embargo, al ejecutar cada uno de esos métodos, obtengo estas excepciones en modo hospedado:
[ERROR] [myproject] Uncaught exception escaped
com.google.gwt.core.client.JavaScriptException: (ReferenceError): pageTracker is not defined
[ERROR] [myproject] Uncaught exception escaped
com.google.gwt.core.client.JavaScriptException: (ReferenceError): _gaq is not defined
Al observar el sitio en Firebug, veo que ga.js se carga, pero eso es todo.
¿Alguien consiguió que Analytics trabajara con GWT? Además, _gaq acepta el nombre de la página como parámetro trackPageview, ya que todos los ejemplos que he visto usan esta llamada:
_gaq.push([''_trackPageview()'']);
(Por supuesto, eso tampoco funciona para mí).
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src=''" + gaJsHost + "google-analytics.com/ga.js'' type=''text/javascript''%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-xxxxxx-x");
pageTracker._trackPageview("/subdirectory/pagename");
</script>
Consulte http://www.google.com/support/analytics/bin/answer.py?hl=en&answer=55485 para obtener más información.