Seguramente a la mayoría de los que nos dedicamos al desarrollo web o la analítica web, nos ha ocurrido en más de una ocasión el encontrarnos con una web que esta hecha a mano, cientos si no miles de archivos HTML desperdigados por todos los directorios de la web y hemos descartardo medir esta página por lo inviable de modificar todos los archivos, y sobre todo mantenerlos después o tal vez nos hemos limitado a realizar una medición a través de los logs, perdiendo con ello todas las ventajas y exactitud que aporta la medición por tags.
Sin embargo Apache dispone de varios módulos que nos permiten realizar esta acción “on the fly” , o lo que es lo mismo al vuelo , sin tener que modificar archivos.
Existen varios módulos que nos pueden ayudar en esta tarea como:
En esta ocasión vamos a utilizar mod_ext_filter, que viene por defecto con todas las instalaciones de apache, pero también podéis investigar como utilizar cualquiera de los otros.
Para ello habilitaremos el módulo con el siguiente comando ( en debian o distribuciones derivadas ):
a2enmod ext_filter && apache2ctl restart
Una vez esté habilitado debemos poner la siguiente línea en la configuración de nuestro vhost, tan sólo debemos cambiar el código UA de nuestra propiedad.
ExtFilterDefine add-ga mode=output intype=text/html cmd="/bin/sed 's#</head>#<script type=\"text/javascript\">\\n\\n var _gaq = _gaq || [];\\n _gaq.push([\'_setAccount\', \'UA-XXXXXXXX-Y\']);\\n _gaq.push([\'_trackPageview\']);\\n\\n (function() {\\n var ga = document.createElement(\'script\'); ga.type = \'text/javascript\'; ga.async = true;\\n ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\';\\n var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s);\\n })();\\n\\n</script>\\n</head>#i'"
Después en la directiva de direcctorio le diremos que aplique nuestro filtro, que en este caso le hemos llamado add-ga
Os pongo un ejemplo para que os hagáis una idea de cómo quedaría:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all SetOutputFilter add-ga </Directory>
Ahora con tan solo reiniciar Apache, se añadirá el código de Google Analytics , antes de la etiqueta </head> sin tener que editar todos nuestros archivos.
Este opción es aplicable a cualquier otra herramienta de analítica web, Piwik , ClickTale, KissMetrics, Omniture, o la que se os ocurra.