如何使用异步脚本将Google Analytics集成到GWT中

我正在尝试在GWT应用程序中使用Google Analytics跟踪网页。 我已经检查了以下主题: 将Google Analytics集成到GWT应用程序中

我认为解决方案:

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

仅适用于使用同步GA脚本。

我正在尝试以下方面:

 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); } }-*/; 

并不适合我。

以下是我的页面和事件跟踪function:

 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]); }-*/; 

我在主页中执行_setAccount这样的东西(需要在trackPageview()等之前执行:

   

每次发布活动时,您都不需要使用setAccount,仅在开头时使用。 我不打扰try {} catch {}的东西……我实际上并不了解JavaScript。

Google Analytics的新版本使用了新的analytics.js脚本。 这是相同的过程,只需在您的html标头中添加脚本:

  

然后可以像这样调用新方法:

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

有一个名为gwt-gatracker的goole代码项目,它实现了GAfunction,可用于GWT项目。 看看这里