Conversions
Clicks are a cost. Revenue is the answer.
A link report that stops at clicks measures the cheap half of the funnel. Conversion tracking closes it: the redirector issues a signed identifier, your thank-you page or your server sends it back with an order, and every breakdown you already read — country, device, source, variant, destination, traffic type — gains a revenue column.
A click identifier that belongs to you
On every redirect the worker issues a token and appends it to the destination address under a parameter name you choose, defaulting to a neutral one. The same token is written to a first-party cookie on your own redirect domain, which is what makes attribution survive the browsers that have already stopped accepting anything third-party.
The token is signed and bound to the tenant: workspace and partner identifiers are part of the signed payload, so a token issued on one client’s link is rejected in another client’s workspace exactly like a forgery. It contains no personal data — the click moment, the link, the variant, the country, the device class, the traffic source and a flag for suspicious traffic.
Two ways in, one set of rules
Server-side, your backend posts the identifier with a goal, an order identifier, an amount and a currency. Browser-side, a script served from your own redirect domain — not from a third-party host — reads the identifier and reports the conversion from the thank-you page. Both paths run through the same service, so the attribution window, the deduplication and the outbound delivery behave identically.
Money is handled in whole minimum units throughout. An amount of 49.99 is rejected with a pointer to the field rather than silently rounded, because a rounding rule invented in the middle of a payment path is how revenue reports quietly stop matching invoices.
Duplicates are handled by the database, not by a check-then-write: repeated deliveries of the same order create one conversion and return it marked as a duplicate. That is what makes retrying a failed webhook safe.
- Signed click identifier in the URL and in a first-party cookie
- Configurable attribution window per workspace
- Server API and a browser script served from your own domain
- Goals with default values and currencies
- Atomic deduplication by order identifier
- Outbound delivery to advertising platforms with retries
Suspicious revenue is labelled, not hidden
The classifier’s verdict travels inside the click token, so a conversion attributed to a data centre or a proxy is marked as suspect at the moment it is recorded. It appears in reports as its own segment rather than being deleted or silently mixed in.
That distinction is the whole point of pairing conversion tracking with traffic quality: “we got two hundred conversions” and “we got two hundred conversions, forty of them from a hosting range in one hour” are different facts, and only one of them is worth paying for.
Where the numbers go afterwards
A recorded conversion emits a signed webhook event, and it can be forwarded to external advertising systems through a queue with the same retry discipline the rest of the platform uses: an attempt counter incremented before the outbound call, a documented backoff, and a give-up mark instead of infinite retries.
None of this replaces your billing system. It answers a narrower and more useful question: which link, which country, which destination and which traffic source produced the money.
Frequently asked questions
Does this work without third-party cookies?
Yes. The identifier travels in the destination URL and in a first-party cookie set on your own redirect domain. Nothing depends on a cookie set by a third-party host, which is the mechanism browsers have been removing.
What if the same order is reported twice?
One conversion is recorded and the second call returns it marked as a duplicate. Deduplication is a single atomic insert rather than a read followed by a write, so it holds even when two deliveries arrive at the same moment.
How long after a click can a conversion be attributed?
It is a per-workspace setting. A conversion that arrives later is rejected with a specific code so your integration can tell “outside the window” from “bad identifier” rather than guessing.
Can I send amounts with decimals?
No, and that is deliberate. Amounts are whole minimum units — cents, pence, kopecks. A decimal amount is refused with the field named, so rounding never happens silently on the way into your revenue reports.
Launch your branded link shortener
Connect a domain, publish your prices and invite your first customer — most partners go live in an evening.
No card required for the trial.