gwt - 将 Google Analytics 集成到 GWT 应用程序中

标签 gwt google-analytics google-analytics-api

这应该是非常简单的,但无论我如何尝试,我都无法让它工作。我正在尝试将 Google Analytics 与 GWT 应用程序一起使用。据我了解,有两种方法可以实现:

首先是同步的,通过在 HTML 页面 部分的末尾插入跟踪代码,然后调用此方法:

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

第二种是异步的,通过在 标记后面插入跟踪代码,然后调用此方法:

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

但是,当运行每个方法时,我在托管模式下遇到以下异常:

[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

在 Firebug 中观察站点时,我看到 ga.js 已加载,但仅此而已。

有人让 Analytics 与 GWT 一起使用吗?另外,_gaq 是否接受页面名称作为 trackPageview 参数,因为我见过的所有示例都使用此调用:

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

(当然,这对我来说也不起作用。)

最佳答案

这只是一种猜测,但您可能需要通过 JSNI 中的 $wnd 引用主机页(包含 Google Analytics JS 代码的主机页),如下所示:

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

JSNI 代码(通常是 GWT 代码)在 iframe 中运行以保持命名空间干净,这就是为什么您需要对主窗口的 $wnd 引用。

关于gwt - 将 Google Analytics 集成到 GWT 应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2457794/

相关文章:

performance - zk vs gwt zk 请求太多

java - SimplePanel 未显示

javascript - 核心报告 API v4、数据表?

javascript - 跟踪下载,包括自定义尺寸

javascript - 实验的转化率完全错误

excel - 如何将Google Analytics(分析)数据导出到Google表格或Excel文件?

gwt - 在 GWT 中用等效的 "eace"替换 éàçè...

java - 如何使用 Maven for App Engine 设置 Java Eclipse (Juno) 动态 Web 项目

google-analytics - 错误 : Analytics Reporting API V4 has not been used in project

ruby-on-rails - Gattica gem (RoR) 是否仍然得到维护/支持?