我有一个在公共计算机上运行的 SPA。该应用程序在一段时间不活动后重置,我希望重置后发生的任何分析显示为不同的会话/用户。我怎样才能做到这一点?
我已经尝试删除 __utm cookie(离开 __utmv),并且进一步的调用确实显示为不同的用户,但是我丢失了第一个跟踪事件的自定义变量,无论我是在删除 cookie 之后还是在跟踪下一个之前重置它们事件。
我有一个在公共计算机上运行的 SPA。该应用程序在一段时间不活动后重置,我希望重置后发生的任何分析显示为不同的会话/用户。我怎样才能做到这一点?
我已经尝试删除 __utm cookie(离开 __utmv),并且进一步的调用确实显示为不同的用户,但是我丢失了第一个跟踪事件的自定义变量,无论我是在删除 cookie 之后还是在跟踪下一个之前重置它们事件。
看起来切换到通用并发送一个sessionControl: 'start'
字段是我能得到的最好的。
如果有人在未来寻找这个问题的答案,这就是我能够实现它的方式......
// set the analytics session and visitor timeout to 10 milliseconds
_gaq.push(['_setSessionCookieTimeout', 10]);
_gaq.push(['_setVisitorCookieTimeout', 10]);
// make a fake page view, 10 milliseconds after this, the session will time out
_gaq.push(['_trackPageview', '/session/reset/']);
// after a short delay, set the analytics session and visitor timeout to 5 minutes,
// this should start a new session
setTimeout(function() {
_gaq.push(['_setSessionCookieTimeout', 300000]); // 5 minutes * 60 * 1000 = 300000
_gaq.push(['_setVisitorCookieTimeout', 300000]);
// log a page view...
_gaq.push(['_trackPageview', '/some/page/url/']);
}, 200);
...我不确定是否需要第二个页面视图(我的解决方案需要它),但 cookie 超时更新似乎触发了新的会话和访问者 ID
此外,您可能希望将新的超时值设置为 5 分钟以上(默认为 30 分钟或 1800000 毫秒)