2011-09-13 22 views

Respuesta

2

¿Cómo está reuniendo los datos? Las opciones más comunes serían instrumentar la página usando javascript, mirando los archivos de registro del servidor web, en el controlador de solicitudes del lado del servidor o olfateando el tráfico TCP/IP.

Hacerlo "como Google Analytics" implica lo primero. En ese caso, la forma de hacerlo sería tomar una marca de tiempo tan pronto como sea posible cuando la página se cargue (en lugar de esperar el evento de página listo/cargar) y comparar ese valor con el sello de conexión anterior (por lo que probablemente guarde eso en una galleta). Entonces necesita alguna forma de enviar esto al servidor, y una forma de grabar e informar sobre los datos.

Tenga en cuenta que al intentar iniciar una llamada ajax cuando el usuario abandona la página, p. a través de onunload, no funcionará de manera confiable (la página que inicia la solicitud se encuentra al final de su ciclo de vida). Lo importante aquí es la parte ASÍNCRONA. Y hacer una llamada sincrónica solo tendrá el efecto de ralentizar el sitio web.

Es posible que desee echar un vistazo a Yahoo Boomerang - aunque no es compatible con las medidas de tiempo de permanencia de fábrica, es fácil de extender. Para un back-end, puede hacer mucho peor que Graphite

-1

En la carga de la página, cree un objeto de fecha, luego cuando la página se descargue, cree otro y restarlos. Después de eso, puede hacer una solicitud AJAX a su servidor de seguimiento, enviando el tiempo transcurrido.

var startTime = new Date(); 
var endTime; 

window.onunload = function() 
{ 
endTime = new Date(); 
var elapsedSeconds = endTime.getTime() - startTime.getTime(); 
//Do the ajax request, sending elapsedSeconds 
} 
+4

Por lo general, es mejor hacer cálculos en el lado del servidor para que el usuario no pueda alterarlos. –

+0

Cierto, pero tendría que preguntarse qué es exactamente lo que quiere hacer un seguimiento. El tiempo que pasa entre window.load y window.unload, o el tiempo entre el momento en que el servidor obtuvo la primera respuesta y el segundo. Podría haber diferencias notables. – TJHeuvel

+1

Asegurar que la solicitud de Ajax se complete de manera confiable sin afectar la transición de la página será muy difícil. – symcbean

1

Puede disparar un evento de descarga en javascript cuando el usuario abandona la página, que envía una solicitud Ajax a su servidor. Dado que esto puede no funcionar en todos los navegadores, especialmente si la latencia de la red es alta, también tiene un script ping (también con Ajax) que llama a su sistema de estadísticas de vez en cuando mientras el usuario permanezca en la página (por ejemplo, cada 10-60 segundos dependiendo de la resolución que desee).

0

Si desea hacerlo en el servidor, es decir, en php, probablemente necesite una tabla asignada para esto. diga "analítico"

Primero necesita agregar este script en cada página. que inserta estos datos en la tabla analítica que es $ _SERVER ['http_referer'], la marca de tiempo actual, la dirección remota y la URL de la página actual.

Ahora la parte de cálculo. básicamente, cuando un usuario llega por primera vez a su página $ _SERVER ['http_referer'] no sería de su dominio. Luego mantenga la marca de tiempo como la hora de inicio.

Ahora compruebe la próxima marca de tiempo. Si el http_referer es igual a la URL de la página de registros anteriores, encuentre la diferencia en la marca de tiempo para saber cuánto ha permanecido el usuario en una página.

Más o menos lo que estoy tratando de decir es encontrar el tiempo entre cada solicitud del usuario.

Desventaja de este método: cuando el usuario llega a una página, la cierra. es imposible encontrar el tiempo en su sitio.

0

Un método rápido y fácil que se me ocurrió es bastante útil.

En cada página de un sitio donde deseo rastrear el tiempo en la página, incluyo una secuencia de comandos del rastreador.

agarro tanta información como pueda, y hacer una entrada de base de datos, incluyendo la de referencia, la página solicitada/carga, agente de usuario, IP, fecha y hora, etc.

Estas marcas de tiempo, junto con el la IP del usuario, se puede usar para determinar el tiempo que el usuario estuvo en la página anterior (incluido el tiempo de carga de la página actual).

El único inconveniente es que no puedo determinar la hora en la última página que visitan (lo que no siempre es malo, puedo reducir el tiempo de inactividad del seguimiento).

Los rebotes se identifican mediante entradas individuales por una determinada ip dentro de un período de tiempo especificado (una hora probablemente sea suficiente).

Cuestiones relacionadas