0.1.6 • Published 8 years ago
express-ga-middleware v0.1.6
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.
Install
npm install --save express-ga-middlewareUsage
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.remoteAddressThanks
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.
