それで、私はついにグーグルアナリティクスを実行させることができました。
GoogleAnalyticsはウェブサイトで私のトラッキングコードを見つけることができませんでした。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に送信され、追跡コードもGoogleAnalyticsによって認識されます。
Vaadin 7アプリケーションでそれを行う簡単な方法はおそらくいくつかありますが、これは私にとってはうまくいきます。私はあなたにそれを知らせたと思った。
よろしく