A simple pixel-tracker for node.js
Collect some data with parameters, along with the defaults
var tracker = require('pixel-tracker')
tracker.use(function (error, result) {
console.log(result)
/*
{
"cookies": { "_tracker": "58f911166e6d31041eba8d06e11e3f77" },
"host": "localhost:3000",
"cache": { "max-age": "0" },
"referer": "direct",
"params": [],
"decay": 1342597993859,
"useragent": { "browser": "Chrome", "version": "20.0" },
"language": [ "en-US", "en", { "q": "0.8" } ],
"geo": { "ip": "127.0.0.1" },
"domain": "localhost"
}
*/
})
// ..
app.all('/pixel', tracker.middleware)
app.listen()var tracker = require('pixel-tracker')The callback function is called with error, result. Multiple callbacks can be used.
pixel-tracker has a few configurable options.
disable_cookies defaults to false
maxAge defaults to 2 days, which may not be desirable based on your use case
A function to be called for each http request which calls response.end with a 1x1 pixel for every request and then calls all the functions provided with tracker.use. This works out of the box with express and would also work with any vanilla http server as long as a cookies implementation is provided for the response object (or cookies are disabled)
var tracker = require('pixel-tracker')
tracker
.use(function (error, result) {
// do something with result
// ...
})
.configure({ disable_cookies : true })
require('http').createServer(tracker.middleware).listen(3000)npm install pixel-tracker
npm install -g tap && npm test
MIT