Cookies GTM Cookie变量值在Cookie仍处于设置状态时清除

Cookies GTM Cookie变量值在Cookie仍处于设置状态时清除,cookies,google-tag-manager,Cookies,Google Tag Manager,我正在开发一个跟踪系统,它使用GTM容器选择性地显示跟踪像素,但我遇到了一点障碍 设置基本上依赖于客户端cookie,该cookie在用户首次访问站点时根据URL字符串中的参数进行设置。目前这部分工作正常,cookie被设置为适当的值 问题在于,为获取第1方cookie的值而设置的GTM变量似乎无法实际获取第一页之后的值。cookie似乎仍然是在浏览器中设置的,所以我不明白为什么会发生这种情况。这就像GTM刷新页面更改上的变量值时,由于某种原因第二次看不到cookie 如果您有任何关于如何解决此

我正在开发一个跟踪系统,它使用GTM容器选择性地显示跟踪像素,但我遇到了一点障碍

设置基本上依赖于客户端cookie,该cookie在用户首次访问站点时根据URL字符串中的参数进行设置。目前这部分工作正常,cookie被设置为适当的值

问题在于,为获取第1方cookie的值而设置的GTM变量似乎无法实际获取第一页之后的值。cookie似乎仍然是在浏览器中设置的,所以我不明白为什么会发生这种情况。这就像GTM刷新页面更改上的变量值时,由于某种原因第二次看不到cookie

如果您有任何关于如何解决此问题的想法或建议,我们将不胜感激

更新:我发现问题在于我的GTM如何读取cookie。从我的Wordpress/购物车路径到我的Wordpress/结帐路径的转换似乎将它抛在脑后。我想知道如何使cookie不那么具体,这样它就不会被限制在这样一个离散的路径上。目前我似乎可以在Wordpress/cart/*路径上的任何位置访问它,但不能在Wordpress/*中访问

我在GTM自定义js变量中这样设置cookie:

function() {
  return function(name, value, ms, path, domain) {
    if (!name || !value) {
      return;
    }
    var d;
    var cpath = path ? '; path=' + path : '';
    var cdomain = domain ? '; domain=' + domain : '';
    var expires = '';
    if (ms) {
      d = new Date();
      d.setTime(d.getTime() + ms);
      expires = '; expires=' + d.toUTCString();
    }
    document.cookie = name + "=" + value + expires + cpath + cdomain;
  }
}
使用在每个页面上激发的GTM标记并检查cookie的存在,如下所示:

    <script type="text/javascript">
  var source = '';
  if (window.location.search.indexOf('source=network1') !== -1) {
    source = 'network1';
  } else if (window.location.search.indexOf('source=network2') !== -1) {
    source = 'network2';

  }
  {{setCookieHelper}}('source', source, 2592000000);
</script>

var source='';
if(window.location.search.indexOf('source=network1')!=-1){
来源='network1';
}else if(window.location.search.indexOf('source=network2')!=-1){
来源='network2';
}
{{setCookieHelper}('source',source,2592000000);

任何关于如何避免路径对该cookie如此具体的想法都将非常感谢

因此,在对大量文档进行了漫长的回顾之后,我意识到document.cookie设置cookie路径的方式使用当前页面作为默认页面

例如,如果服务器123.123.123.123使用文件123.123.123.123/folder/test/index.php中的JS设置cookie,则cookie的路径参数将设置为默认值/folder/test/

这是一个问题,因为如果您使用wordpress购物车,因为某些原因正在更改目录,您将无法访问存储在该路径下的Cookie。(例如,如果有人进入表单/文件夹/测试/文件夹/签出/cookie将不再对GTM可见)


希望这对别人有帮助

因此,在对大量文档进行了漫长的回顾之后,我意识到document.cookie设置cookie路径的方式使用当前页面作为默认页面

例如,如果服务器123.123.123.123使用文件123.123.123.123/folder/test/index.php中的JS设置cookie,则cookie的路径参数将设置为默认值/folder/test/

这是一个问题,因为如果您使用wordpress购物车,因为某些原因正在更改目录,您将无法访问存储在该路径下的Cookie。(例如,如果有人进入表单/文件夹/测试/文件夹/签出/cookie将不再对GTM可见)


希望这对别人有帮助

也许GTM是在设置cookie的客户端代码之前运行的?或者,当上次访问的cookie在那里时,这种情况会发生吗?谢谢你的回复。我不认为这是因为它发生在一个过渡的道路上。查看我的编辑:)也许GTM是在设置cookie的客户端代码之前运行的?或者,当上次访问的cookie在那里时,这种情况会发生吗?谢谢你的回复。我不认为这是因为它发生在一个过渡的道路上。查看我的编辑:)