在我正在处理的网站上,跟踪代码的主要部分位于页面的底部(不是我选择的展示位置,而是它的位置)。该代码是主要的:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
_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);
})();
在一个特定页面上,我想跟踪在页面加载时自动启动的事件。我在页面顶部的代码(因此在与上述代码不同的标签中)的内容是:
function getFile()
{
if("<%= getFileURL()%>".length>0){
window.location.href = "<%=getFileURL() %>";
var _gaq = _gaq || [];
_gaq.push(['_trackEvent', 'Downloads', '<%= getFileURL()%>']);
}
}
但它似乎没有跟踪事件。我确定我在这里做错了,我可以做一些猜测,但对我来说,确切地知道我需要改变的地方还不够明确。
答案 0 :(得分:1)
您需要延迟重定向。以下这样的事情在过去对我有用:
function getFile() {
var href = "<%=getFileURL() %>";
if(href){
_gaq.push(['_trackEvent', 'Downloads', href]);
setTimeout("gotoUrl('" + href + "')", 100);
}
};
function gotoUrl(href) {
window.location.href = href;
};
答案 1 :(得分:1)
您的代码有两个问题:
_gaq
内定义了本地getFile()
,因此您不会与实际的Google分析代码进行对话。尝试:
function getFile() {
var href = "<%=getFileURL() %>";
if (href.length > 0) {
_gaq.push(['_trackEvent', 'Downloads', href]);
setTimeout(function(){window.location.href = href}, 100);
}
}