express-ga-middleware
TypeScript icon, indicating that this package has built-in type declarations

0.1.6 • Public • Published

Express GA Middleware

This is an express middleware to enable Google Universal Analytics page tracking on your server. You can use this with server-served pages, or any custom route events.

TypeScript

NPM

Install

npm install --save express-ga-middleware

Usage

To simply track page views use this -

const app = require('express')();
const expressGa = require('express-ga-middleware');
 
app.use(expressGa('UA-XXXXXX-X'));
 
app.get('/', function (req, res) { res.send('hello world') } );
 
app.listen(4040);

If you also want to generate events, we have a .event() middleware too.

var expGa = expressGa('UA-XXXXXX-X');
 
//Use globally for all pageviews
app.use(expGa);
 
//Use event on a path
app.use('/path/of/event', expGa.event({
    category: 'cat',
    action: 'act',
    label: 'lab',
    value: 3.5
}),
    function (req, res) {
    //your path middleware code here
});

The .event() function is available in the req object too, inside ga object.

app.use(expressGa('UA-XXXXXX-X'));
 
app.get('/', (req, res) => {
  req.ga.event({
      category: 'cat',
      action: 'act',
      label: 'lab',
      value: 3.5
  }, (err) => {
    if (err) throw err
  })
  res.send('Hello World')
})

What it tracks

The middleware automatically tracks the following

Tracked parameter Description
document path Part of the URL, after the domain name, i.e. /b/c in http://a.com/b/c
document referer The website from which the user came from, if any
user agent The device/browser/OS used to browse the page
ip address The user's ip Address

All of this is fetched from the request object. Here is the code basically -

    dp: req.originalUrl,
    dr: req.get('Referer'),
    ua: req.headers['user-agent'],
    uip: req.headers['x-forwarded-for'].split(',').pop()
    || req.connection.remoteAddress
    || req.socket.remoteAddress
    || req.connection.socket.remoteAddress
 

Thanks

This is a wrapper over the very useful node module universal-analytics which in turn used the http://www.google-analytics.com/collect REST API.

Package Sidebar

Install

npm i express-ga-middleware

Weekly Downloads

15

Version

0.1.6

License

GPL-2.0

Last publish

Collaborators

  • championswimmer