trak.js is a API wrapper for your analytics APIs. By default it uses the Google Universal Analytics but you can override this witht the older ga.js or Google Tag Manager if you wish. You can even add custom event trackers as well as, or instead of GA.
- Minified (~481 B gzipped)
- Unminified (~1.7 KB gzipped)
bower install trak
Include trak.js in your JavaScript bundle or add it to your HTML page like this:
<script type='application/javascript' src='/path/to/trak.js'></script>
then run trak();
when the DOM is ready:
// Native JS
document.addEventListener('DOMContentLoaded', function(e) {
trak();
}
// jQuery
$(function(){
trak();
});
There are two main ways to use trak.js, in your js code or as data-* attributes in your markup.
Fires an analytics event
category: A string value of the category value to set
action: A string value of the action value to set
label: A string value of the label value to set
extendedOptions: An object containing additional parameters for more advanced analytics events.
value: An integer
nonInteraction: An integer
eventName: A string value used only with Google Tag Manager. Define your GTM event name here
If any property is left undefined
, the browser's default value will be used instead.
trak.event('category', 'action');
trak.event('category', 'action', 'label');
trak.event('category', 'action', 'label', extendedOptions);
trak.event('engagement', 'signpost', 'page.href');
trak.event('engagement', 'signpost', 'page.href', {
value: 10,
nonInteraction: true,
eventName: 'This is a Google Tag Manager event name'
});
<a href="#" data-trak='{"category":"Rating","action":"Comparison notepad","label":"Up"}'>link</a>
<!-- With an extended option -->
<a href="#pagehref" title="1 title" data-trak='{"category":"Test category","action":"Test action","label":"Test label","options":{"eventName":"Event name test"}}'>Data attr test #1</a>
These can be used
Wildcards can be used to specify certain options like the page title or url.
<a href="#" data-trak='{"category":"Rating","action":"page.href","label":"Up"}'>link</a>
<a href="#" data-trak='{"category":"Rating","action":"page.title","label":"Up"}'>link</a>
<a href="#" data-trak='{"category":"Rating","action":"link.href","label":"Up"}'>link</a>
<a href="#" data-trak='{"category":"Rating","action":"link.title","label":"Up"}'>link</a>
<a href="#" data-trak='{"category":"Rating","action":"document.referrer","label":"Up"}'>link</a>
Various default trak.js options can be overridden:
Type: boolean
Default: true
Choose whether you'd like to clean the provided category, action and labels
Type: string
Default: _
trak.js includes a cleaning method to normalise the arguments that are passed to it. Spaces are converted to an underscore by default but can be overridden by reassigning this value.
Type: string
Default: ga
Alternatives:
ga
: Google Analytics (Universal_gaq
: Google Analytics (ga.js) Old versiongtm
: Google Tag Manager
Use this to change your default tracking provider.
Type: function
Default: undefined
Add any other event tracking providers. See below for example:
trak.options.additionalTypes = function() {
UDM.evq.push(['trackEvent', trak.clean(category), trak.clean(action)]); // trak.clean(label)
console.log('Fire additional event');
}
Type: boolean
Default: false
Show debug logs in the js console
The default implementation uses latest version of Google Analytics (ga.js
) but trak.js also supports the older _gaq
type or Google Tag Manager.
trak.js has been tested in the following browsers:
- Chrome
- Firefox 3+
- Opera 10+
- Internet Explorer 8+