2010-12-14 69 views
2

我正在尝试在跟踪表单提交成功的联系表单上设置自定义变量。但是,在我的谷歌分析页面中,自定义变量未显示在访问者 - >自定义变量中。我知道它需要几个小时才能刷新,但已经过了一个星期。所以,我的基本假设是它不起作用。我正在使用async _gaq.push()来实现此目的。基本上,我设置自定义变量我的ajax函数调用后提交的联系方式,并在回调函数,如果成功,我设置如下:Google Analytics - 设置自定义变量失败!

_gaq.push(['_setCustomVar', 1, 'contact', 'success', 3]); 

这是我的谷歌分析代码的头部。

var _gaq = _gaq || []; 
_gaq.push(['_setAccount', 'UA-xxxxx-x']); //my google analytic api key 
_gaq.push(['_trackPageview']); 
(function() { 
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
})(); 

其实一个更好的问题是,没有一个_gaq.push(['_trackPageview']);需要为它“注册”的_setCustomVar呼叫被一个_gaq.push(['_setCustomVar', 1, 'contact', 'success', 3]);后调用,并为它确定为我DOM是通过加载之后调用不止一次_gaq.push(['_trackPageview']);更多JavaScript(天气它关闭事件或回调ajax函数)。多谢你们。

回答

4

setCustomVar必须被发送到谷歌的请求之前设定。它没有设置它自己的请求;它只是将该变量随时在该页面会话中随时发送。

如果设置后的浏览量,以及任何请求之前的页面更改发送到谷歌分析(如制作网页浏览或事件跟踪调用),那么谷歌将永远不会收到您的自定义变量中的数据。

因此,如果您在初始浏览量之前无法设置变量,则需要生成第二个浏览量。或者,您可以进行Google Analytics事件跟踪调用,该调用也可以将自定义变量带到Google Analytics中。

所以,你需要做的是直接在setCustomVar设置后再次调用做这样的事情:

_gaq.push(['_setCustomVar', 1, 'contact', 'success', 3]); 
_gaq.push(['_trackEvent', 'contact', 'success',"", 0, true]); 
+0

我可以做_gaq.push(['_ setCustomVar',1,'contact','success',3],['_trackEvent','contact','success']); – kjy112 2010-12-14 19:39:26

+0

是的,那有效。 – Yahel 2010-12-14 19:50:36

+0

也从我读的谷歌解析他们提出_gaq.push()听起来像一个Ajax调用服务器,因此,我认为它会每次更新_gaq.push(); – kjy112 2010-12-14 19:51:24

0

您是否试过_setVar?我们仍在使用跟踪的老方法,但是这是我们使用的代码:

try { 
var pageTracker = _gat._getTracker("UA-xxxxxxx-x"); 
pageTracker._setVar('custom value goes here'); 
pageTracker._trackPageview(); 
} catch(err) {} 
+0

_setVar的作品,但我想用setCustomVar。实际上可以调用pageTracker._trackPageview();不止一次? – kjy112 2010-12-14 18:11:49

相关问题