2013-10-02 56 views
0

我需要从分析报告中过滤内部质量检查人员。有条件地加载谷歌分析

目前,我们在我们的网站代码,显示/隐藏信息的div如果游客是“学生”的角色:

$(document).ready(function(){ 
if($.inArray('student',ENV['current_user_roles']) === 1 && $.inArray('student',ENV['current_user_roles']) === 1){ 
    if ($.inArray('teacher',ENV['current_user_roles']) == -1){ 
    paramArray = window.location.href.split('/'); 
    if (paramArray.indexOf('assignments') == -1 && paramArray.indexOf('settings') == -1 && paramArray.indexOf('grades') == -1 && paramArray.indexOf('quizzes') == -1 && paramArray.indexOf('users') == -1){ 
    var l = $('#right-side-wrapper a.edit_link.button.button-sidebar-wide'); 
    if(l===null || l.length===0){ 
     $('body').removeClass('with-right-side'); 
    } 
    } 
} 
} 
}); 

我不是很精通JavaScript的,但它好像有应该是一个简单的方式重新使用此代码,但包裹谷歌分析里面的跟踪代码,只加载它,如果用户是角色的“学生:”

$(document).ready(function(){ 
if($.inArray('student',ENV['current_user_roles']) === 1 && $.inArray('student',ENV['current_user_roles']) === 1){ 
    if ($.inArray('teacher',ENV['current_user_roles']) == -1){ 
    var _gaq=[["_setAccount","UA-xxxxxxxx-1"],["_trackPageview"]]; 
    (function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1; 
    g.src=("https:"==location.protocol?"//ssl":"//www")+".google-analytics.com/ga.js"; 
    s.parentNode.insertBefore(g,s)}(document,"script")); 
} 
} 
}); 

我尝试了上面的基础上,我在互联网上看到的[https://gist.github.com/benbalter/902140],但是这个实现并没有有意识地滤除非学生。

有什么建议吗?

回答

0

也许你可以尝试使用Cookies。简单地在您的QA工作站上设置Cookie,并且如果设置了Cookie,则Google代码不会被调用。

1

你的代码有一个问题,_gaq将会是一个局部变量,与ga.js.加载的_gaq对象不同。因为_setAccount & _trackPageview不在全球_gaq,所以不应该被追踪。

页面中的任何位置是否有另一组分析代码?

建议:

  • 把代码加载页面页眉谷歌分析,但离开了_setAccount & _trackPageview部分。
  • 在页面加载时,有条件地按_setAccount & _trackPageview命令。

在页头,是这样的:

<script type="text/javascript"> 
var _gaq = _gaq || []; 
(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); 
})(); 
</script> 

并在页面加载

$(document).ready(function(){ 
    if($.inArray('student',ENV['current_user_roles']) === 1){ 
    _gaq.push("_setAccount","UA-xxxxxxxx-1"); 
    _gaq.push("_trackPageview"); 
    } 
});