Rack::Tracker

Rationale
Most of the applications we're working on are using some sort of tracking/analytics service,
Google Analytics comes first but its likely that more are added as the project grows.
Normally you'd go ahead and add some partials to your application that will render out the
needed tracking codes. As time passes by you'll find yourself with lots of tracking
snippets, that will clutter your codebase :) When just looking at Analytics there are
solutions like rack-google-analytics but they just soley tackle the existence of one
service.
We wanted a solution that ties all services together in one place and offers
an easy interface to drop in new services. This is why we created rack-tracker, a
rack middleware that can be hooked up to multiple services and exposing them in a unified
fashion. It comes in two parts, the first one is the actual middleware that you can add
to the middleware stack the second part are the service-handlers that you're going to use
in your application. It's easy to add your own custom handlers,
but to get you started we're shipping support for the services mentioned below
out of the box:
Respecting the Do Not Track (DNT) HTTP header
The Do Not Track (DNT) HTTP header is a HTTP header that requests the server to disable its tracking of the individual user.
This is an opt-out option supported by most browsers. This option is disabled by default and has to be explicitly enabled to indicate the user's request to opt-out.
We believe evey application should respect the user's choice to opt-out and respect this HTTP header.