Skip to content
ANALYTICS

Inserta tags en todas las páginas estáticas de tu web automáticamente

David Vallejo
Share

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.