我正在尝试在联系表单上设置自定义变量,以跟踪表单提交成功的时间。但是,在我的Google Analytics分析页面中,自定义变量未显示在访问者中 - >自定义变量。据我所知,刷新需要几个小时,但已经过了一周。所以,我的基本假设是它不起作用。我正在使用async _gaq.push()来实现这一目标。基本上,我在我的ajax函数调用之后设置自定义变量以提交联系表单,如果成功,我设置了以下内容:
_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']);
是否需要在_gaq.push(['_setCustomVar', 1, 'contact', 'success', 3]);
之后调用_gaq.push(['_trackPageview']);
才能“注册”_setCustomVar调用,我可以调用{{1}}在通过javascript加载DOM之后不止一次(天气它是关闭事件或回调ajax函数)。谢谢你们。
答案 0 :(得分:4)
必须在发送给Google的请求之前设置setCustomVar。它没有设置自己的请求;它只是将变量排队,以便在该页面会话中随时发送。
如果在页面浏览后设置了,并且在向Google Analytics发送任何请求之前页面发生了更改(例如进行了综合浏览或事件跟踪调用),那么Google将永远不会收到有关您自定义的数据变量。
因此,如果您无法在初始网页浏览之前设置变量,则需要生成第二次网页浏览。或者,您可以进行Google分析事件跟踪调用,该调用也可以将您的自定义变量带到Google Analytics。
所以,你需要做的是在你的setCustomVar之后直接设置另一个调用来做这样的事情:
_gaq.push(['_setCustomVar', 1, 'contact', 'success', 3]);
_gaq.push(['_trackEvent', 'contact', 'success',"", 0, true]);
答案 1 :(得分:0)
您是否尝试过_setVar
?我们仍在使用旧的跟踪方法,但这是我们使用的代码:
try {
var pageTracker = _gat._getTracker("UA-xxxxxxx-x");
pageTracker._setVar('custom value goes here');
pageTracker._trackPageview();
} catch(err) {}