- Installation
- Automated tracking (browser-only) to capture
pageviews
,clicks
, andform_submissions
- Record events to the API individually or in batches
- Extend events to build intricate, useful data models and ease instrumentation
- Defer events to be recorded at a given interval, or when the queue reaches a given capacity
App Frameworks:
- React Flux Logger: How to instrument a Flux ReduceStore
- React Redux Middleware: How to instrument a Redux Store
- Vue.js Vuex Store: How to instrument a Vue Vuex Store
Video Players:
- Facebook video player
- HTML5 video player
- Video.js player
- Vimeo video player
- Youtube iFrame video player
- Cookies (browser-only) for persisting data from one page to the next
- Listeners (browser-only) for capturing and taking action during common DOM events like click, scroll, and submit
- Timers for tracking time before and between user or system interactions
- Datetime index for decomposing a date object into a set of properties like "hour_of_day" or "day_of_month"
- Unique ID for generating UUIDs
- DOM node path for returning the xPath for a given DOM element
- Screen profile for generating a set of properties describing the current device screen, like "height", "availHeight", and "orientation"
- Window profile for generating a set of properties describing the current window, like "height", "scrollHeight", and "ratio" to screen dimensions
- Browser profile for generating a set of properties describing the current browser, like "useragent", "online" status, and "language", plus screen and window profiles
- Scroll state for generating a set of properties profiling the current scroll state of the window
Dev console errors and messages are turned off by default, but can be activated by setting Keen.debug = true;
. Additionally, you can disable writing events to the API by setting Keen.enabled = false;
.
import Keen from 'keen-tracking';
// Track errors and messages in the dev console
Keen.debug = true;
// Disable event writes to the API
Keen.enabled = false;
const client = new Keen({ /*configure*/ });
// Observe what's happening in each method
client.on('recordEvent', Keen.log);
client.on('recordEvents', Keen.log);
client.on('deferEvent', Keen.log);
client.on('deferEvents', Keen.log);
client.on('recordDeferredEvents', Keen.log);
client.on('extendEvent', Keen.log);
client.on('extendEvents', Keen.log);
This is an open source project and we love involvement from the community! Hit us up with pull requests and issues.
Learn more about contributing to this project.
Need a hand with something? Shoot us an email at [email protected]. We're always happy to help, or just hear what you're building! Here are a few other resources worth checking out: