Question

Cela devrait être tout à fait simple, mais je ne peux pas le faire fonctionner, peu importe ce que j'essaie. Je suis en train d'utiliser Google Analytics avec une application GWT. D'après ce que je compris, il y a deux façons de le faire:

First est synchrone, en insérant un code de suivi à la fin de la page HTML et ensuite appeler cette méthode:

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

La deuxième est asynchrone, en insérant un code de suivi juste après balise et puis d'appeler cette méthode:

public static native void recordAnalyticsHit(String pageName) /*-{
    _gaq.push(['_trackPageview(' + pageName + ')']);
}-*/;

Lors de l'exécution de chacune de ces méthodes, cependant, je reçois cette exception en mode hébergé:

[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

En observant site dans Firebug, je vois que ga.js à être chargée, mais c'est à ce sujet.

Quelqu'un at-il obtenir Analytics travaillant avec GWT? En outre, ne _gaq accepte le nom de la page en tant que paramètre trackPageview, puisque tous les exemples que je l'ai vu utiliser cet appel:

_gaq.push(['_trackPageview()']);

(Bien sûr, cela ne fonctionne pas aussi pour moi.)

Était-ce utile?

La solution

Ceci est juste une supposition, mais vous devez probablement faire référence à la page d'accueil (celui où le code JS Google Analytics a été inclus) via $wnd dans le JSNI, comme ceci:

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

Code JSNI (et en général, le code GWT) est exécuté dans un iframe pour garder l'espace de nom propre, c'est la raison pour laquelle vous avez besoin de la référence $wnd à la fenêtre principale.

Autres conseils

<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>

Voir http://www.google.com /support/analytics/bin/answer.py?hl=en&answer=55485 pour plus de détails.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top