我目前正在玩谷歌分析事件跟踪,可以看到一些浮动的插件,但我试图看看我是否可以把一些非常通用和易于使用的东西放在一起.
<script> $("form").submit(function(){ _gaq.push(['_trackEvent',$(this).attr('name'),'Form Submission','The-form-name',false]); }); </script>
我想如果我有一些这些简单的代码片段在我的页面上挥之不去,这样我可以跟踪表单的提交时间,并通过利用表单名称和表单ID,我可以看到它们何时被提交.
我想我可以使用这种简单的方法来跟踪链接点击等,但只是想知道是否有人之前做过这样的事情,并且对于这是否是使用Google Analytics跟踪事件的可靠方法有任何建议.
我之所以这样做是因为我会在网站上动态生成所有内容,并且大多数标签都会有id与它们相关联,所以我不需要通过使用onclick将它们直接添加到html中事件处理程序和类似的东西.
谢谢你的建议
解决方法
您可以这样做,但是您必须延迟表单提交,以便为trackEvent留出时间.否则表格将立即提交,以防止trackEvent完成并被发送出去.这同样适用于跟踪点击次数.
这应该工作:
<script> $("form").submit(function(e){ e.preventDefault();//prevent the form from being submitted _gaq.push(['_trackEvent',false]); $(this).off('submit');//prevent 'this' jquery submit event recursion setTimeout(function(){//delay the form submit e.currentTarget.submit();//submit form after the track event had time to complete },350);//350 ms }); </script>
注意:虽然这可以保证您的表单将被提交,但并不保证会在100%的时间内跟踪提交事件.但200ms 350ms应该足够好,可以正确跟踪90%以上. (编辑:我考虑了高延迟蜂窝网络而延迟了延迟).
在低延迟连接上的表单onsubmit的这个特定示例中.最完整的Google广告跟踪器脚本可以提供4个请求,每个请求的范围为30-40毫秒(低于指示的350毫秒延迟).从技术上讲,您只需要考虑发送到Google的第一个请求的延迟,以便将事件保存在Google Analytics中.
确保100%跟踪事件的唯一另一种方法是使用Hit Callback,如:https://stackoverflow.com/a/12461558/1647538所述但是,Hit Callback的警告是它可以阻止提交表单,因此Hit Callback方法在这里并不可行.