2013-10-02 80 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"); 
    } 
});