
рдЗрддрдирд╛ рд╕рдордп рдкрд╣рд▓реЗ рдирд╣реАрдВ рд╣реИ рдХрд┐ Habr├й рдкрд░ рдПрдХ рдЖрд░реНрдЯрд┐рдХрд▓ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдЯреНрд░рд┐рдХ-рдЖрдЙрдЯ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдПрдХрддреНрд░рд┐рдд рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рдореЗрд╢рд╛ рдЗрддрдиреА рд╕рд╛рд░реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХрдИ рд▓реЛрдЧ Google Analytics рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рдиреЗ рджрд╛рдврд╝реА рд╡рд╛рд▓реЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдореИрдВ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред
рд╕рд╛рдЗрдЯ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд Google Analytics (рдЗрд╕рдХреЗ рдмрд╛рдж рдмрд╕ рдЬреАрдП) рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкрд╣рд▓реА рдЪреАрдЬрд╝ рд╣реИ, рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдорд╛рдирдХ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ:
<script> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXXX']); _gaq.push(['_trackPageview']); (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>
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣
рдХрд┐рд╕реА рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рднреА рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ,
рдЕрд░реНрдерд╛рддреН, рд╕рд┐рд░ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рднреА рдХреЛ рдКрдкрд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП:
<script> var _gaq = window._gaq || []; window.onerror = function(msg, url, line) { var preventErrorAlert = true; _gaq.push(['_trackEvent', 'JS Error', msg, navigator.userAgent + ' -> ' + url + " : " + line, 0, true]); return preventErrorAlert; }; </script>
preventErrorAlert - рд╕рдЪ рд▓реМрдЯрдирд╛, рд╣рдо IE рдФрд░ рдУрдкреЗрд░рд╛ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╖реНрдЯрдкреНрд░рдж рдЦрд┐рдбрд╝рдХреА рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВред
рд╕рдВрджреЗрд╢ - рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ред
url - рд╡рд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЬрд┐рд╕рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдИред
рд▓рд╛рдЗрди - рдХрд┐рд╕ рд▓рд╛рдЗрди рдкрд░ рддреНрд░реБрдЯрд┐ рд╣реБрдИред
navigator.userAgent - рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреЗрдЯрд╛ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХреЗ рдХрд┐ рдХрд╣рд╛рдВ рдЦреЛрджрдирд╛ рд╣реИред
рдЕрдВрддрд┐рдо рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ (
рдХреЛрд░рдЬрд╝рд┐рдХ рджреНрд╡рд╛рд░рд╛ рдпрд╛рдж рджрд┐рд▓рд╛рдпрд╛ рдЧрдпрд╛):
0 рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдЖрдк рдмрд╕ рдордЬрд╝реЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдирдВрдмрд░ рдпрд╣рд╛рдБ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕ рдФрд╕рдд рдкрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ, рдЖрдк
рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :)
рд╕рдЪ - рдЙрдЫрд╛рд▓ рджрд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣реА рд╣реИ, рдШрдЯрдирд╛ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдЧрд┐рдирд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдХреА рдореЗрдВ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓рдЧреЗ рд╣реБрдП рд╣реИрдВред
рд▓рдЧрднрдЧ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдСрдирд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ:
- рдХреНрд░реЛрдо 13+
- рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 6.0+
- рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 5.5+
- рдУрдкреЗрд░рд╛ 11.60+
- рд╕рдлрд╛рд░реА 5.1+
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдорд╣рддреНрд╡рдкреВрд░реНрдг рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ, рдпрджрд┐ рдЖрдк jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рдЖрд░рдВрдн рдХреЗ рдмрд╛рдж рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ:
jQuery.error = function (message) { _gaq.push(['_trackEvent', 'jQuery Error', message, navigator.userAgent, 0, true]); }
рдХрд╕реНрдЯрдо рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд░ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИред рдФрд░ рдПрдХ рджреЛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ, рдЬрд╣рд╛рдВ рдкреВрд░реА рдмрд╛рдд рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдлрд┐рд░ рдпрд╣ рдХреИрд╕реЗ рджрд┐рдЦреЗрдЧрд╛ред
рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ GA рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, "рдорд╛рдирдХ рд░рд┐рдкреЛрд░реНрдЯ" рдЪреБрдиреЗрдВ:

рдмрд╛рдИрдВ рдУрд░ рдХреЗ рдкреИрдирд▓ рдореЗрдВ рд╣рдо "рд╕рд╛рдордЧреНрд░реА" тЖТ "рдЗрд╡реЗрдВрдЯ" тЖТ "рдЕрд╡рд▓реЛрдХрди" рдкрд╛рддреЗ рд╣реИрдВ:

рд╣рдо рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЧреНрд░рд╛рдл рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рдиреАрдЪреЗ рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрд╡рдпрдВ рджреЗрдЦрддреЗ рд╣реИрдВ:

рд╣рдо "рдЬреЗрдПрд╕ рдПрд░рд░" рдЗрд╡реЗрдВрдЯ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:

"рдЗрд╡реЗрдВрдЯ рдПрдХреНрд╢рди" рдкрд░ рдЬрд╛рдПрдВ:

рд╣рдо рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛:

рдЬреАрдП рдЗрд╡реЗрдВрдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдХрд╣рд╛рдВ рд╣реИрдВ рдФрд░ рд╡реЗ рдХреИрд╕реЗ рджрд┐рдЦрддреЗ рд╣реИрдВ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрд╕ рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИред