Statistics
Registra y muestra estadísticas anónimas de visualización de contenido para un sitio Drupal, contando cuántas veces cada node es visto por todos los usuarios, incluyendo visitantes anónimos.
statistics
Instalar
composer require 'drupal/statistics:^1.0'
Overview
El módulo Statistics proporciona análisis anónimos contando las visualizaciones de entidades para todos los usuarios, incluyendo los anónimos. Esta es la versión contribuida del módulo que anteriormente formaba parte del núcleo de Drupal, ahora mantenido por separado para Drupal 10.3+ y 11.
Actualmente, el módulo cuenta las visualizaciones solo para nodes en modo de página completa, manteniendo un total acumulado general y un subtotal diario sin datos históricos. El módulo utiliza un controlador frontal dedicado (statistics.php) para el conteo de visualizaciones optimizado para rendimiento mediante AJAX, minimizando el impacto en los tiempos de carga de página.
El módulo proporciona un bloque "Contenido popular" que muestra el contenido más visto hoy, de todos los tiempos y el contenido visto recientemente. También se integra con el módulo de búsqueda de Drupal para incluir los conteos de visualizaciones en el ranking de búsqueda, y con Views para exponer los datos de estadísticas para visualizaciones personalizadas.
Features
- Cuenta las visualizaciones de contenido (node) para todos los usuarios, incluyendo visitantes anónimos
- Mantiene el conteo total de visualizaciones y el conteo diario de visualizaciones por node
- Rastrea la marca de tiempo de la visualización más reciente para cada node
- Proporciona un bloque "Contenido popular" que muestra el contenido más visto por día, de todos los tiempos o visto recientemente
- Muestra el conteo de visualizaciones en las páginas de node para usuarios con el permiso apropiado
- Se integra con el módulo Search del núcleo para influir en el ranking de búsqueda basado en popularidad
- Se integra con el módulo Views para crear visualizaciones personalizadas basadas en estadísticas
- Soporta migración desde datos de estadísticas de Drupal 6 y Drupal 7
- Utiliza un controlador frontal ligero para conteo de visualizaciones optimizado basado en AJAX
- Reinicia automáticamente los conteos diarios de visualizaciones mediante cron
Use Cases
Mostrar los artículos más populares en la página de inicio
Utiliza el bloque de Contenido popular para destacar los artículos más vistos de tu sitio. Después de habilitar el conteo de visualizaciones de contenido, coloca el bloque en una barra lateral o región destacada y configúralo para mostrar los 5-10 elementos de contenido más vistos de todos los tiempos.
Crear una vista de contenido en tendencia
Utiliza Views para crear una página o bloque personalizado de 'Tendencias' que muestre el contenido ordenado por conteo de visualizaciones diarias. Añade una relación a node_counter, ordena por daycount descendente y limita los resultados para mostrar qué está de moda ahora mismo.
Impulsar el contenido popular en los resultados de búsqueda
Con el conteo de visualizaciones de contenido habilitado, el módulo Statistics influye automáticamente en los rankings de búsqueda para que el contenido visto frecuentemente aparezca más arriba en los resultados de búsqueda, ayudando a los usuarios a encontrar contenido popular más fácilmente.
Rastrear el rendimiento del contenido
Utiliza Views para crear un informe de administración que muestre todo el contenido con sus visualizaciones totales, visualizaciones diarias y fecha de última visualización. Esto ayuda a los editores de contenido a entender qué contenido conecta con los visitantes.
Migrar estadísticas desde un sitio Drupal antiguo
Al migrar desde Drupal 6 o 7, utiliza las migraciones proporcionadas (statistics_node_counter, statistics_settings) para preservar tus datos de conteo de visualizaciones existentes en el nuevo sitio.
Tips
- El bloque de Contenido popular solo es visible para usuarios con permiso 'access content' y solo aparece cuando el conteo de visualizaciones de contenido está habilitado.
- Para sitios de alto tráfico, considera estrategias de caché ya que la visualización de estadísticas respeta la configuración display_max_age (predeterminado 1 hora).
- El rastreo JavaScript usa jQuery AJAX y se ejecuta de forma asíncrona para evitar impactar el rendimiento de carga de página.
- Las estadísticas solo se rastrean para nodes vistos en modo de visualización 'full' como páginas completas, no para nodes mostrados en views u otros contextos.
- El módulo reemplaza limpiamente el módulo Statistics obsoleto del núcleo - simplemente instala mediante Composer y Drupal usará automáticamente la versión contribuida.
Technical Details
Admin Pages 1
/admin/config/system/statistics
Configurar los ajustes de estadísticas para rastrear cuántas veces se visualiza el contenido en el sitio.
Permisos 2
Hooks 7
hook_node_view
Adjunta la biblioteca JavaScript de rastreo de estadísticas a los nodes cuando se visualizan en modo de página completa.
hook_node_links_alter
Añade la visualización del conteo de vistas a los enlaces del node para usuarios con permiso 'view post access counter'.
hook_cron
Reinicia los conteos diarios de visualizaciones cuando han pasado 24 horas desde el último reinicio. También calcula y almacena la escala del contador para el ranking de búsqueda.
hook_node_predelete
Limpia los datos de estadísticas cuando se elimina un node.
hook_ranking
Añade el conteo de visualizaciones a los factores de ranking de búsqueda cuando el conteo de visualizaciones de contenido está habilitado.
hook_block_alter
Elimina el 'statistics_popular_block' de los bloques disponibles cuando el conteo de visualizaciones de contenido está deshabilitado.
hook_views_data
Expone la tabla node_counter y sus campos a Views para construir visualizaciones personalizadas.
Troubleshooting 5
Asegúrate de que 'Contar visualizaciones de contenido' esté habilitado en /admin/config/system/statistics. Verifica que tu servidor web esté configurado correctamente para enrutar las solicitudes a statistics.php (revisa .htaccess para Apache o añade reglas equivalentes para Nginx).
El bloque solo está disponible cuando 'Contar visualizaciones de contenido' está habilitado. Habilita esta configuración y limpia las cachés.
Otorga el permiso 'Ver visitas de contenido' a los roles apropiados en /admin/people/permissions.
Añade una regla de reescritura a tu configuración de Nginx para enrutar correctamente las solicitudes POST al controlador frontal statistics.php ubicado en el directorio del módulo.
Asegúrate de que cron se esté ejecutando regularmente. La implementación de hook_cron() del módulo reinicia los conteos diarios cada 24 horas.
Security Notes 3
- El controlador frontal statistics.php valida la entrada (el ID del node debe ser un entero positivo) y captura excepciones para prevenir la divulgación de información.
- Los conteos de visualizaciones solo se muestran a usuarios con el permiso 'view post access counter'.
- El acceso administrativo a la configuración de estadísticas requiere el permiso 'administer statistics'.