我在链接点击时无法传递Google Analytics参数。似乎问题是在选取参数之前打开了新页面。这会导致 httpfox 中的红线"ns 绑定错误"。
从SO和Google看来,解决方案似乎是使用具有1,000ms延迟的setTimeOut。
在Google-Tag-Manager中,我有以下自定义html:
<script>
$('.submit-incident.clearingfix a').click(function(event){
dataLayer.push({
'event':'GAevent',
'eventCategory': 'Report Submit',
'eventAction': 'Link Click',
'eventLabel': 'CTA'
});
});
</script>
我实际上不确定如何集成 setTimeOut,而不会简单地将整个事情延迟 1 秒。
这行不通。
<script>
setTimeOut($('.submit-incident.clearingfix a').click(function(event){
dataLayer.push({
'event':'GAevent',
'eventCategory': 'Report Submit',
'eventAction': 'Link Click',
'eventLabel': 'CTA'
});
});),1000);
</script>
即使它这样做了,对我来说也没有意义。我如何将页面打开延迟一秒钟,以便Google Analytics有足够的时间来获取dataLayer参数?
一种可能的方法:
$('.submit-incident.clearingfix a').click(function(event){
dataLayer.push({
'event':'GAevent',
'eventCategory': 'Report Submit',
'eventAction': 'Link Click',
'eventLabel': 'CTA'
});
var target = this.href;
setTimeout(function() { location.assign(target); }, 1000);
event.preventDefault();
});
换句话说,您不是延迟整个事件处理程序的调用(这确实没有意义 - 您只需要等待push
通过),而是延迟页面更改过程(设置location.assign
调用超时)。