当有人填写表单并点击提交时,我需要跟踪Google Analytics中的事件.出现的结果页面是标准的仪表板类型页面,因此为了跟踪该页面上的事件,我必须在URL中传递事件,然后读取URL并输出谷歌分析事件跟踪javascript代码基于它.这是一个经常被加入书签的页面和重新加载,点击回来的页面等等.所以我真的不会在URL中传递跟踪事件并搞砸了分析.
相反,我更愿意在页面上使用以下形式执行以下jQuery代码:
$('#form_id').submit(function() {
_gaq.push('_trackEvent', 'my category', 'my action');
});
Run Code Online (Sandbox Code Playgroud)
我担心上面的问题是,我将错过一些被跟踪的事件,因为在调用javascript后,浏览器将立即提交表单并转到另一个网页.如果没有及时加载utm.gif跟踪图像,我会错过这个事件:(.
我的恐惧是否合理?我如何确保不会错过被跟踪的事件?
我希望使用事件跟踪来记录对另一个网站的特定链接类型的点击.我正在使用jQuery,我目前的代码是:
$('a.website').click(function(event) {
var href = $(this).attr('href');
try {
_gaq.push(['_trackEvent', 'website', 'click', href]);
} catch(err) {}
});
Run Code Online (Sandbox Code Playgroud)
然而,从其他网站看到引荐信息后,我也不敢相信这是准确跟踪点击,可能是因为_gaq.push是异步的,并请求的浏览器导航到URL之前尚未收到,并终止任何JavaScript的运行当前页面.
有没有办法检测到该_gaq.push功能是否已成功完成,所以我可以在记录事件后使用event.preventDefault()和document.location导航到该链接?
我可以发送Google Analytics事件并立即离开,就像这样吗?
_gaq.push(['_trackEvent', 'foobar']);
window.location = "/";
Run Code Online (Sandbox Code Playgroud)
如果谷歌分析在调用它时会执行某种AJAX请求,那么无论我们是否留在页面上它都应该有效.我担心的是,它似乎有时只是将数据放入数组中以供以后处理.我认为这只是最初发生的,当谷歌分析还没有时间进行初始化时,但我想确定这一点.
我用GA调试进行了测试,它看起来有效,但我不确定这是否意味着它总是取决于加载速度而不是.
我可以这样做,永远不会丢失任何事件吗?