0

我按照这里的说明http://code.google.com/p/gwt-platform/wiki/GoogleAnalytics,并且能够注入 GoogleAnalytics 但我有一些问题:

他们说你不必打电话init(userAccount),因为杜松子酒会帮你打电话,我发现这不是真的,我必须自己打电话init(),我担心这不是最好的做法。

我试着trackEvent用必要的参数打电话,但什么也没发生。我正在使用 Chrome;我可以看到脚本已加载到页面并尝试跟踪网络是否有任何传出呼叫,但我的浏览器没有发送任何内容。

我尝试使用 JSNI 调用,自己在 GWT 中编写 Javascript,但结果完全没有不同。

任何帮助将不胜感激。

4

1 回答 1

0

我依靠 JSNI 和 Google Analytics,它对我有用,因为我可以在我的 Analytics 控制面板中看到事件。你确定你已经在你的 html 文件中放置了正确的初始化吗?我不熟悉您使用的那个 gwt-platform 库,也许它已经过时了?

以下是我的跟踪方法:

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

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

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

并且不要忘记模块 html 文件中的这个初始化:

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-29066117-1']);
_gaq.push(['_trackPageview']);

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

于 2012-06-04T10:21:08.220 回答