Weten jullie hoeveel javascript foutmeldingen je bezoekers op je site krijgen? Nee? Dan wordt het nu tijd om dat in kaart te gaan brengen. Eduardo Cereto heeft met een simpele techniek deze javascript fouten in een Google Analytics meting geplaatst.
De code
Dit is de code die hij hiervoor geschreven heeft:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(
['_setAccount','UA-XXXXX-X'],
['_trackPageview']
);
function track_error_event (exception) {
_gaq.push(['_trackEvent',
'Exception ' + (exception.name || 'Error'),
exception.message || exception,
document.location.href
]);
}
</script>
<script type="text/javascript">
try{
//Javascript Code goes here
//Raises Division by zero exception
var i = 1/0;
}
catch(e){
track_error_event(e);
}
</script>
Met de try-catch constructie kun je de fouten in het try blok afvangen en doormeten. Zo zou je dit rondom de Google Analytics ecommerce code kunnen plaatsen.
Wanneer je alle javascript foutmeldingen wil meten kun je de code eenvoudiger maken op deze manier:
<script type="text/javascript">
window.onerror = function (msg, url, line)
{
_gaq = _gaq || [];
_gaq.push(['_trackEvent', 'Error Log', msg, url, line]);
};
</script>
Door deze code in een los <script> blok te plaatsen worden alle javascript foutmeldingen doorgegeven aan Google Analytics. Het aparte script blok is nodig zodat kapotte code dit script niet kan blokkeren.
De rapportage
Als het goed is (of juist niet) krijg je in het gebeurtenissen rapport bijvoorbeeld de volgende meldingen:
Als je doorklikt op de meldingen kun je ook de pagina’s zien waar deze meldingen opgetreden zijn.
Persoonlijk vind ik het handig om zo het Google Analytics e-commerce script door te meten. Met de nieuwe asynchrone code treden hier wat vaker fouten in op. Dat komt door het simpele feit dat Google in het nieuwe script gebruik maakt van de quote (‘) en niet meer de aanhalingstekens (“), en dat terwijl het niet uitmaakt welke je gebruikt (omzetten kan dus ook). Wanneer je dan producten verkoopt met een quote er in breekt het meetscript:
<script type="text/javascript">
_gaq.push(['_addItem', '1234', 'ABCD', 'Villa d'Oro', 'Cool', '11.99', '1']);
</script>
De quote in de productnaam zorgt voor een javascript foutmelding en de hele transactie wordt niet meer gemeten. Of de quotes rondom de argumenten in de functieaanroep moeten vervangen worden door aanhalingstekens. Of de quote in de productnaam moet vervangen worden door bijvoorbeeld een streepje (-).
Reacties (8)