我正在研究一种使用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>
关于如何避免让这条路径如此具体的任何想法都会非常感激。
答案 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)
希望这有助于某人!