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-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 ' ) ; app . use ( expGa ) ; app . use ( ' /path/of/event ' , expGa . event ( { category : ' cat ' , action : ' act ' , label : ' lab ' , value : 3 . 5 } ) , function ( req , res ) { } ) ;

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