ES6 tracker for Snowplow
Last updated 2 years ago by sircelsius .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install snowplow-es6-tracker 
SYNC missed versions from official npm registry.

snowplow-es6-tracker Build Status codecov Minified size

ES6 tracker for

Contributions welcome! Head over to to learn how to contribute.

Alpha mode This project is currently in alpha mode and does not replicate all the JavaScript tracker's features. Head over to to see what features are present and which are planned.

This project aims to take the features described in the Snowplow Javascript Tracker Wiki and port them to an entirely new project written with the latest JS features.

It is not a fork of snowplow/snowplow-javascript-tracker but an entirely new project.

It is not an official snowplow tracker implementation.

The aim of this is to have a JS tracker for Snowplow that uses a more modern stack than the official one:

  • ES6 features (classes, import/export, Promise, ...)
  • Babel transpiling of ES6 to ES5
  • Webpack bundling
  • Karma tests

It also aims (in the future) to allow developers to use things such as:

  • tree-shaking. You can't always get get what you want, but you always get more than you need.
  • tracking offline users via Service Workers.
  • bundle Snowplow directly in their apps (instead of fetching the tracker on load, which delays the moment when you can start tracking users).
  • more unicorns.


yarn add snowplow-es6-tracker (or, if you're old school, npm install --save snowplow-es6-tracker).

Somewhere in your app:

import { Dictionary, Tracker, PageView, StructEvent } from 'snowplow-es6-tracker'

const dict = new Dictionary()

dict.newTracker( new Tracker( 'myES6Tracker', {
  appId: 'my-website',
  post: true,
} ) )
  .then( dict => {
    dict.getTracker( 'myES6Tracker' )
      .then( tracker => {
        const pv = new PageView( tracker, 'Page Title' )
        return tracker.trackEvent( pv )
      .then( () => dict)
  .then( dict => {
    dict.getTracker( 'myES6Tracker' )
      .then( tracker => {
        const se = new StructEvent( tracker, 'my-category', 'my-action', 'my-label', 'my-property', 2 )
        return tracker.trackEvent( se )
      .then( () => dict)

// track moar stuff

Current Tags

  • 0.1.0                                ...           latest (2 years ago)

1 Versions

  • 0.1.0                                ...           2 years ago
Maintainers (1)
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 2
Dependencies (16)
Dependents (0)

Copyright 2014 - 2016 © |