Análisis de los puntos débiles en los sistemas de estadísticas web
- ¿Cuántas páginas tiene tu
sitio? ¿Las estás monitorizando
todas? - No es
lo mismo un "acceso" que una "visita
" - Clientes detrás de Proxys y routers
NAT - Visitas
desde .COM .NET .EDU y .ORG - Visitas
desde origen desconocido - ¿Dónde reside el "motor" del
sistema de estadísticas? - Conclusión
En este artículo analizaremos las causas de por
qué los servicios básicos nos dan
números erróneos, y daremos al lector los elementos de
evaluación para que pueda
por sí mismo determinar la fiabilidad de un servicio de estadísticas
web.
La enorme mayoría de los servicios gratuitos de
estadísticas de acceso web nos muestran una visión
distorsionada sobre lo que realmente ocurre en nuestros sitios
web. Sin embargo existe la tecnología necesaria para realizar
análisis de tráfico
absolutamente realistas… Lamentablemente estas tecnologías
sólo suelen ser usadas por los servicios de
estadísticas más caros (los planes "enterprise",
"premium" o "professional" que ofrecen los proveedores más
importantes), en tanto los webmasters que optan por los planes
gratuitos (también llamados "basic", "free", etc) se suelen
contentar con reportes y gráficas que sólo
reflejan una parte de lo que en realidad está ocurriendo en
un sitio web (ésto en el mejor de los casos, ya que muchos
servicios nos reportan números totalmente mentirosos). En
este artículo analizaremos las causas de por qué los
servicios básicos nos dan números erróneos, y
daremos al lector los elementos de evaluación para que pueda
por sí mismo determinar la fiabilidad de un servicio de
estadísticas web.
¿Cuántas
páginas tiene tu sitio? ¿Las estás monitorizando
todas?
La mayoría de los sitios web se componen de varias
páginas web (a pesar de
que mucha gente usa indistintamente las expresiones "página web" o "sitio web"
para referirse a lo que aquí llamamos "sitio": la
colección de páginas, imágenes, hojas de estilo,
applets, CGIs, etc. que conforman un proyecto web alojado bajo un
mismo dominio).
Ahora bien, cuando un sitio web se compone de varias
páginas, todas ellas tienen la posibilidad de recibir una
visita sin necesidad de que el visitante pase por la página
de inicio, y este tipo de visitas directas tiende a incrementarse
cuando nuestras páginas fueron indexadas por buscadores (que suelen mostrar
subpáginas de diferentes sitios en los resultados de sus
búsquedas). También es posible que desde otros sitios
web existan enlaces hacia subpáginas específicas de
nuestro sitio, y ésta es otra fuente de visitas que no pasan
por la página de inicio.
Los sistemas de estadísticas que se basan en la
inclusión de un botón en nuestra página de inicio
sólo contarán las visitas que abrieron la página
de inicio, y por tanto no nos harán saber de toda la
actividad que se desarrolle en el resto de los documentos de nuestro sitio
web.
No es lo mismo un "acceso"
que una "visita"
Acceso se llama a una apertura de página, no
importa en qué condiciones: Si yo entro en un sitio web y
hago click 9 veces en el botón "recargar" de mi browser,
entonces generé 10 accesos a la página (un acceso
inicial al entrar a la página, más 9 accesos que
generé recargándola). Posiblemente el webmaster vea el
reporte y diga "que bien, acaban de entrar diez personas!"…
Visita se llama a la entrada de una persona bien individualizada a
nuestra página, independientemente de cuantas veces la
abrió o recargó en su browser. Es muy común que
una persona que visita un sitio web lo recorra abriendo varias
veces determinadas páginas (para volver a acceder a un
menú, o una lista de links, por ejemplo).
Cuando manejamos el concepto de "visita",
también debemos manejar el concepto de timeout de visita. El
timeout de visita es el tiempo de inactividad que debe
transcurrir para que consideremos que una visita ha
concluído. Este timeout puede variar entre 30 y 120 minutos.
Una vez transcurrido este tiempo de inactividad, si el visitante
vuelve a abrir la página, se le considera una nueva visita.
Al fin de cuentas, sí es posible que
una persona nos visite varias veces al día.
En los hechos se da y no tiene nada de extraño.
Sólo debemos tener la precaución de determinar mediante
el timeout si una nueva apertura de página es parte de una
visita en curso, o en cambio la persona nos
dejó y ha vuelto generando una nueva visita. Para terminar
de ilustrar el concepto: imaginemos la situación que se
generaría en una máquina instalada en un
cybercafé, desde donde una persona visitó nuestra
página. Si al cabo de un rato esa misma máquina es
ocupada por un nuevo cliente que también abre
nuestra página, no hay ninguna razón para dejar de
contabilizarlo como visita.
¿Qué es lo que contabiliza tu sistema de estadísticas?
¿Accesos o visitas? No dejes que te hagan pasar accesos como
visitas, pues en ese caso estarás viendo números mucho
mayores a los verdaderos, que tal vez te llenen de
satisfacción, pero que nada tienen que ver con la realidad
de lo que pasa en tu web.
Clientes detrás de
Proxys y routers NAT
Un servidor Proxy es un dispositivo que
permite acelerar la conexión a Internet de sus clientes (las PCs que estén
configuradas para navegar haciendo uso de sus servicios). El
Proxy mantiene una copia local (cacheada) de las páginas
más visitadas por sus clientes, y cuando un cliente busca
acceder a una de esas páginas, el proxy en realidad le
entrega la copia que tenía almacenada localmente (si no
cambió el contenido en el sitio original, por supuesto).
Esto logra una importante aceleración de la navegación
de sus clientes, además de que permite al administrador filtrar las
peticiones a determinado tipo de sitios. Por ejemplo: en una
escuela un proxy permite que el
administrador bloquee el acceso a páginas para adultos,
logrando al mismo tiempo una gran calidad de navegación a
pesar de tener una línea de baja velocidad para atender decenas
de PCs en el aula de informática.
¿El problema? Que todas las peticiones a Internet
parecen salir de una máquina única (el proxy), que
esconde la actividad individual de las máquinas que tiene
detrás. A su vez hay dos tipos de proxy: los anónimos y
los normales. Los proxys anónimos esconden a Internet su
condición de proxys, en tanto que los normales agregan en la
cabecera HTTP una línea parecida a la
siguiente: "X-Forwarded-For: 200.40.236.70", que nos permite
saber que se trata de un proxy que nos está visitando a
pedido de la máquina "200.40.236.70" en este
caso.
El NAT (Network Address Translation) es implementado
mediante routers (complejos dispositivos encaminadores, que
constituyen el soporte de las comunicaciones en Internet) y
es una técnica que permite a un proveedor de acceso a
Internet lograr que una gran cantidad de clientes naveguen usando
una misma dirección IP (Internet Protocol, o
dirección de Internet). Para las empresas que cuentan con pocas
direcciones IP es una solución ideal: las direcciones IP son
un recurso cada vez más escaso, por lo que la técnica
NAT se usa cada vez más. Hay poblaciones y pequeñas
ciudades enteras que se conectan a Internet mediante un NAT
configurado por su compañía de telecomunicaciones, usando
unas pocas IPs para la conexón de miles de clientes. Desde
el punto de vista de un sistema de estadísticas, todas esas
máquinas son en realidad vistas como si se tratara de un
solo cliente (lo que nos lleva a tener reportes de tráfico
completamente alejados de la realidad).
Existe una tecnología capaz de individualizar los
clientes que nos visitan desde atrás de un NAT o un proxy
anónimo: el "client footprint", que consiste el
análisis de un paquete de características partuculares
de la máquina (la "huella" de la máquina), que nos
permite saber qué máquinas distintas están
generando actividad en nuestro sitio a pesar de venir desde una
misma IP. Esta técnica (de la cual he tenido la oportunidad
de ser uno de sus desarrolladores) es usada por muy pocos
sistemas de estadísticas web. Presta atención en la documentación de tu
sistema de estadísticas: debe hablarte de "client footprint
identification", o al menos debe aclararte de qué forma
resuelve el problema de identificación de las visitas
NAT.
Visitas desde .COM .NET .EDU
y .ORG
En los reportes sobre el origen geográfico de las
visitas puedes ver cuántos accesos has tenido desde España, México, Argentina, etc. Pero
posiblemente veas entre los países, que te han visitado
desde "EEUU Comercial (.com)", o desde ".net y .org".
Difícilmente las visitas que dicen ser de "EEUU Comercial
(.com)" realmente provengan de Estados Unidos, ya que el dominio
COM puede estar asociado a una máquina en cualquier lugar
del mundo. Lo mismo para NET, EDU y ORG. Entonces ¿por
qué el sistema de estadísticas no me da el lugar
geográfico real de la visita, en lugar de decirme que es
desde una red COM? Porque están
utilizando una tecnología fácil pero inapropiada: la
resolución DNS reversa.
Cuando llega una visita a un sitio web, obtenemos con
ella el dato de la IP de la máquina que realizó la
petición (ejemplo: 200.96.85.14). Entonces el sistema de
estadísticas hace una búsqueda DNS reversa para esa IP,
con el fin de obtener el nombre de la máquina. Si usas
Linux, prueba ejecutar el
siguiente comando: "dig -x 200.96.85.14" entonces obterndrás
el nombre de la máquina que tiene asociada esa
dirección IP (en este caso
200-096-085-014.smace7003.dsl.brasiltelecom.net.br). Luego se
analiza el nombre de la máquina, para ver si se obtiene
información sobre el
país de origen… en el caso de nuestro ejemplo encontramos
que el nombre termina en ".br", lo que nos indica que se trata de
una visita desde Brasil.
¿Pero qué ocurre cuando la resolución DNS
reversa nos devuelve algo así como
"80.58.35.237.proxycache.rima-tde.net"? Si analizamos el nombre
de la máquina, no encontraremos nada que nos permita
determinar en qué país se encuentra. Entonces los
sistemas de estadísticas baratos se contentan con decirnos
que "es una visita desde .NET". Es verdad, lo es. Pero cuando un
sistema vuelca ese tipo de información en sus reportes, en
realidad es para disimular su incapacidad para determinar la
verdadera procedencia geográfica de la visita.
El método serio para determinar
la situación geográfica de una dirección IP es
mediante una base de datos de direcciones
IP repartidas por países. Es el método que usan GeoIP
(http://www.maxmind.com), o ip-to-country
(http://ip-to-country.webhosting.info/) entre otros.
Visitas desde origen
desconocido
Es una variante del problema tratado en el apartado
anterior: cuando la resolución DNS reversa no arroja
resultados, entonces no podemos obtener el nombre de la
máquina desde la cual recibimos la visita. Este problema
desaparece cuando se usa una base de datos asociando IPs con nombres
de países, como ya se explicó.
Pero subsiste el problema de qué es lo que ocurre
si la base de datos no está actualizada con respecto a las
nuevas asignaciones IP por parte de los organismos de control (APNIC para Asia y el Pacífico, ARIN
para Norteamérica, LACNIC para Latinoamérica y el
Caribe, y RIPE para Europa, Africa del norte y Rusia). La única
solución fiable es la permanente actualización y
corrección de las bases de datos de IPs por parte
de nuestro proveedor de estadísticas.
¿Dónde reside el
"motor" del sistema de
estadísticas?
Un Sistema de Estadísticas web puede ser un
software instalado en tu propio
servidor*, o puede ser un software instalado en otro lugar.
Existe una antigua polémica acerca de la conveniencia de una
u otra forma de monitorización de un sitio web. Para
despejar nuestras dudas al respecto, en el año 2002 hicimos
una serie de experimentos que arrojaron
resultados esclarecedores: El experimento consistió en la
creación de una página web bajo un dominio no
público (lo cual nos garantizaba que no se recibirían
visitas reales bajo ningún concepto).
Se programó un agente de usuario especial,
preparado para realizar una serie de 200.000 peticiones sobre la
página en pruebas (mostrando diferentes
cabeceras HTTP según una secuencia conocida: variando el
agente de usuario, el uso de diversos proxys en distintos lugares
del mundo, la densidad de peticiones por unidad
de tiempo, etc). Entonces se "disparó" el generador de
visitas, que cumplió con sus 200.000 visitas en un lapso de
24 horas, mientras la página web era monitorizada por 10
sistemas de estadísticas diferentes (5 nuestros y 5 sistemas
comerciales). Al final de la prueba, todos los sistemas de
estadísticas arrojaron diferentes resultados.
Pero lo más interesante del experimento es que en
el propio servidor de la página web habíamos instalado
un sistema de medición, idéntico
al que utilizamos desde otros 4 servidores en forma remota, y los
cinco dieron resultados ligeramente diferentes. De ahí se
deduce que un mismo software de control de tráfico web
monitorizando un sitio desde su propio servidor difiere en
precisión con respecto a la monitorización
remota.
La información más exacta se obtuvo SIEMPRE
desde el sistema de control que se encontraba funcionando en el
propio servidor del sitio web (la actividad sobre el sitio ya se
conocía de antemano al provenir 100% de un simulador de
tráfico programado por nosotros mismos). Los experimentos se
repitieron durante meses, variando los emplazamientos de los
monitores remotos, las
características de las páginas web usadas, el software
de simulación de tráfico,
la densidad de las muestras, etc. Se llegó a muchas
conclusiones cuyo análisis está fuera del cometido de
este artículo. Pero en lo concerniente a este artículo,
nuestra conclusión fue: Los sistemas de monitorización
remota son menos fiables que aquellos que se encuentran
instalados en el propio servidor web del sitio
monitorizado.
* Vamos a dejar de lado el estudio de los programas conocidos como
"Analizadores de logs", que analizan los archivos de registro de actividad generados
por el propio servidor. Estos registros son sin duda la fuente
de información más fiel acerca de qué es lo que
ocurre en un sitio web. Pero su uso resulta engorroso, y la
información que se obtiene es incompleta (no especifica las
capacidades del browser en cuanto a plugins, por ejemplo), y no
pueden identificar clientes detrás de proxys o
NATs.
Son muchas las variables en que los sistemas
gratuitos de estadísticas web realizan un "redondeo" de la
información, que deriva en la generación de reportes
completamente alejados de la realidad. Los más graves
errores surgen de la confusión de "visita" con "acceso", y
de la falta de monitorización en las páginas internas
del sitio web.
Ing. Eduardo González González (*)
(*) Consultor en Sistemas de Seguridad