Marketing & Growth · Badger Commerce
Know exactly what drives traffic — and what doesn’t.
Branded short links with real attribution. Built for marketing teams who need to justify spend, not just report on it.
A raw hit count is not a click count. Badger Links separates the preview bots, the mail scanners and the prefetches from the people — and names every one it takes out.
From £9 a month for up to five users. Included in the Badger Commerce platform bundle.
How it counts
A raw hit count is not a click count
The gap is enormous, and it is not evenly spread — it clusters exactly where marketing works hardest. Three kinds of thing fetch your link before any person does, and a tool that reports them as clicks produces numbers that fall apart the moment someone senior asks why the click count exceeds the number of recipients.
Link previews
Slack, LinkedIn, WhatsApp, Discord, Telegram, X. Each fetches the URL to build a card. One post in a busy channel can generate hundreds of requests before a single person sees it.
Mail security
Mimecast, Proofpoint, Barracuda, Symantec, Zscaler. They open the link before the recipient does — often within seconds of the send, which is exactly when you are watching the number.
Browser prefetch
Chrome may fetch a link from the address bar before anyone commits to pressing enter. It announces itself in a header, which makes it the one kind of automated traffic that is unambiguous.
Two rules we do not bend
Classification never blocks a redirect
If we get it wrong, the person still arrives. We tag the request after the redirect has already gone out; we never gate it.
Thresholds lean towards counting
Wrongly excluding a real person deletes a click from the report you are trying to defend. That is worse than counting one bot, so the borderline call goes to the human.
The classifier
Six signals, in the order we trust them
Every verdict carries the rule that produced it, so an excluded request can be explained rather than merely disappearing from a total. “We excluded 4,000 clicks” invites a challenge. “3,100 were Slack building preview cards, 600 were Mimecast scanning the newsletter, 300 were Chrome prefetching” ends one.
Prefetch headers
Sec-Purpose, Purpose, X-Purpose, X-moz. The only signal a client volunteers honestly and unambiguously, so it is checked first and trusted completely.
HEAD requests
No browser issues one to follow a link. It is a link checker, an uptime probe, or a mail gateway testing reachability.
Cloudflare Bot Management
TLS fingerprints, HTTP/2 frame ordering and ASN reputation — request-level evidence that no User-Agent rule can reach.
User-Agent tables
Most specific first: link previews, then mail-security scanners, then general automation. Order is load-bearing — Telegram calls itself “TelegramBot (like TwitterBot)”.
Bot score
For clients that gave nothing away. The threshold leans towards counting: wrongly excluding a person deletes a real click from a report.
Fetch metadata
A real click is a top-level navigation. A scripted fetch of the same URL says so in its headers — but only when the headers are there at all.
What’s built
Everything below is shipping today
Not a roadmap dressed up as a feature list. If it is in this grid, it is in the product now.
Traffic separated, and itemised
Preview bots, mail-security scanners and browser prefetches are counted apart from people — and every exclusion is named, so a total can be explained rather than merely defended.
Short links with slugs you choose
Mint a memorable slug on a Badger short domain. Case-insensitive, and free of the character pairs that get misread off a poster.
Clicks, uniques, countries, devices, referrers
People and unique visitors per link and per day, broken down by country, device, browser and referring site.
Campaign grouping and roll-up
Group links into the campaign you actually report on. Links inherit its UTM campaign, so attribution stays consistent across everyone who makes one.
UTMs as fields, not string surgery
Source, medium, campaign, term and content are editable fields on the link. A mistyped source is corrected in one place, without reissuing something already printed.
QR codes, generated as vector
SVG, so it is correct at every size print asks for, with scans counted separately from web clicks. Rasterise to PNG in the browser when something wants one.
Archive, never delete
A printed link cannot be un-printed. Archiving stops the redirect and keeps the slug claimed, so it can never be reissued pointing somewhere its owner did not choose.
No IP address, ever
Unique visitors come from a salted hash, re-salted daily and scoped to one link. Referrers are reduced to a hostname before they are stored.
Not in v1
Named here so nobody buys on an assumption.
Your own domain
Links run on a Badger short domain today. Bringing your own hostname is recorded but not yet issuing certificates, so it does not resolve.
Conversion attribution
v1 counts clicks and does not claim to measure conversions. Every click already mints a sortable click id and can hand it to the destination, so the join key is being recorded ahead of the feature that reads it.
Retargeting and device or geo rules
One link, one destination for now. Sending different visitors different places is not in v1.
Microsoft Safe Links
It presents a genuine browser User-Agent and is not separable from a person on headers alone. We would rather say so than quietly count it as a click.
Where teams use it
Four jobs it was built for
Marketing campaign tracking
One campaign, many links, one number at the end of it that survives being questioned.
Social media link management
The channel where inflated counts are worst. Every platform fetches a link to build its card before a single person sees the post.
Affiliate link tracking
Per-link reporting where the click count is the thing being paid on, and both sides can see what was excluded.
Print-to-digital with QR codes
Vector codes for print, scans counted separately, and a destination you can repoint after the run has gone out.
Privacy
Counted without being tracked
Privacy here is a property of the schema, not a policy document. The data to misuse was never collected.
- No IP address is stored
- Not in the event, not in the rollup, not anywhere. It is the field that turns an analytics table into a subject access request.
- Uniques are salted daily, per link
- The same person on two days, or on two links, produces unrelated hashes. No profile can be assembled from this data — including by us.
- Referrers are cut to a hostname
- A full referrer URL can carry an internal search query or a password-reset token. “Which channel sent this” is the only question the report asks.
Pricing
Clear, transparent pricing
Start small, scale as you grow. Your account, billing and team live in Badger Sett, alongside every other Badger tool you use.
Starter
£9/month
For a small team running a handful of campaigns at a time.
- Up to 5 users
- Up to 1,000 links
- Full traffic-quality reporting
- QR codes and campaigns
Growth
£29/month
For a marketing team with more channels than it has people.
- Up to 20 users
- Up to 10,000 links
- Everything in Starter
- API access for programmatic links
Enterprise
CustomLet’s talk
For volumes and arrangements that a price list does not describe.
- Unlimited users
- Volume link limits
- Everything in Growth
- Scoped with you, not self-serve
Badger Links is also included in the Badger Commerce platform bundle. A lapsed subscription blocks new links, never redirects — anything already printed keeps working.
Report a number you can defend
Set up your first link in a couple of minutes. It starts recording clicks — and separating out everything that was not one — from the first request.