Actualmente Disqus goza de una gran aceptación en muchísimas webs, por lo que resulta realmente interesante el hecho de poder enviar eventos a nuestro perfil de Google Analytics para por ejemplo poder medir una micro-conversión cada vez que alguen usuario de nuestra web nos deja un comentario en nuestro Blog.
Disqus es un sistema de comentarios externo, que se puede añadir por ejemplo a nuestro WordPress fácilmente mediante un simple plugin, y permite a los usuarios de nuestra web realizar comentarios logeando a través de Facebook o de Twitter.
Actualmente Disqus proporciona un sistema de callbacks bastante limitado, este es el listado de callbacks disponible a día de hoy:
callbacks: { preData: [], preInit: [], onInit: [], afterRender: [], onReady: [], onNewComment: [], preReset: [], onPaginate: [], onIdentify: [] }
Pero nosotros vamos a utilizar únicamente, los de nuevos comentarios, paginación, identificación. Para lo cual tendramos que añadir el siguiente código a vuestras páginas.
window.onload = function(){ if(window.DISQUS){ DISQUS.reset({ reload: true, config: function () { this.callbacks.onNewComment = [function(){ ga('send', 'event', 'Disqus', 'New Comment', window.location.href); }]; this.callbacks.onPaginate = [function(e){ ga('send', 'event', 'Disqus', 'Pagination', window.location.href); }]; this.callbacks.onPaginate = [function(e){ ga('send', 'event', 'Disqus', 'User Logged', window.location.href); }]; } }); } };
Os sugiero que copieis el código directamente desde Github para evitar problemas, podéis acceder al código fuente en la siguiente dirección:
La configuración de callbacks se ha de realizar antes de que este se haya cargado, por lo que de forma habitual, deberiamos añadir la configuración antes del código principal de Disqus, sin embargo lo que vamos a hacer es utilizar la función reset para reiniciar Disqus con los nuevos valores. Esto lo hacemos tan solo cuando la página esté totalmenta cargada para ello utilizamos el evento window.onload
El código actualmente lanza los eventos con el formato de Universal Analytics, pero se puede utilizar sin ningún problema un push al objeto _gaq como se ha hecho siempre para lanzar eventos a Google Analytics