Accurate click tracking and clear profit numbers for solo media buyers and small teams. Runs on your own VPS, installs with one command. No enterprise features, no enterprise prices.
Cancel any month. Your data never leaves your server.

Campaigns, last 30 days. Winners green, losers red, break-even grey.
The job
Instead you get trackers priced above your test budget, a settings panel with 200 options, and a weekend gone before a single click is tracked.
What it does
Clicks, conversions, cost, revenue, profit and ROI — per campaign, offer, lander, country. Group up to three levels deep, build your own columns with formulas, save the filters you use daily, export to XLSX when someone asks for a spreadsheet.

iGaming funnel: regs, reg cost, FDs, FD cost, reg-to-deposit rate.
“How much did I make today?” and “did last month's traffic ever pay off?” are different questions. Most trackers only answer the first. Drag the divider: same campaign, same weeks, revenue credited to the click date on the left and to the payout date on the right.

Same week, same spend. Three of these five weeks flip verdict depending on which question you ask.
Approval rate, CPL, whatever your vertical actually runs on — write the formula once and it becomes a column. Set which columns show on each page and in what order, so a nutra report and an iGaming report each show only what matters there.

Nutra: leads, approved, and two custom formula columns.
Direct to offer, or through a bridge lander. Split traffic across offers and landers by weight, random or sticky per visitor, with country and OS targeting per flow. That's the whole rotation feature — no diagram editor to learn.
Duplicate clicks deduped so postbacks attribute to the right click. Browser prefetches filtered before they inflate anything. Traffic-loss compensation built into the cost maths.
Add a domain and SSL issues itself — Let's Encrypt, or full Cloudflare mode with the DNS record created over the API. Bulk-add a list at once. Live certificate status, so an expiry never surprises you.
roitrack runs on your VPS. Your campaigns, your sources, your numbers — nobody else's business, including ours. We can't see your stats even if we wanted to.
What it doesn't do
Every one of these is real work we chose not to do, so the thing you use twenty times a day stays fast and obvious.
If you need those, the enterprise trackers do them well and charge accordingly. You're paying for tracking, so that's what we build.
Setup
First time through, budget 30–45 minutes — DNS propagation and wiring your network's postback take most of it, and the interface walks you through both. Every domain or campaign after that takes under two minutes. Updates ship through the interface: one click, no SSH.
Speed
Hot redirects never touch a database: in-memory campaign lookup, asynchronous writes, 302 out. These numbers are measured on a 2 vCPU / 4 GB VPS — the minimum spec roitrack runs on — not estimated.
Latency measured warm at normal load; throughput measured at saturation from a separate machine.
Pricing
Cancel any month — monthly billing, no annual lock-in, so your maximum risk is one month. One license per server. Requires your own VPS from any provider (roughly $10–15/month); Ubuntu 24, 2 vCPU / 4 GB minimum — don't go lower.
Questions
No. roitrack is fully self-hosted — everything lives on your server. The license check is the only thing that talks to us, and it carries no campaign data.
A fresh Ubuntu 24 VPS from any provider, 2 vCPU / 4 GB minimum — don't go below that. Point a domain at it, grab your install link, paste one command. If you can do that, you can run roitrack.
Your data stays where it has always been: on your server. The license stops validating after a short grace period, so the app stops working until you resubscribe. Nothing is deleted and nothing leaves your box.
Campaigns take a couple of minutes each to recreate, and any source or network works through URL templates and macros — if it can fire an S2S postback, it works here. Historical stats stay in your old tracker; roitrack counts from your first click.
Yes. Payouts arrive by postback with your own status mapping, and conversions that land weeks after the click still attribute to the click that earned them — which is exactly what the two reports above are for.
A media buyer who got tired of paying enterprise prices for basic tracking.
See what's printing. Kill what's burning. $69 a month, on your own server.