我跟踪一个网站,刊载我的一个项目,这个代码在下载按钮点击:跟踪下载按钮点击与分析利用事件
function trackDownload(link) {
try {
_gaq.push(['_trackEvent', 'Downloads', 'Click', 'Setup executable']);
setTimeout('document.location = "' + link.href + '"', 100);
} catch (err) {}
return false;
}
而且按钮的东西为:
<a href="files/setup.exe" onclick="return trackDownload(this);">Download</a>
因此,当用户点击它时,会将事件推送到Google Analytics,然后用户被重定向到该文件。
这也适用于外部链接跟踪,没有区别。
现在我的问题。 我可以确定在用户重定向之前,Analytics事件是“已处理”的吗?如果不是,那么重定向会导致事件丢失?目前正在跟踪事件,但我无法确定它们是全部是。
我读书,我也可以尝试的东西有点不同,推重定向功能到分析队列:
_gaq.push(function() { document.location = link.href; });
但是,如果这个工程现在还不清楚,或者如果它只是相当于以前的一个。实际上,here据说“调用_gaq.push [...]执行命令,因为它们被按下”“。
也许我可以在我发布的'_gaq'中推送重定向,然后在'catch'块中重复一遍,并在更迟的'setTimeout'(一两秒)中重复。所以如果'_gaq'出现问题,我可以肯定用户迟早会被重定向。 –
我同意延迟的setTimeout是处理不分析案例的方式。但是,我认为一两秒钟可能会快一点。另外,我只注意到catch块是不需要的 - 我会更新我的答案。 –
事实上,我不记得为什么我把这个'try..catch'块:)关于超时:我可以设置一个更长的一个(5秒)和点击时按钮上的微调。所以更快的用户不会有这种感觉,没有什么事情发生...... –