Skip to main content
  1. Blog Post/

Trackeando los comentarios en Disqus with Google Tag Manager

2 min · 1233 words
Table of Contents

Vamos a empezar una serie de posts regulares sobre cómo medir cosas con Google Tag Manager en Inside-GTM. En este caso vamos a aprender cómo
medir las interacciones de los usuarios en nuestra web, si en ella disponemos del sistema de comentarios Disqus.

Los posts se van a basar en la siguiente estructura:

    Tracking Flow

      Etiqueta, Reglas y Macros

      Disqus necesita disponer de la definición de los callbacks antes de que este sea cargado, es decir deberíamos tenerlo definido, antes de que el script
      este cargado en la página. En muchas situacion esto no es posible por lo que utilizando el propio API de la herramienta vamos a definir los callbacks que se ejecutarán cuando los usuarios hagan un comentario, páginen o cuando se logeen. Lo que vamos a hacer es lanzar un push al dataLayer con la información de la acción del usuario, para después a través de Google Tag Manager poder lanzar un evento.

      Etiqueta

      Reglas

      Tan solo vamos a utilizar una regla, que se va a encargar de lanzar nuestra etiqueta cuando sucedan dos cosas:

        Macros

        Y por último vamos a configurar una macro que nos va a devolver "true" en el caso de que el iframe del widget the Disqus esté disponible y cargado actualmente en el DOM de la página.

        De está forma tan solo nos quedará configurar un tag de evento, y recoger las variables desde el dataLayer para enviar la información necesaria a Google Analytics.

        Código Fuente:

        function()
        {
            // Let's see if disqus embed iframe is available on the DOM, We don't want
            // to fire it in pages where it is not available
            var iframes = document.getElementsByTagName('iframe');
            for (var i = 0; i < iframes.length; i++) {
                     if(iframes[i].src.indexOf('//disqus.com/embed/comments/')>-1)
                   return true;
            }
        }