estoy haciendo algunos códigos estadísticos para mi sitio web (soy un desarrollador de php). Quiero calcular cuántos segundos/minutos el usuario de la web debe permanecer en cualquier página (como google analytics) pero no tengo idea de cómo hacer esto. Gracias por cualquier ayuda o guiones!¿Cómo calcular cuánto tiempo está el usuario en una página web?
Respuesta
¿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
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
}
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).
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.
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).
- 1. ¿Cuánto tiempo puede durar una página web?
- 2. ¿Cómo puedo calcular cuánto tiempo tarda una función en jQuery?
- 3. C# Durante cuánto tiempo estuvo inactivo el usuario
- 4. ¿Cuánto tiempo está usando el recolector de basura?
- 5. ¿Cómo verificar cuánto tiempo está tomando la consulta MySQL?
- 6. ¿Cuál es el tiempo razonable para generar una página web?
- 7. Calcular el tiempo entre dos tiempos Android
- 8. Web: El sistema registrará la cantidad de tiempo que el usuario visualiza cada página
- 9. Cómo calcular el tiempo entre las teclas presionadas
- 10. ¿Cuánto tiempo durará una aplicación ASP.NET MVC?
- 11. Calcular el tiempo transcurrido en php
- 12. ¿Cómo saber si el usuario está leyendo actualmente una página con Javascript?
- 13. ¿Cuánto tiempo sería bueno establecer en el encabezado de caducidad de un sitio web?
- 14. ¿Cómo saber cuánto tiempo cuesta el código "sincronizado" en Java?
- 15. detectar cuando un usuario deja una página web
- 16. Cómo medir el tiempo de visita de un usuario
- 17. ¿Cómo medir el tiempo pasado en una página?
- 18. ¿Cuánto tiempo lleva compilar Glibc?
- 19. Cómo leer desde el puerto serie en una página web
- 20. ¿Cómo puedo "evaluar" de forma segura el código de usuario en una página web?
- 21. comprobando el estado del usuario (activo, inactivo) en una página web
- 22. ¿Cuánto tiempo debo mantener las URL antiguas?
- 23. Calcular el tiempo de ejecución para cada página en el Frasco de Python
- 24. Cómo desvanecerse en una página web completa -
- 25. Cómo hacer una actualización de una página web cuando el usuario se vuelve móvil al paisaje
- 26. ¿Cuánto tiempo pueden ser los parámetros en una solicitud get?
- 27. ¿Cuánto tiempo conserva su código?
- 28. Cómo trabajar con el agente de usuario para descargar una página web usando Wget
- 29. JS: ¿Cuánto tiempo se tarda en llamar a una función?
- 30. ¿Cómo calcular el tiempo transcurrido en segundos en VBA?
Por lo general, es mejor hacer cálculos en el lado del servidor para que el usuario no pueda alterarlos. –
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
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