2016-11-30 84 views
1

我正在使用GTM容器来选择性显示跟踪像素的跟踪系统,但我遇到了一些障碍。GTM Cookie变量值清除Cookie仍然设置

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

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

有关如何解决此问题的任何想法或建议将非常感谢!

更新:我发现问题出在我的GTM如何读取cookie。似乎将它从我的Wordpress /购物车路径中转移到我的Wordpress /结帐路径的过渡。我想知道如何让cookie不那么具体,以便它不会被限制到这样一个离散的路径。看来,目前我可以在任何地方访问它的WordPress /车/ *路径上而不是在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那么具体将非常感激的任何想法。

+0

也许GTM在设置cookie的客户端代码之前运行?或者,在上次访问时,cookie是否已经发生? –

+0

感谢您的回复。我不认为这是因为它发生在路径上的转变。看看我的编辑:) – itchyspacesuit

回答

0

因此,经过漫长而漫长的文档审查后,我意识到document.cookie设置cookie路径的方式使用当前页面作为默认页面。

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

这是一个问题,因为如果您使用的是由于某种原因正在更改目录的wordpress购物车,您将无法访问存储在该路径下的cookie。 (例如,如果你有人去表格/文件夹/测试/文件夹/结帐/ GTM不再可见该cookie)

希望这可以帮助别人!