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

And*_*res 11 java gwt google-analytics

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

我认为解决方案:

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

仅适用于使用同步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);
  }
}-*/;
Run Code Online (Sandbox Code Playgroud)

并不适合我.

Ril*_*ark 20

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

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]);
}-*/;
Run Code Online (Sandbox Code Playgroud)

我在主机页面中执行正常的_setAccount(需要在trackPageview()等之前执行:

<!-- Analytics -->
<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-FAKE1234-2']);

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

</script>
Run Code Online (Sandbox Code Playgroud)

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