【发布时间】:2016-11-30 01:07:45
【问题描述】:
我正在开发一个使用 GTM 容器选择性地显示跟踪像素的跟踪系统,但我遇到了一些障碍。
设置基本上依赖于客户端 cookie,该 cookie 在用户第一次访问站点时根据 URL 字符串中的参数设置。目前这部分工作正常,cookie 被设置为适当的值。
问题在于,为获取第一方 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>
任何关于如何避免该 cookie 的路径如此具体的想法将不胜感激。
【问题讨论】:
-
也许 GTM 在设置 cookie 的客户端代码之前运行?或者当 cookie 存在于以前的访问中时,这是否会发生?
-
感谢您的回复。我不认为这是在路径过渡时发生的。查看我的编辑:)
标签: cookies google-tag-manager