Skip to main content
  1. Blog Post/

Cómo funciona el setDomainName y la medición entre dominios

5 min · 1153 words
Table of Contents

Todos sabemos que Google Analytics permite la medición entre dominios,  pero las instrucciones para hacer esta medición han ido cambiando con el tiempo. Para la realizar la medición entre dominios ( cross-domain tracking ),  se utilizan las siguientes funciones:

    Hay 2 tipos de escenarios posibles, la medición entre subdominios, y las medición entre dominios diferentes:

    Medición entre subdominios

    Podríamos imaginar que tengamos varias versiones de nuestra web por paises y para cada país un subdominio, por ejemplo: spain.midominio.com , ireland.midominio.com , france.midominio.com, etc.

    Para realizar esta medición, no es más que necesaria la utilización del _setDomainName(), para fijar el dominio sobre el cual se han fijar las cookies.

    Debemos saber que la valided de una cookie, se hace de forma descendente, vamos a intentar explicarlo:

    Si fijamos una cookie a "midominio.com", cualquier subdominio que cuelgue de el podrá leer y modificar esas cookies, pero no sucedera a la inversa. Ejemplo:
    _setDomainName("midominio.com") , spain.midominio.com, ireland.midominio.com, van a poder compartir esa cookie.
    _setDomainName("spain.midominio.com") , midominio.com , www.dominio.com, ireland.midominio.com, no van a poder leer esa cookie por lo tanto Google Analytics creará una cookie nueva, duplicando con ello nuestras visitas.

    Por esto mismo en la medición entre subdominios se utiliza en todos ellos el código por defecto y utilizando como setDomainName el nombre de dominio, para que tanto el dominio, cómo cualquier otro subdominio puedan compartir las cookies.

    Medición entre dominios

    La otra opcion es que tengamos nuestra web separada en diferentes dominios, por ejemplo: tienda.com , shop.com , boutique.com .
    Para hacer esta medición debemos realizar los siguientes pasos:
    Fijar el setDomainName a cada uno de los dominios.
    Fijar el _setAllowLinker a true, para que el código de Google Analytics nos permita compartir los datos de las cookies entre nuestros dominios.
    Utilizar las funciones _link() y _linkByPost() para pasar las cookies entre nuestros dominios.

    Para poder entender porqué es necesario hacerlo así debemos saber cual es la función de setDomainName, esta función se encarga de:

      Si no se utiliza el setDomainName el código de Google Analytics lo fija de forma automática, lo que hace es coger el nombre de dominio actual y elimina la cadena "www." si esta estuviese presente, el código sería el siguiente:

      var d=document.domain;
      if (d.substring(0,4)=="www.") {
      d=d.substring(4,d.length);
      }
      _gaq.push(['_setDomainName', d]);

      Hace esto porque normalmente www.domino.com y dominio.com son la misma página, y recordemos que si se fijase la cookie a www.dominio.com no se podrían leer las cookies desde dominio.com, con lo que las cookies se resetearían continuamente.

      Me gustaría comentar que no es lo mismo utilizar "dominio.com" o ".dominio.com" ,  en ambos casos las cookie se fijaría de forma correcta, pero el hash de dominio sería diferente, por lo cual estaríamos de nuevo en el caso de que se reseteasen las cookies. Porqué comento esto, imaginemos que hasta ahora no estabamos utilizando el setDomainName , y cambiamos el código y ponemos que el setDomainName sea ".dominio.com", estaríamos perdiendo el tracking de todos los usuarios, porqué se resetearinas las cookies de todas las visitas al no coincidir el hash de dominio.

      Bien ahora ya tenemos nuestros tags puestos correctamente, pero de esta manera cada dominio tendrá su propias cookies, cómo hacemos para que google analytics sepa que se trata de los mismo usuarios, para ellos lo que hacemos es pasar el valor de las cookies entre los dominios, etiquetando con un onclick los enlaces de tienda.com que vayan a shop.com , y a la inversa.
      Por lo tanto en tienda.com, haríamos lo siguiente

      <a href="http://www.shop.com/contact.html"
      onclick="_gaq.push(['_link', 'http://www.shop.com/contact.html']); return false;">Contact shop.com</a>

      Para saber que funciona, a hacer click deberemos ver los valores en las cookies añadidos a la url de destino como parámetros.

      Si por ejemplo el enlace se realizase a través de un formulario pondríamos el siguiente onsubmit en el:

      <form action="http://www.shop.com/checkout.php" name="f" method="post" onsubmit="_gaq.push(['_linkByPost', this]);">...</form>

      Ahora queda configurar los perfiles necesarios para poder ver los datos de los dominios de forma agregada y de forma individual por cada dominio.

      1. Por lo que crearemos un perfil RAW , sin ningún tipo de filtro.

      2. Crearemos otro perfil donde añadiremos a la URL el dominio que realiza la petición, de esta manera si tuviesemos páginas iguales en varios dominios, podremos diferenciarlas, este será el perfil que utilizaremos para ver los datos agregados de todos nuestros sites.
      Este sería el filtro que deberíamos crear para conseguir esto:

      3. Y por último crearíamos un perfil nuevo por cada dominio diferente, para poder ver los datos de cada uno de ellos, para ello crearemos un filtro por cada dominio diferente y se lo aplicaremos a los diferentes perfiles.


      Y con esto tendríamos todo montado para nuestras mediciones entre dominios, si tienes alguna duda deja un comentario ;)