Skip to main content
  1. Blog Post/

Mide los enlaces directos y desde buscadores a tus archivos pdf

2 min · 374 words

Uno de los grandes problemas de los sistemas de medición con tags, es la imposibilidad de medir las descargas de archivos que no puedan ejecutar javascript, como son los archivos PDF's, Zip's, Doc(x)s, etc , cosa que no sucede con las herramientas de medición por logs. Tanto con Google Analytics como con otras herramientas, podemos etiquetar los enlaces ( hrefs ) mediante onClicks para poder medir estas descargas, pero qué pasa con la gente que pone un enlace directo a un archivo nuestro, o por ejemplo lo que sucede desde que los buscadores indexan el contenido de nuestros archivos PDFs.

Utilizando la librería SSGA ( Server-Side Google Analytics ) y un .htaccess ( mod_rewrite ), he creado un pequeño script en PHP, que se encargará de registrar un evento en Google Analytics con la descarga y acto seguido descargará el archivo en cuestión, para ello deberemos configurar un par de variables al inicio del archivo:

// UA de la cuenta
$ua = "UA-12345678-1";
// Nombre del domino configurado en Analytics
$dominio = "www.thyngster.com";
// Categoría del Evento
$categoria = "descargas";
// Acción del Evento
$accion = "pdfs";
 

Y para que la acción se haga de forma autómatica lo que haremos es redirigir todas las peticiones de PDFs que se generen en nuestro dominio, al script que hemos creado, tan solo deberemos agregar la siguiente línea a nuestro .htaccess:

RewriteRule (.*).pdf$ descargas.php?filename=$1.pdf [L,QSA]

Ahora ya podemos medir la gente que llegan a nuestros PDFs desde un búscador y medir las descargas de nuestra web sin tener que ir etiquetando todos los enlaces.
El Script original se ha modificado para que haga spoofing del User-Agent , language, y charset original del usuario, puesto que la petición a los servidores de Google la hace nuestro servidor, por lo tanto tampoco se va a guardar los datos de Geolocalización del usuario, ni se van a respetar sus cookies reales.

DESCARGAR SCRIPT