2016-02-25 90 views
2

我試圖獲取有關我的web應用程序中發生的JavaScript錯誤的信息,並在Google Analytics中使用事件記錄這些錯誤。我這樣做如下:在Google Analytics(分析)中記錄javascript錯誤

$(document).ready(function() { 
    var sendAnalyticsEvent = function(category, action, label) { 
     if (window.ga) { 
      window.ga('send', 'event', category, action, label); 
     } 
    }; 

    window.onerror = function(error) { 
     try { 
      sendAnalyticsEvent('JavaScript Error', error.message, error.filename + ': ' + error.lineno); 
     } catch(e) { 
     } 
    }; 

    $(document).ajaxError(function(e, request, settings) { 
     try { 
      sendAnalyticsEvent('Ajax Error', settings.url, e.result); 
     } catch(e) { 
     } 
    }); 
}); 

這是成功觸發的事件(分析)例如:

Google Analytics

然而,當我點擊進入「JavaScript錯誤」它不給我任何其他信息,例如應該使用上面的代碼發送的錯誤消息。

任何想法,爲什麼這不是與錯誤一起發送錯誤消息?

編輯

原來我被錯誤地宣告window.onerror功能。以下正常工作:

window.onerror = function (message, source, lineno, colno, error) { 
    try { 
     sendAnalyticsEvent('js error', message, source + ': ' + lineno); 
    } catch(e) { 
    } 
}; 

回答

2

你發送錯誤信息的事件標籤的尺寸,但是該報告是在看事件類別維度。如果你點擊事件標籤,你應該看到它。

這就是說,爲什麼不使用exception tracking而不是事件跟蹤來衡量呢?異常跟蹤完全針對此用例構建。

+0

這是問題所在,當我點擊它時,錯誤沒有出現,它沒有被記錄。 – lisburnite

+0

你有什麼試圖[調試](https://developers.google.com/analytics/devguides/collection/analyticsjs/debugging)這個?你怎麼知道你實際上發送了正確的數據?沒有更多信息,任何人都無法提供幫助。根據您在問題中所展示的內容,我的建議應該可行。 –

+0

我已經設法得到這個工作,我沒有正確地聲明window.onerror方法,我會用我的解決方案編輯這個問題,但是我會相信你正確的答案,因爲日誌本身應該完成分析異常跟蹤 – lisburnite

1

在你遇到的問題是在$(document).ready()中聲明window.onerror(),它只會在jQuery初始化後捕獲錯誤。你需要儘早申報。

添加以下內容<head>

<script> 
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
})(window,document,'script','//www.google-analytics.com/analytics.js','_watchdog'); 

_watchdog('create', 'UA-xxxxxxx-x', 'auto'); 

window.onerror = function(msg) { 
    _watchdog('send', 'exception', { 'exDescription': msg }); 

    _watchdog('send', 'event', { 
    eventCategory: 'javascript', 
    eventAction: 'error', 
    eventLabel: msg, 
    transport: 'beacon' 
    }); 
} 
</script> 

之後,你將開始接收與下「的JavaScript」類別「錯誤」類型的事件。

不幸的是,在Event Tracking,你的錯誤信息將被limited by 500 Bytes,所以你將不能夠正確理解一個問題,但是你會知道事情錯了:)

莫詳細的錯誤使用Exception Tracking

相關問題