我有一个邮寄广告系列,其中所有链接都包含Google Analytics跟踪代码,例如:
http://example.com/account/somePage.html?utm_source=example&utm_medium=email&utm_campaign=reminder
上下文/帐户/ **受到Spring安全保护,一旦用户点击电子邮件上的链接,就会在实际看到somePage.html之前重定向登录。这样,显示的第一个页面就像/login.do,它没有分析跟踪代码。因此,Google不会跟踪我的来源,媒介和广告系列参数。
任何想法如何解决?
答案 0 :(得分:0)
基于http://support.google.com/analytics/answer/1009614?hl=en,我更新了我的LoginController,它显示了重定向到/ login的登录页面?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;
}
}
}
答案 1 :(得分:0)
我们遇到了类似的问题,已经解决了下一个解决方案。
我们通过Ajax有一个注册表单,如果一切正常,我们会在回调中自动登录用户,并因为Spring Security会话失效并设置新的Cookie而丢失了Google Analytics跟踪代码以进行漏斗可视化。
我们在自动登录之前通过JS调用新用户
_gaq.push(['_trackPageview', '/signupDone']);
https://gist.github.com/moskinson/5418938
signupDone是一个不存在的假网址。
通过这种方式,GA会收到新网址的调用,我们可以跟踪渠道!