Documentation

Attribute revenue in five minutes

NumberHill joins your web traffic to your payment processor. Instead of sessions and bounce rates, every channel, page and campaign gets a dollar value — revenue per visitor. Three steps get you there, and none of them need a data warehouse.

How it works

The tracking script assigns each browser a visitor ID and posts pageviews to the ingest endpoint, where bot traffic is filtered and the traffic source is resolved to a named channel. When that visitor pays, your processor's webhook carries the same visitor ID back to NumberHill, which looks up their first touch and credits that channel with the revenue.

the whole loop
visitor lands   →  numberhill.js posts a pageview  →  source resolved (e.g. GitHub)
                                                   ↓
checkout starts →  numberhill_visitor_id in metadata  →  Stripe / LemonSqueezy / …
                                                   ↓
payment succeeds → webhook → first-touch lookup → GitHub credited $299

First-touch attribution

Revenue is credited to the channel that first brought the visitor, not the last click before checkout. That is what makes the number useful for deciding where to spend.

What you need

  • A site you can add a <script> tag to.
  • One of the supported processors: Stripe, LemonSqueezy, Polar, Shopify, or Dodo Payments.
  • Access to your checkout code, so the visitor ID can ride along in metadata.

Migrating from DataFast?

The ingest accepts datafast_visitor_id anywhere it accepts numberhill_visitor_id, so switching is a one-line rename — or no change at all while you transition.