如何在Google跟踪代码管理器中进行会话计数Cookie?

时间:2018-07-18 11:32:07

标签: javascript cookies google-analytics analytics google-tag-manager

我已经漫游互联网好几天了,正在寻找实现如何使会话计数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);

})();

谢谢!

0 个答案:

没有答案