Google analytics 谷歌分析找不到跟踪代码

Google analytics 谷歌分析找不到跟踪代码,google-analytics,tomcat7,vaadin,Google Analytics,Tomcat7,Vaadin,我对谷歌分析有一个问题: 我实现了如下跟踪代码: var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']); _gaq.push(['_setDomainName', 'ransoft.at']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('

我对谷歌分析有一个问题:

我实现了如下跟踪代码:

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

                    }
                });
            }
        });
    }
}
这正是它应该实现的方式(根据古尔)

跟踪代码在旁边,但google analytics找不到它(google analytics:tracking Info:tracking not installed!)

你自己看看吧:

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

谷歌分析:属性设置:

  • 默认URL:
该网站由Vaadin7提供动力,并在tomcat7上运行


请帮帮我,我在这里迷路了。

所以,我终于设法让google analytics运行起来

Google Analytics无法在网站中找到我的跟踪代码。随着数据被发送到GA,但跟踪信息确实表明跟踪代码并没有安装

问题是引导页面中缺少了。 解决方案是创建一个新的VaadinServlet,在这里我创建了一个新的BootstrapListener。大概是这样的:

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

                    }
                });
            }
        });
    }
}
公共类MyVaadinServlet扩展了VaadinServlet{
/**
* 
*/
私有静态最终长serialVersionUID=1L;
@凌驾
受保护的void servletInitialized()引发ServletException{
super.servletilized();
getService().addSessionInitListener(新的SessionInitListener()){
/**
* 
*/
私有静态最终长serialVersionUID=1L;
@凌驾
public void sessionInit(SessionInitEvent事件)引发ServiceException{
event.getSession().addBootstrapListener(新的BootstrapListener()){
/**
* 
*/
私有静态最终长serialVersionUID=1L;
@凌驾
public void modifyBootstrapPage(BootstrapPageResponse响应){
//将Google Analytics添加到BootstrapPage标头
头。附加(“”)+
“var _gaq=_gaq | |[];”+
_gaq.push([''u setAccount','UA-XXXXXXXX-X'])+
_gaq.push([''u setDomainName','mydomain.com'])+
_gaq.push([''u trackPageview','/'])+
“(函数(){”+
“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);“+
"})();"+
"");
}
@凌驾
public void modifyBootstrapFragment(BootstrapFragmentResponse响应){
}
});
}
});
}
}
有关更多信息,请参阅: 使用此解决方案,数据将被发送到Google Analytics,跟踪代码也将被Google Analytics识别

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


实际上,我在ransoft.at上没有看到任何ga.js代码。自己看一下实时源代码。你看到了吗?代码已经上传并且服务器已经刷新了吗?我在标题中看到了ga.js。它是这样嵌入的:好吧,我看到它在某个点被添加了。但是,我没有看到其余的代码被执行——您保存为myLibrary.addGoogleAnalytics()的部分。你只是定义了这个函数,还是真的在某个地方执行了它?此外,此特定网站可能非常适合设置,因为链接指向的区域与新页面类似,但实际上不会导致页面刷新。myLibrary.addGoogleAnalytics()正在启动时执行。如下所示:Page.getCurrent().getJavaScript().execute(“myLibrary.addGoogleAnalytics();”;这是一款Vaadin 7的功能,效果很好。这段代码也正在被执行,因为否则ga.js将不在那里。我不知道虚拟页面浏览量…但我怀疑这是ga集成的问题。你在ga帐户中看到数据了吗?如果是这样的话,实现可能很好,GA只是因为非传统的设置而没有检测到安装。