使用Google跟踪代码管理器跟踪Cookie中的用户ID

问题描述

我正在尝试将用户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。