Piwik Tracking de subdominios y variables personalizadas

Piwik es un clon gratuíto y opensource de google analytics (o pretende llegar a serlo). Además los desarrolladores se encargan de tratar que las funcionalidades sean lo más semejantes posible a Google Analytics.

La principal ventaja de Piwik, es que se instala en tu servidor. No es una solución online externa, por lo tanto los datos recogidos siempre serán de tu propiedad.

A lo que íbamos, en este post vamos a ver como realizar el tracking de subdominios y variables personalizadas utilizando el código asíncrono de piwik.

Debemos pegar el siguiente código justo antes de la etiqueta </head>

<!-- Piwik START-->
<script type="text/javascript">
var _paq = _paq || [];
(function(){   
var u=(("https:" == document.location.protocol) ?
 "http://estadisticas.librodeapuntes.es/" :
 "http://estadisticas.librodeapuntes.es/");   
_paq.push(['setSiteId', 1]);   
_paq.push(['setTrackerUrl', u+'piwik.php']);
//Punto 1. Permitimos que los subdominios compartan la misma cookie
_paq.push(['setCookieDomain','*.librodeapuntes.es']);
//Punto 2. Sobrescribimos el dominio
_paq.push(['setDomains','*.librodeapuntes.es']);
//Punto 3.Añadimos el dominio al título de las páginas
_paq.push(['setDocumentTitle',document.domain + "/" + document.title]);
//Punto 4. Ejemplo variable personalizada
_paq.push(['setCustomVariable','3','tipo_informacion','librodeapuntes']);
//Enviamos la página vista
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
var d=document,g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript';
g.defer=true;
g.async=true;
g.src=u+'piwik.js';
s.parentNode.insertBefore(g,s);})();
</script>
<!-- Piwik END -->

 

Analizamos los puntos interesantes:

//Punto 1. Permitimos que los subdominios compartan la misma cookie

Para poder trazar a los usuarios en Piwik a lo largo de diferentes subdominios (por ejemplo sub1.librodeapuntes.es y sub2.librodeapuntes.es), debemos asegurarnos que el código escribe bajo la misma cookie. Ello se consigue con la orden:

_paq.push([‘setCookieDomain’,’*.librodeapuntes.es‘]);

//Punto 2. Sobrescribimos el dominio

Análogamente, debemos indicar a Piwik, que queremos que guarde la página bajo el dominio superior.

_paq.push([‘setDomains’,’*.librodeapuntes.es‘]);

//Punto 3.Añadimos el dominio al título de las páginas

Para permitir filtrar mejor los resultados, es importante añadir el subdominio al título de las páginas. Ello hace que las páginas se vean como“sub1.librodeapuntes Portada” y “sub2.librodeapuntes Portada” lo que nos permite distinguir entre una u otra.

_paq.push([‘setDocumentTitle’,document.domain + “/” + document.title]);


//Punto 4. Ejemplo variable personalizada

Las variables personalizadas en Piwik están creadas a la imagen de las custom vars de Google Analytics. Es una funcionalidad añadida recientemente y de momento no tienen la misma potencia (por ejemplo no nos permite definir el alcance de la variable, que en analytics nos permite diferenciar entre variables de usuario, de sesión o de página).

Como en Analytics disponemos de 5 variables. En nuestro caso definimos la variable 3, que se llama “tipo_informacion” y que es igual a “librodeapuntes”:

_paq.push([‘setCustomVariable’,’3‘,’tipo_informacion‘,’librodeapuntes‘]);


//Piwik Asynchronous code, tracking subdomains and custom vars

Si os interesa, también podemos incluir el código asíncrono de Piwik para trazar las secciones de un sitio bajo wordpress.

<!– Piwik –>
<script type=”text/javascript”>
var _paq = _paq || [];(function(){
var u=((“https:” == document.location.protocol) ?
“http://estadisticas.librodeapuntes.es/” :
“http://estadisticas.librodeapuntes.es/”);
_paq.push([‘setSiteId’, 1]);
_paq.push([‘setTrackerUrl’, u+’piwik.php’]);
_paq.push([‘setCookieDomain’,’*.librodeapuntes.es’]);
_paq.push([‘setDomains’,’*.librodeapuntes.es’]);
_paq.push([‘setCustomVariable’,’3′,’tipo_informacion’,’librodeapuntes’]);
_paq.push([‘setCustomVariable’,’4′,’seccion’,’
<?php global $post;$categories = get_the_category($post->ID);
$categories[0]->cat_name;if($categoria==””){echo “Portada”;}
else{echo $categoria;} ?>‘]);
_paq.push([‘setDocumentTitle’,document.domain + “/” + document.title]);
_paq.push([‘trackPageView’]);
_paq.push([‘enableLinkTracking’]);
var d=document,        g=d.createElement(‘script’),        s=d.getElementsByTagName(‘script’)[0];
g.type=’text/javascript’;        g.defer=true;        g.async=true;        g.src=u+’piwik.js’;
s.parentNode.insertBefore(g,s);})();
</script>
<!– End Piwik Code –>

//Conclusión

Aunque aún le queda un camino muy largo por delante (sobretodo en cuanto a capacidades de reporting), Piwic puede ser una alternativa interesante para sitios pequeños que quieran mantener el control de sus datos.

 

Bruno Rico Autor

Marketing, posicionamiento, diseño,accesibilidad, fotografía, internet...y un toque de banca (por de-formación profesional)

Deja un comentario

Tu dirección de correo electrónico no será publicada.