我已经漫游互联网好几天了,正在寻找实现如何使会话计数cookie的实现。我设法找到了一个关于pageview count的内容,但似乎无法创建一个会话计数的内容。
这GTM product forum post提供了一些指导,但它只会创建一个在30分钟后失效的cookie。我需要计算会话数。 (我要么做一个cookie来发布信息,要么做另一个来计算会话数,然后以某种方式解析它们之间的数据,但这感觉很棘手。)
此外-如果可以的话,如果可以根据用户ID跟踪会话计数,那就太好了!不确定sessionCount如何与打开同一域的多个选项卡一起使用。但是也许没关系吗?
关于如何制作会话计数cookie的任何解决方案?
其他信息:
在这种情况下,我的会话时间为30分钟。 (如果闲置时间为30分钟,那将很棒,就像Google Analytics(分析)定义它一样,但没有必要)。
为什么要创建此cookie是因为我最终想要跟踪一个月内访问该网站的用户所占的百分比。也许我的大脑过于关注此会话计数cookie,所以如果您有另一种创建该报告的方法,请务必告诉! (我有自定义报告,但希望将百分比直接纳入Google Analytics(分析)目标-这就是GTM的原因) 如果还有另一种方法,我仍然很乐意解决会话cookie,我真的很想把它塞在墙上。
如果您想在代码中玩转this is the same script as the pageviewcount one,但将名称更改为sessioncount等。
function setCookie(name, value, expires) {
var cookie = name + "=" + value + "; path=/; domain=." + location.hostname.replace(/^www\./i, "");
if (typeof expires !== "undefined") {
var now = new Date();
now.setTime(now.getTime() + expires * 24 * 60 * 60 * 1000);
cookie += "; expires=" + now.toUTCString();
}
document.cookie = cookie;
}
function getCookie(name) {
var cookies = document.cookie.split(";"),
toReturn;
console.log(cookies);
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i].trim();
if (cookie.indexOf(name + "=") === 0) {
toReturn = cookie.substring((name + "=").length, cookie.length);
}
}
return toReturn;
}
(function() {
var sessionCount = getCookie("sessionCount");
if (typeof sessionCount === "undefined") {
sessionCount = 1;
} else {
sessionCount++;
}
var ADay=1;
var hoursOfADay = (ADay/24); //1/24 - a day divided by its number of hours
var halfHourOfADay = (hoursOfADay / 2); //a half hour of a day
// var halfhour= 1/24
setCookie("sessionCount", sessionCount, halfHourOfADay);
})();
谢谢!