Activity Tracker icon

Activity Tracker

Maintained by Learning Systems Studio
Records lightweight activity and time-on-page signals in Moodle, with aggregated Report Builder sources, a public API, configurable retention, and Privacy API support.
Price option: Free

Supports Moodle 4.5-5.2 See all versions
Latest release: 1 month ago
Installations: 2
Downloads (last 90 days): 14

Frankenstyle name: local_activitytracker
Local plugins

Description

Activity Tracker is a standalone Moodle plugin for recording lightweight activity and time-on-page signals. It helps administrators, report authors, and other plugins understand course, activity, and user engagement without scanning expensive raw Moodle logs.

The plugin records active, focus, and elapsed time for logged-in, non-guest users on eligible pages. Idle time and hidden or background-tab time are not credited as active learning time. Tracking data is stored in hourly buckets, then Moodle scheduled tasks aggregate it into daily and hourly summaries for reporting.

Main features
  • Browser-based activity tracking with configurable tick interval, idle threshold, and active-time caps.
  • Optional Moodle Mobile app tracking when Moodle web services and the mobile service are enabled.
  • Report Builder datasources for user, activity, site-hourly, and device/browser summaries.
  • A stable public PHP API so other plugins can read permitted aggregate data.
  • Direct database storage by default, with optional MUC-backed buffered storage for higher-volume sites.
  • Scheduled aggregation, buffer flushing, exporter runs, and data pruning through Moodle cron.
  • Configurable retention periods for detailed buckets and longer-lived aggregate data.
  • Buffer and exporter subplugin extension points for custom backends and external integrations.
Privacy by default

Activity Tracker is designed to minimise personal data. IP addresses and user-agent strings are hashed by default using salted SHA-256 values, and raw page content, keystrokes, mouse coordinates, and free-text are never captured. Device and browser families are derived only as coarse reporting dimensions.

The plugin implements the Moodle Privacy API, including metadata declaration, user data export, deletion, and user-list handling. Retention windows are configurable and enforced by a scheduled pruning task.

Requirements
  • Moodle 4.5 LTS or later, including Moodle 5.x public webroot layouts.
  • PHP 8.1 or later, depending on the Moodle version in use.
  • MariaDB, MySQL, or PostgreSQL.
  • Regular Moodle cron execution for aggregation, pruning, and buffered writes.

Contributors

Awards

Privacy friendly
Automated testing support