W Google Universal Analytics występuje wyjątek typu działania
ga('send', 'exception', {
'exDescription': 'DatabaseError'
});
Spodziewałem się, że będę mógł po prostu przejść do konsoli Google Analytics i znaleźć raport wyjątków na tym samym poziomie co „zdarzenia”, ale nigdzie go nie widać.
Interfejsy API systemu Android i iOS mówią, Crash and exception data is available primarily in the Crash and Exceptions report
ale nie mogę znaleźć żadnego raportu o tej nazwie.
źródło
Zapoznałem się z przewodnikiem Simon_Weaver, aby zrobić niestandardowy raport kilka kroków dalej i stworzyłem dość kompletny raport wyjątków niestandardowych Google Analytics. Pomyślałem, że warto się nim podzielić, więc umieściłem go w „Galerii rozwiązań” GA.
Mój szablon: raport o wyjątkach Google Analytics
Oto zdjęcie wyniku końcowego:
źródło
Chciałem tylko trochę rozwinąć doskonałą odpowiedź @Simon_Weaver, aby dostarczyć raporty o błędach z kilkoma dodatkowymi szczegółami:
ga()
została zdefiniowana przed próbą wywołania (ponieważ błąd może zostać wyzwolony przed załadowaniem biblioteki Analytics).window.onerror
wywołania zwrotne./** * Send JavaScript error information to Google Analytics. * * @param {Window} window A reference to the "window". * @return {void} * @author Philippe Sawicki <https://github.com/philsawicki> */ (function (window) { // Retain a reference to the previous global error handler, in case it has been set: var originalWindowErrorCallback = window.onerror; /** * Log any script error to Google Analytics. * * Third-party scripts without CORS will only provide "Script Error." as an error message. * * @param {String} errorMessage Error message. * @param {String} url URL where error was raised. * @param {Number} lineNumber Line number where error was raised. * @param {Number|undefined} columnNumber Column number for the line where the error occurred. * @param {Object|undefined} errorObject Error Object. * @return {Boolean} When the function returns true, this prevents the * firing of the default event handler. */ window.onerror = function customErrorHandler (errorMessage, url, lineNumber, columnNumber, errorObject) { // Send error details to Google Analytics, if the library is already available: if (typeof ga === 'function') { // In case the "errorObject" is available, use its data, else fallback // on the default "errorMessage" provided: var exceptionDescription = errorMessage; if (typeof errorObject !== 'undefined' && typeof errorObject.message !== 'undefined') { exceptionDescription = errorObject.message; } // Format the message to log to Analytics (might also use "errorObject.stack" if defined): exceptionDescription += ' @ ' + url + ':' + lineNumber + ':' + columnNumber; ga('send', 'exception', { 'exDescription': exceptionDescription, 'exFatal': false, // Some Error types might be considered as fatal. 'appName': 'Application_Name', 'appVersion': '1.0' }); } // If the previous "window.onerror" callback can be called, pass it the data: if (typeof originalWindowErrorCallback === 'function') { return originalWindowErrorCallback(errorMessage, url, lineNumber, columnNumber, errorObject); } // Otherwise, Let the default handler run: return false; }; })(window); // Generate an error, for demonstration purposes: //throw new Error('Crash!');
Edycja: Jak należycie zauważył @Simon_Weaver, Google Analytics ma teraz dokumentację dotyczącą śledzenia wyjątków (do której powinienem dołączyć w mojej oryginalnej odpowiedzi - przepraszam, błąd debiutanta!):
źródło
appName
iappVersion
w wysyłanym obiekcie wyjątku? Wierzę, że trzeba ustawić te wyraźnie zobaczyć tutajOto, co wymyśliłem, więc nie musisz wszędzie umieszczać kodu. Po prostu dodaj
new ErrorHandler();
do każdego pliku .js. Zrobiono to dla rozszerzenia Chrome, ale myślę, że powinno działać wszędzie. Implementuję rzeczywisty element ga () w osobnym pliku (stąd app.GA), ale możesz go tu też upiec.źródło
Możesz teraz znaleźć widok „Awarie i wyjątki” w sekcji Zachowanie (jeśli usługa została utworzona jako „aplikacja mobilna” w Google Analytics).
źródło