Two meanings
The phrase covers two different things, and it helps to separate them.
A proxy on your own domain. The page still runs a small script, but the script sends its events to a path on your site, such as /api/e, and your server forwards them to the analytics tool. To the browser this is your app talking to itself. The guide to serving it from your own domain shows recipes for Next.js, Vercel, Netlify, Cloudflare, Express, Nginx and Caddy.
Events sent from the back end. Things that happen on a server, such as a payment confirmed by a provider, are reported from there. The browser is not involved at all. Revenue tracking works this way: the payment provider calls a webhook, and the sale is credited to the visit that earned it. See revenue attribution.
What it improves
- Fewer blocked requests. Extensions block requests to known analytics hosts. A request to your own domain, from a script in your own bundle, is much less likely to match a list. It is not a guarantee, and no honest vendor can promise that.
- Longer-lived cookies in Safari. A cookie written by JavaScript is capped at seven days there, while one set by your own server in a response header can last longer. With a cookie, a returning visitor stays recognised past the first week. Without one, this does not apply.
- Accurate events that no page can fake. A payment reported by a provider cannot be inflated by a visitor.
What it does not change
Moving the request to your server does not remove the data. If the tool stores an identifier on the device, consent rules for storing it still apply, and sending personal data to a third party is still processing. A choice about cookieless tracking and a clear consent flow are separate decisions from where the request goes. The consent guide for analytics consent goes through them.
Trade-offs
A proxy is one more thing to run and to keep working: if it breaks, you lose data silently unless you watch for it. It also forwards the visitor's address, so it should pass only what the analytics server needs. For a small site, a script tag is enough; reach for the proxy when blocking or Safari's cookie limit actually costs you accuracy.
Try it in trckable
trckable can send events through a route on your own domain, and it reads payments from Stripe, Paddle, Lemon Squeezy, Polar and Dodo Payments through their webhooks. Install on your stack
Related terms
Read more
The newsletter
Notes on measuring what matters.
Occasional emails from Albi: new posts, one chart worth reading, what changed in trckable.
We send one email to confirm your address, and nothing more until you confirm. Every newsletter has a link to leave. What we keep, and who sends it: privacy.