A Node.js wrapper for the Matomo (Piwik) tracking HTTP API
Clone or download
Latest commit b1f96e6 Apr 12, 2018


Matomo Tracker NPM version Build Status

A wrapper for the Matomo Tracking HTTP API


First, install matomo-tracker as a dependency:

npm install --save matomo-tracker

Then, use it in your project:

var MatomoTracker = require('matomo-tracker');

// Initialize with your site ID and Matomo URL
var matomo = new MatomoTracker(1, 'http://mywebsite.com/matomo.php');

// Optional: Respond to tracking errors
matomo.on('error', function(err) {
  console.log('error tracking request: ', err);

// Track a request URL:
// Either as a simple string …

// … or provide further options:
  url: 'http://example.com/track/this/url',
  action_name: 'This will be shown in your dashboard',
  ua: 'Node.js v0.10.24',
  cvar: JSON.stringify({
    '1': ['custom variable name', 'custom variable value']

// … or trackBulk:
var events = [{
  '_id': 'AA814767-7B1F-5C81-8F1D-8E47AD7D2982',
  'cdt': '2018-03-22T02:32:22.867Z',
  'e_c': 'Buy',
  'e_a': 'rightButton',
  'e_v': '2'
  '_id': 'AA814767-7B1F-5C81-8F1D-8E47AD7D2982',
  'cdt': '2018-03-22T02:33:52.962Z',
  'e_c': 'Buy',
  'e_a': 'leftButton',
  'e_v': '4'
matomo.trackBulk(events, (resData) => {
  // done.

That's it. For a complete list of options, see Matomo's Tracking HTTP API Reference.


MIT License