0

我对谷歌分析有疑问:

我实现了这样的跟踪代码:

 var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
      _gaq.push(['_setDomainName', 'ransoft.at']);
      _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);
      })();

只是它应该实现的方式(根据goole)。

跟踪代码在旁边,但谷歌分析找不到它(谷歌分析:跟踪信息:未安装跟踪!)

自己看看吧:http ://www.ransoft.at

谷歌分析说,我没有在我的网站上安装跟踪代码。

谷歌分析:属性设置:

该网站由 Vaadin7 提供支持,并在 tomcat7 上运行。

请帮助我,我在这里很迷茫。

4

1 回答 1

0

所以,我终于设法让谷歌分析运行起来。

Google Analytics 无法在网站上找到我的跟踪代码。使用GoogleAnalyticsTracker 插件,数据已发送到 GA,但跟踪信息确实表明未安装跟踪代码。

问题是引导页面中缺少跟踪代码。解决方案是创建一个新的 VaadinServlet,我在其中创建了一个新的 BootstrapListener。像这样的东西:

public class MyVaadinServlet extends VaadinServlet {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Override
    protected void servletInitialized() throws ServletException {
        super.servletInitialized();
        getService().addSessionInitListener(new SessionInitListener() {

            /**
             * 
             */
            private static final long serialVersionUID = 1L;

            @Override
            public void sessionInit(SessionInitEvent event) throws ServiceException {
                event.getSession().addBootstrapListener(new BootstrapListener() {

                    /**
                     * 
                     */
                    private static final long serialVersionUID = 1L;

                    @Override
                    public void modifyBootstrapPage(BootstrapPageResponse response) {
                        // Adding Google Analytics to BootstrapPage header
                        head.append("<script type=\"text/javascript\">" +
                                      "var _gaq = _gaq || [];"+
                                      "_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);" +
                                      "_gaq.push(['_setDomainName', 'mydomain.com']);" +
                                      "_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);" +
                                      "})();"+
                                    "</script>");

                    }

                    @Override
                    public void modifyBootstrapFragment(BootstrapFragmentResponse response) {

                    }
                });
            }
        });
    }
}

有关更多信息,请参阅:自定义 Vaadin 应用程序中的启动页面 使用此解决方案,数据将发送到 Google Analytics,并且跟踪代码也被 Google Analytics 识别。

在 Vaadin 7 应用程序中可能有一些更简单的方法可以做到这一点,但这对我有用。以为我让你知道了。

问候

于 2013-03-31T12:37:30.590 回答