1

我有一个邮寄活动,其中所有链接都包含谷歌分析跟踪代码,例如:

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

上下文 /account/** 受到 Spring 安全性的保护,一旦用户单击电子邮件上的链接,在实际看到 somePage.html 之前,他将被重定向到登录。这样,显示的第一页类似于 /login.do,它没有分析跟踪代码。因此,谷歌不会跟踪我的来源、媒介和活动参数。

任何想法如何解决?

4

2 回答 2

0

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

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;
            }
        }
    }
于 2013-04-13T17:04:52.537 回答
0

我们有类似的问题,并已通过下一个解决方案解决。

我们有一个通过 Ajax 的注册表单,如果一切正常,我们会在回调中自动登录用户并丢失用于漏斗可视化的 Google Analytics 跟踪代码,因为 Spring Security 会话无效并设置了一个新的 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/

于 2013-04-18T16:23:09.323 回答