¿Cuál es la mejor manera de hacer un seguimiento de vista básico en una página web?

StackOverflow https://stackoverflow.com/questions/410785

  •  03-07-2019
  •  | 
  •  

Pregunta

Tengo un directorio de blogs y blogs orientados a la web, de acceso anónimo, y me gustaría hacer un seguimiento de la cantidad de visitas que recibe cada una de las publicaciones del blog.

Quiero mantener esto lo más simple posible, la precisión solo necesita ser una aproximación. Esto no es para análisis (tenemos Google para eso) y no quiero hacer ningún análisis de registro para extraer las estadísticas, ya que ejecutar tareas en segundo plano en este entorno es complicado y quiero que los números sean lo más frescos posible.

Mi solución actual es la siguiente:

  1. Un control web que simplemente registra una vista en una tabla para cada GET.
  2. Excluye una lista de rastreadores web conocidos que utilizan una expresión regular y una cadena de UserAgent
  3. Proporciona la exclusión de ciertas direcciones IP (spammers conocidos)
  4. Proporciona el bloqueo de algunas publicaciones (cuando los spammers lo hacen)

Esto realmente parece hacer un buen trabajo, pero un par de cosas me molestan. Los spammers todavía llegan a algunas publicaciones, lo que sesga las Vistas. Todavía tengo que monitorear manualmente las vistas y actualizar mi lista de "malo" Direcciones IP.

¿Alguien tiene mejores sugerencias para mí? ¿Alguien sabe cómo se rastrean las vistas de las preguntas de StackOverflow?

¿Fue útil?

Solución

Parece que su solución actual es bastante buena.

Implementamos uno en el que el código del servidor que entregaba el contenido de la vista también actualizaba una tabla de base de datos que almacenaba la URL (en realidad, un código de identificación especial para la URL ya que la URL podría cambiar con el tiempo) y el recuento de vistas.

Esto fue en realidad para un sistema con publicaciones escritas por el usuario que otros podrían comentar, pero se aplica igualmente a la situación en la que usted es el único usuario que crea las publicaciones (si entiendo su descripción correctamente).

Tuvimos que hacer lo siguiente para minimizar (no eliminar, desafortunadamente) sesgo.

  • Para los usuarios registrados, cada usuario solo puede agregar un punto de vista a una publicación. SIEMPRE. SIN excepciones.
  • Para usuarios anónimos, cada dirección IP solo podría agregar un punto de vista a una publicación cada mes. Esto fue un poco menos confiable ya que las direcciones IP podrían ser 'compartidas' (NAT, etc.) desde nuestro punto de vista. La razón por la que relajamos el " NUNCA " el requisito anterior era por este motivo para compartir.
  • Las publicaciones en sí se limitaron a tener un punto de vista agregado por período de tiempo (el período comenzó bajo (por ejemplo, 10 segundos) y aumentó gradualmente (por ejemplo, 5 minutos) por lo que se permitió que las publicaciones nuevas acumulen vistas más rápido, debido a su novedad). Esto se ocupó de la mayoría de los robots de spam, ya que descubrimos que tienden a atacar mucho después de que se haya creado la publicación.
  • La eliminación de un comentario de spam en una publicación, o un intento fallido de omitir CAPTCHA (ver más abajo), agregó automáticamente esa IP a la lista negra y redujo el recuento de visitas para esa publicación.
  • Si una IP en la lista negra no hubiera intentado dejar un comentario en N días (configurable), se eliminaría de la lista negra. Esta regla, y la regla anterior, minimizó la intervención manual para mantener la lista negra, solo tuvimos que monitorear las respuestas para contenido de spam.
  • CAPTCHA. Esto resolvió un lote de nuestros problemas de spam, especialmente porque no solo confiamos en cosas de tipo OCR (como "cuál es esta palabra - > 'opcionalmente'); en realidad hicimos preguntas (como "¿qué es 2 multiplicado por la mitad de 8?") que rompen los tontos bots de reconocimiento de caracteres. No va a vencer a las hordas de mano de obra barata que rompe CAPTCHA (a menos que sus matemáticas sean realmente malas :-) pero las mejoras de no CAPTCHA fueron impresionantes.
  • Los usuarios que iniciaron sesión no estaban sujetos a CAPTCHA, pero el correo no deseado eliminó la cuenta de inmediato, la lista negra de IP y su vista se restaron de la publicación.
  • Me da vergüenza admitir que en realidad no descartamos los rastreadores web (espero que el cliente no esté leyendo esto :-). Para ser honesto, probablemente solo agreguen un número mínimo de puntos de vista cada mes debido a nuestra regla de dirección IP (a menos que nos invadan varias direcciones IP).

Entonces, básicamente, se me sugiere lo siguiente como posibles mejoras. Por supuesto, siempre debe controlar cómo van para ver si funcionan o no.

  • CAPTCHA.
  • Actualizaciones automáticas de la lista negra basadas en el comportamiento del usuario.
  • Limitar el recuento de vistas aumenta desde direcciones IP idénticas.
  • Limitar el recuento de vistas aumenta a una tasa determinada.

Ningún esquema que elija será perfecto (por ejemplo, nuestra regla de un mes) pero, siempre y cuando todas las publicaciones sigan el mismo conjunto de reglas, aún obtendrá un buen valor comparativo. Como dijiste, la precisión solo necesita ser una aproximación.

Otros consejos

Sugerencias:

  1. Mueva la lógica de recuento de visitas de un control de usuario a una clase de página base.
  2. Rediseñar la lista de exclusiones para que se pueda actualizar dinámicamente (es decir, almacenarla en una base de datos o incluso en un archivo xml)
  3. Grabar todos los golpes. En un intervalo regular, haga que un trabajo cron ejecute los nuevos hits y determine si están incluidos o excluidos. Si hace la exclusión para cada hit, cada usuario tiene que esperar a que tenga lugar la lógica de coincidencia.
  4. Cree un algoritmo para detectar automáticamente spammers / bots y agregarlos a su lista negra. Y / o suscríbase a una lista negra de terceros.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top