2013-04-10 83 views
1

我有一个邮寄活动所有环节包括谷歌Analytics跟踪代码,如:失去谷歌Analytics(分析)由于追踪到Spring Security的登录重定向

http://example.com/account/somePage.html?utm_source=example&utm_medium=email&utm_campaign=reminder

上下文/帐号/ **是通过Spring安全保护,一旦用户点击电子邮件上的链接,他将被重新定向登录,然后再实际看到somePage.html。这样,显示的第一个页面就像/login.do,它没有分析跟踪代码。因此,谷歌不会跟踪我的来源,媒体和广告系列参数。

任何想法如何解决?

+0

为什么要保护的URL模式'/帐号/ **'如果你想匿名访问? – Michael 2013-04-10 07:22:50

+0

我不想匿名访问。 – checklist 2013-04-10 09:21:47

+0

使用默认配置时,用户应该在登录后重定向回原始URL,因此在页面呈现时参数应该仍然存在。 – 2013-04-10 13:12:05

回答

0

基于http://support.google.com/analytics/answer/1009614?hl=en,我更新了我的LoginController显示登录页面重定向到/登录GOOGLE_PARAMATERS:

private static final String ALREADY_REDIRECTED = "ALREADY_REDIRECTED"; 
.... 

@RequestMapping(value = "/login", method = RequestMethod.GET) 
public ModelAndView loginView(HttpServletRequest request, HttpServletResponse response){ 
.... 

Boolean alreadyRedirected = (Boolean) request.getSession().getAttribute(ALREADY_REDIRECTED); 
    if (alreadyRedirected==null){ 
     SavedRequest savedRequest = new HttpSessionRequestCache().getRequest(request, response); 
     if (savedRequest!=null){ 
      String source[] = savedRequest.getParameterValues("utm_source"); 
      if (source!=null && source.length>0){ 
       // we need to redirect with login instead 

       String mediums[] = savedRequest.getParameterValues("utm_medium"); 
       String medium = mediums.length==0 ? "" : mediums[0]; 
       String campaigns[] = savedRequest.getParameterValues("utm_campaign"); 
       String campaign = campaigns.length==0 ? "" : campaigns[0]; 

       String redirect = "redirect:/login?utm_source=" + source[0] + "&utm_medium=" + medium + "&utm_campaign=" + campaign; 
       mav.setViewName(redirect); 

       // mark not to do twice 
       request.getSession().setAttribute(ALREADY_REDIRECTED, new Boolean(true)); 
       return mav; 
      } 
     } 
    } 
0

我们有类似的问题,并与下一个解决方案来解决。

我们通过Ajax注册表单,如果一切正常,我们会自动登录用户,并因为Spring Security会话失效而丢失Google Analytics跟踪代码,从而导致漏洞可视化并设置新的cookie。

什么,我们通过JS之前完成自动登录调用新的用户这

_gaq.push(['_trackPageview', '/signupDone']); 

https://gist.github.com/moskinson/5418938

signupDone是不存在的假网址。

这种方式GA接收到一个新的URL调用被加载,我们可以跟踪漏斗!

http://packageprogrammer.wordpress.com/2013/04/19/seguimiento-con-google-analytics-a-traves-del-login-con-spring-security/

+0

谢谢,但您的解决方案不适用于我的问题。你不能做任何JS编码,因为当你尝试登陆一个受保护的页面时发生重定向。我发现的唯一方法是再次重定向到包含引用参数的URL – checklist 2013-04-19 16:33:14

相关问题