Marzipan is a client side tool for psuedo-de-anonymizing anonymous user pageview activity. It establishes an RFC4122-compliant UUID for each visitor and pings the server with the URL and UUID on each pageview.
User activity tracking requires work on both the client and server. Currently Marzipan only provides a solution for the client side. This means that what happens on the server is up to you. You can write something with Node, PHP, Sinatra, etc that fields the data and dumps into a database. Or you can just serve up the beacon image and parse over server logs.
A future version will include an optional server side component as well.
The client side implementation has one required setting:
- data-marzipan-ping: Ping URI
Optionally you can specify an Id for the tracked site:
- data-marzipan-site: Site identifier
You also have to specify the location of the Marzipan script. :)
<script>
(function() {
var t = document.createElement('script'),
s = document.getElementsByTagName('script')[0];
t.async = true;
t.id = 'marzipan';
t.setAttribute('data-marzipan-site', '123');
t.setAttribute('data-marzipan-ping', '/ping.gif');
t.src = 'marzipan.js';
s.parentNode.insertBefore(t, s);
})();
</script>
<script src="marzipan.js" id="marzipan" data-marzipan-site="123" data-marzipan-ping="/ping.gif"></script>
I'm using Jasmine for tests. Coverage is not complete yet but if you want to run what's there make sure to run on a local server. (Reading/writing cookies doesn't work for local files.)
- Github page
- Find me on Twitter at @robflaherty
0.2 (4/27/12): Rewrite. Removed server side component. Removed CoffeeScript. Added Jasmine tests.
0.1 (7/29/11): Initial release.
Licensed under the MIT and GPL licenses.