Skip to main content
  1. Blog Post/

Mide tu web con Piwik: Etiquetado

5 min · 1175 words
Table of Contents

Como ya vimos anteriormente de forma supercial, Piwik utiliza un javascript para registrar los datos de las visitas, donde recoge por ejemplo, la dirección de la página, el título, el id único del usuario ( para hacer seguimiento de visitantes ), la resolución del usuarios, si dispone de flash, java, realmedia u otras tecnologías, etc. Más adelante veremos con más detenimiento todos los datos que registra.

Os vamos a explicar como hacer la medición por defecto, así como configurar ciertos parámetros en la medición, como las descargas, enlaces saliente, eventos ajax, extensiones, etc.

Método por defecto

Debemos introducir el siguiente código antes de la etiqueta </body>

<!-- Piwik --> <script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://{$PIWIK_URL}/" : "http://{$PIWIK_URL}/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", {$IDSITE});
piwikTracker.trackPageView();
} catch( err ) {}
</script>
<!-- End Piwik Code -->

Método Asíncrono

Piwik también ofrece la opción de cargar el código de forma asíncrona, y hacer las llamadas a los métodos por push, para ello tendremos que situar el siguiente código justo antes de la etiqueta </head>

<!-- Piwik --> <script type="text/javascript">
var _paq = _paq || [];
(function(){ var u=(("https:" == document.location.protocol) ? "https://{$PIWIK_URL}/" : "http://{$PIWIK_URL}/");
_paq.push(['setSiteId', {$IDSITE}]);
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['trackPageView']);
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 -->

Por defecto Piwik registra el título de la página y la URI de la petición, pero podemos sobreescribirlos pasándole el nombre de la URI a la función trackPageView:

piwikTracker.trackPageView('Menu/Freedom');

O bien especificando el título:

piwikTracker.setDocumentTitle(document.title);

Utilización de múltiples trackers

Tal vez queramos enviar la información de nuestro a diferentes perfiles o bien a diferentes servidores de Piwik, para ello a la hora de cargar el tracket indicaremos la dirección de nuestra instalación de Piwik de forma manual e indicaremos el IDSITE de forma manual, cargando solamente una vez el código javascript.

<script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker("http://URL_1/piwik.php", 1);
piwikTracker.trackPageView();
var piwik2 = Piwik.getTracker("http://URL_2/piwik.php", 4);
piwik2.trackPageView();
} catch( err ) {}
</script>

Seguimiento de subdominios

Para realizar el seguimiento de diferentes subdominios, utilizaremos el siguiente método:

tracker.setCookieDomain('*.example.com'); // example.com, www.example.com, subdomain.example.com, ...

Seguimiento de directorios

Se puede dar la posibilidad de que queramos registrar las visitas tan solo de algún subdirectorio de nuestra web para ello haremos lo siguiente:

tracker.setCookiePath('/miDirectorio');

Seguimiento de enlaces externos y descargas

Piwik puede hacer seguimiento de enlaces salientes y de descargas de archivos de forma nativa sin utilizar javascripts externos, para ello debemos realizar un llamada al siguiente método antes del trackPageView();

piwikTracker.enableLinkTracking();
_paq.push(['enableLinkTracking']); // Modo asíncrono

De esta forma Piwik, registrará los enlaces a dominios diferentes al nuestro, por ejemplo se podría dar la circunstancia de que tengamos enlaces a otros dominios/subdominios nuestros y estos saldrían como enlaces salientes (por ejemplo nuestra web en diferentes idiomas), para evitar esto podemos especificar los diferentes aliases que podamos tener, para ello debemos llamar a la siguiente función:

piwikTracker.setDomains(["*.dominio1.com", "dominio2.com"]);

Para evitar que Piwik no tenga tiempo a registrar un enlace saliente por defecto añade un pequeño delay desde que se hace click en un enlace hasta que se ejecuta el click para darle tiempo a registrar el evento, el valor por omisión es de 500 milisegundos, pero podemos sobreescribirlo de la siguiente manera:

piwikTracker.setLinkTrackingTimer( 250 ); // 250 milisegundos

Seguimiento de descargas

La instalacion por defecto de Piwik, registra las siguientes extensiones como descargas:

7z|aac|arc|arj|asf|asx|avi|bin|bz|bz2|csv|deb|dmg|doc|
exe|flv|gif|gz|gzip|hqx|jar|jpg|jpeg|js|mp2|mp3|mp4|mpg|
mpeg|mov|movie|msi|msp|odb|odf|odg|odp|ods|odt|ogg|ogv|
pdf|phps|png|ppt|qt|qtm|ra|ram|rar|rpm|sea|sit|tar|
tbz|tbz2|tgz|torrent|txt|wav|wma|wmv|wpd||xls|xml|z|zip

Podemos especificar otros tipos de extensiones para que Piwik las registre como descargas, bien reemplazando las extensiones que registra:

piwikTracker.setDownloadExtensions( "jpg|png|gif" );

o añadiendo más extensiones a las que registra por defecto:

piwikTracker.addDownloadExtensions( "mp5|mp6" );

También podemos forzar a que Piwik no registre ciertos enlaces, para ello podemos especificarle una o más clases CSS de las cuales no debe hacer seguiemiento:

piwikTracker.setIgnoreClasses( "no-tracking" ); // puedes especificar un array de classes

Por el contrario si queremos que un link concreto no sea registre le pondremos la clase "piwik_ignore" al enlace:

<a href='midescarga.zip' class='piwik_ignore'>File I don't want to track as a download</a>

Tambiçen se puede dar la circunstancia de que queramos registrar un tipo de enlace que por defecto Piwik no registre,para ello utilizaremos la clase "piwik_download"

<a href='ultimo.php' class='piwik_download'>Registra este enlace como descarga</a>

Cómo hacer seguimiento de pestañas o eventos de ajax

El código de Piwik tan solo se ejecuta cuando se carga o recarga una página, pero por ejemplo si tenemos una página con diferentes pestañas al no cargarse los tags, no sabremos si se ha visto ese contenido, para ello podemos llamar a la función trackPageView desde un evento onclick para registrar esos clicks como una página vista, esto sería aplicable a cualquier acción del usuario en la web.

<a href="#" onclick="javascript:piwikTracker.trackPageView('admin/settings');">Ver configuración</a>

El API de tracker acepta más métodos que iremos tratando en siguientes capítulos. ¿ Tienes alguna pregunta ? Déjanos un comentario entonces =)