Estamos haciendo la versión móvil de Partigi y me asalta una duda: ¿cual es la manera apropiada para medir el tráfico de un site móvil? Todos los buenos sistemas de huellas como Google Analytics o Nielsen SiteCensus se apoyan en JS (SiteCensus tiene opción para medir las visitas que clientes sin JS, pero GA no que yo sepa), pero muchos clientes móviles no soportan JS.
Buscando un poco por encima he visto http://bango.com/products/analytics/default.aspx - (en este otro post dicen que en un caso determinado GA solo midió un 12% del 100% que midió Bango)
Dudas:
¿Hoy en día realmente son tantos los clientes móviles que no soportan JS?
¿Conocéis alguna otra herramienta para medir esto?
Utilizar el log de acceso. Eso nunca falla. Quitas los referes de buscadores con un par de filtros, y si quieres algo más de exactitud, tal vez filtras las ips a los países donde tu producto está desplegado, y los logs de acceso representan la realidad de manera muy cercana a la realidad.
Si puedes jugar con el log, puedes imprimir un fingerprint con el session id/ cookie/user_id en el log, para poder identificar los diferentes clientes.
Analizar el log del servidor es interesante, pero también se puede hacer con scripts incluidos en todas las páginas que se quiere medir (lo cual, por cierto, puede ser incluido desde Apache, para no tener que alterar el código). En PHP tenemos PHP Stats, y para CMS como Wordpress o Joomla hay plug-ins específicos.
Antiguamente se hacía mucho lo de incluir un gif transparente en todas las páginas a medir y luego se tiraba de archivos de log para sacar las estadísticas. Una manera sencilla de reutilizar esta técnica con rails (creo que es lo que vosotros usais) sería tener un stats_controller con un pequeño método que devolviese un gif transparente (usando RMagick es fácil generarlo). Antes de devolver ese gif, se pueden registrar en bbdd todos los datos de la conexión. Luego ya es cuestión de explotar esa base de datos. Creo que había una aplicación que pasándole los datos (en el formato correcto, claro) te sacaba las métricas oportunas. Aunque no recuerdo el nombre...
Yo creo que las mejores opciones son dos:
Usar un analizador de logs (ya sean los de Apache, de Rails, o de lo que venga al caso). Suelen proporcionar información muy valiosa. Eso sí, algunos logs (como sucede en Rails) pueden llegar a ocupar una buena cantidad de espacio en disco. También hay que tener en cuenta que, si tenemos un sistema para servir páginas cacheadas, estas peticiones podrían no haber generado entradas en nuestro log de la aplicación (aunque sí en el log de Apache). El archivo de log de Apache es muy configurable, se puede incluir suficiente información como para generar a posteriori estadísticas de uso bastante completas. Este sistema, no obstante, no es eficiente para consultas instantáneas de dichas estadísticas.
Guardar en la base de datos un resumen de lo que interese por cada request. Esto puede llegar a ser algo pesado para la base de datos, en especial porque garantiza que cualquier petición va a generar al menos un INSERT, incluso si esta petición va a devolver el resultado de una caché. Pero es posiblemente una de las mejores opciones si se quieren estadísticas instantáneas. Para una aplicación "gordita", se podría tener una máquina separada con una aplicación muy sencilla que sirva como backend, y que guardase dichas estadísticas en una base de datos independiente a la de la aplicación principal. Esta aplicación de estadísticas podría devolver un GIF transparente ante cualquier petición, y almacenar toda la información provista en la URL de dicha imagen (verdaderamente inexistente). Al ser el cliente el que genera la petición para obtener dicha imagen en esta máquina, no molestamos al resto de máquinas que sirven nuestra aplicación. Ojo con las cabeceras ETAG, el navegador cliente no debería cachear esa imagen o no realizaría esas peticiones cada vez.
Un saludote, Carlos Paramio
2009/6/2 Fernando Espinosa <no-reply>:
Antiguamente se hacía mucho lo de incluir un gif transparente en todas las páginas a medir y luego se tiraba de archivos de log para sacar las estadísticas. Una manera sencilla de reutilizar esta técnica con rails (creo que es lo que vosotros usais) sería tener un stats_controller con un pequeño método que devolviese un gif transparente (usando RMagick es fácil generarlo). Antes de devolver ese gif, se pueden registrar en bbdd todos los datos de la conexión. Luego ya es cuestión de explotar esa base de datos. Creo que había una aplicación que pasándole los datos (en el formato correcto, claro) te sacaba las métricas oportunas. Aunque no recuerdo el nombre...
-- Para contestar a este mensaje, simplemente utiliza el "Responder" de tu cliente de correo
También puedes hacerlo via web, visitando la página del tema: <http: />
WebDevBits http://www.lacoctelera.com/g/webdevbits
-- La Coctelera http://www.lacoctelera.com
NUEVO! Sube tus fotos a La Coctelera http://www.lacoctelera.com/fotos
Lo cierto es que los métodos basados en los logs del servidor se han quedado anticuados, y ya casi nadie acepta a nivel profesional que sean datos válidos para medir tráfico web, porque contienen muchísimas imprecisiones y carencias.
En la parte de móvil las imprecisiones se reducirían, porque hay muchos menos imágenes y ficheros que desvirtuen los datos, pero aún así siguen estando los proxies y demás...
Para obtener datos fidedignos hay que utilizar un sistema basado en huellas (ahora no encuentro ningún enlace que lo explique bien, pero vamos, desde años es algo estándar :)
Álvaro, corrígeme si me equivoco, pero si lo que se pretende evitar es que se cuenten peticiones como visitas únicas, creo que añadir un método unívoco para identificar a un usuario en concreto sería tan sencillo como hacer que en el cliente se guarde una cookie con un token único, e incluir el valor de dicha cookie en los logs por cada petición.
En cuanto a peticiones de imágenes o ficheros que pudieran desvirtuar los datos, siempre se pueden separar estas peticiones del resto.
Repositorio de pequeños trucos y técnicas curiosas, inteligentes y divertidas encontradas por esas webs de Dios...
Para postear, hazte miembro del grupo y listo!