问题描述
我正在尝试将用户ID写入Cookie。当用户登录时,我可以从服务器的dataLayer
变量中捕获它,但是用户可以在下一个会话中登录。因此,我尝试创建自定义JavaScript代码,该代码应检查变量是否未定义并编写一个cookie,以及该cookie是否存在然后返回cookie值。
function() {
if ({{UID dataLayer}}) {
var d = new Date();
d.setTime(d.getTime() + 1000 * 60 * 60 * 24 * 365 * 2);
var expiresdate = 'Expires=' + d.toGMTString();
document.cookie = 'UIDcookie=' + {{UID dataLayer}} + '; ' + expiresdate + '; Path=/';
return {{UID dataLayer}};
} else if ({{UID Cookie}}) {
return {{UID Cookie}};
}
return;
}
但是它仅在我处于tagmanager
调试模式时有效,当它关闭时,什么也没发生。所以我的问题是我做错了什么?
解决方法
这可能是时间问题。尝试将代码触发到页面加载中,这样,JS变量中的函数应能够读取Cookie。