Una mirada diferente a Google Analytics, enfocada a los desarrolladores. Esta fue mi presentación en Google DevFest Montevideo, Uruguay el 25 de octubre de 2013.
12. Eventos
Permite registrar la interacción del usuario con
determinados elementos de la web
Ejemplos
• Ajax Callbacks
• Descargas de archivos
• Tracking de enlaces, por ejemplo de salida
• Interacción con diferentes botones
• Cualquier otro evento JS
13. Eventos
Tienen 4 parámetros:
• Categoría
• Acción
• E.queta
• Valor
Estructura del código Javascript (versión clásica)
_gaq.push(['_trackEvent','category','ac.on','label_opt', value_opt]);
Estructura del código Javascript (versión universal analy8cs)
ga('send','event',category, ac.on, label_opt, value_opt);
16. Tracking de Errores JS
¿Por qué?
• Demasiados navegadores
• Somos devs (Los peores testers del mundo)
!
• Para el backend hay logs, para el frontend no
• Lleva 5 minutos implementarlo!
!
!
17. Tracking de Errores JS
¿Cómo?
• Capturando el evento window.onerror
window.onerror = function(message, url, linenumber) {
alert("JavaScript error: " + message + " en línea " +
linenumber + " de " + url);
}
• Recibe 3 argumentos:
message: Mensaje de error o excepción
url: La url del archivo que con.ene el error
linenumber: La línea donde ocurrió el error
18. Tracking de Errores JS
¿Cómo lo registramos en Analy<cs?
• Lanzando un evento con Google Analy.cs
!
Version clásica (ga.js)
!
window.onerror = function(message, url, linenumber) {
! _gaq.push(['_trackEvent','JS ERROR',message,url + ':' + linenumber]);
}
!
!
Version universal analy8cs (analy8cs.js)
window.onerror = function(message, url, linenumber) {
ga('send','event', 'JS ERROR',message,url + ':' + linenumber);
}
19. Tracking de Errores 404
¿Cómo lo registramos en Analy<cs?
Con una pág. 404 propia podemos saber
desde donde viene el link mal apuntado.
!
Ejemplo
window.onload = function(){
!var referrer = document.referrer!=""?"Referrer:"+document.referrer:null;
gaq.push(["_trackEvent","ERROR 404”,"Not found:"+location.href,referrer]);
}!
!
20. Tracking de Errores 500
¿Cómo lo registramos en Analy<cs?
Con una pág. 500 propia debemos:
• Retornar el error en el html como un String en js
• Usar ese String como parámetro del evento
!
Ejemplo
window.onload = function(){
!var referrer = document.referrer!=""?"Referrer:"+document.referrer:null;
var data = ["_trackEvent",
"ERROR 500”,
!
”<?php echo ($error_data); ?>”,
referrer];
!
_gaq.push(data);
!
}
21. Tracking de Errores
VENTAJAS
• Podemos ver desde donde vino el usuario
• Cual fue el error
• En que archivo y línea
• Con que Browser, Versión y S.O.
!
!
!
#PRICELESS
27. GAP.js
¿Qué es?
Wrapper en Javascript, autodetecta la versión,
provee una API única.
Ventajas
!• Evitamos manejar la sintaxis de las 2 versiones
• Cambiar de versión es transparente
• El trackeo de errores es MUY fácil!
• No depende de ninguna librería (ej. jQuery)
• Es crossbrowser
28. GAP.js
Ejemplos:
-‐ Asignando un evento a un link ( crossbrowser )
Código Javascript
!
!GAP.track.addListener(document.getElementById("btn"),'click',!
function(){!
! GAP.track.event('buttons','btn','top-menu',1);!
});!
!
!
!
29. GAP.js
Ejemplos:
-‐ Asignando un evento a un link con data-‐akributes
!
Código Javascript
GAP.track.element('click',document.getElementById("link"));!
!
!
!Código HTML
<a href="http://aa.com" data-ga-category="Event-cat" data-ga!action="my action" data-ga-label="some label" data-ga!value="1" id=”link”>my link!</a>
!
30. GAP.js
Ejemplos:
-‐ Asignando un evento a todos los elementos con
data-‐akributes u.lizando jQuery
!Código Javascript
!
$("[data-ga-category]").each(function(e){!
!
GAP.track.element("click",this);!
});!
!
!
!Código HTML
<a href="http://aa.com" data-ga-category="Event-cat" data-gaaction="my action" data-ga-label="some label" data-gavalue="1" id=”link”>my link!</a>