Tracker functions
The Umami tracker exposes a function that you can call on your website if you want
more control over your tracking. By default everything is automatically collected, but you can
disable this using data-auto-track="false" and sending the data yourself.
See Tracker configuration.
Functions
umami.track([payload]);
umami.track(event_name, [event_data]);Pageviews
Tracks a page view.
umami.track();By default the tracker automatically collects the following properties:
hostname: Hostname of serverlanguage: Browser languagereferrer: Page referrerscreen: Screen dimensions (eg. 1920x1080)title: Page titleurl: Page urlwebsite: Website ID (required)
If you wish to send your own custom payload, pass in an object to the function:
umami.track({ website: 'e676c9b4-11e4-4ef1-a4d7-87001773e9f2', url: '/home', title: 'Home page' });The above will only send the properties website, url and title. If you want to include existing properties, pass in a function:
umami.track(props => ({ ...props, url: '/home', title: 'Home page' }));Events
Tracks an event with a given name.
umami.track('signup-button');Event Data
Tracks an event with dynamic data.
umami.track('signup-button', { name: 'newsletter', id: 123 });When tracking events, the default properties are included in the payload. This is equivalent to running:
umami.track(props => ({
...props,
name: 'signup-button',
data: {
name: 'newsletter',
id: 123,
},
}));Event Data Limits
Event Data can work with any JSON data. There are a few rules in place to maintain performance.
- Numbers have a max precision of 4.
- Strings have a max length of 500.
- Arrays are converted to a String, with the same max length of 500.
- Objects have a max of 50 properties. Arrays are considered 1 property.