Frage

Dies sollte ganz einfach sein, aber ich kann es nicht egal bekommen arbeiten, was ich versuche. Ich versuche, Google Analytics mit GWT-Anwendung zu verwenden. Von dem, was ich verstanden habe, gibt es zwei Wege, es zu tun:

Zuerst ist synchron, durch Tracking-Code eingefügt am Ende des Abschnitt HTML-Seite und dann diese Methode aufrufen:

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

Zweitens ist asynchron, durch Tracking-Code eingefügt unmittelbar nach -Tag und dann diese Methode aufrufen:

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

Bei jeder dieser Methoden ausgeführt wird, aber ich diese Ausnahmen erhalten in Host-Modus:

[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

Wenn Website in Firebug beobachtet, ich sehe, dass ga.js wird geladen, aber das ist es.

Hat jemand bekommen Analytics mit GWT zu arbeiten? Auch dann, wenn _gaq Seitennamen als Parameter track akzeptieren, da alle Beispiele, die ich habe Verwendung dieser Aufruf gesehen:

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

(Natürlich, das tut auch nicht Arbeit für mich.)

War es hilfreich?

Lösung

Das ist nur eine Vermutung, aber Sie wahrscheinlich die Host-Seite (die, wo der Google Analytics JS-Code enthalten ist) über $wnd im JSNI, wie diese verweisen müssen:

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

JSNI Code (und in der Regel GWT-Code) in einem iframe führen Sie den Namensraum sauber zu halten, das ist, warum Sie den $wnd Bezug auf das Hauptfenster benötigen.

Andere Tipps

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

Siehe http://www.google.com /support/analytics/bin/answer.py?hl=en&answer=55485 .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top