GTM Cookie变量值在Cookie仍设置时清除

时间:2016-11-30 01:07:46

标签: cookies google-tag-manager

我正在研究一种使用GTM容器来选择性地显示跟踪像素的跟踪系统,但我遇到了一些麻烦。

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

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

任何有关如何排除故障的想法或建议都会非常感激!!!

更新:我发现问题在于我的GTM是如何读取cookie的。似乎从我的Wordpress / cart路径到我的Wordpress / checkout路径的过渡。我想知道如何使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>

关于如何避免让这条路径如此具体的任何想法都会非常感激。

1 个答案:

答案 0 :(得分:0)

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

例如,如果服务器123.123.123.123使用来自123.123.123.123/folder/test/index.php的文件的JS设置cookie,则cookie的path参数将设置为/ folder / test /作为默认值。

这是一个问题,因为如果您因某种原因使用wordpress推车正在更改目录,您将无法访问存储在该路径下的Cookie。 (例如,如果你有人将表单/文件夹/测试转到/ folder / checkout /,GTM将不再显示cookie)

希望这有助于某人!