FOR MEDIA BUYERS ON PUSH, POP AND NATIVE
Catch the fake clicks your bot filter lets through.
TrafficLens checks every click you pay for and ranks your traffic sources by how many clicks were genuine. Each flagged click shows why, like an emulated phone or a datacenter IP posing as a mobile carrier.
Genuine ●Suspicious ▲Fake ■1 square = 1 click · scroll ↓
Unchecked 9,870 Suspicious 0 Fake 0
Works with Keitaro · Voluum · RedTrack · BinomPropellerAds, RichAds, TrafficStars or any network that passes a placement ID
Adds ~0.5 s on tracking links · 0 ms with the on-page snippetNot a cloaker: every visitor reaches the same destination.
WHAT YOUR TRACKER CAN'T SEE
Your tracker says the placement converts at 0%. It can't tell you if that's fake clicks or your lander.
ROI rules can't cut a placement until it has spent a few payouts with no conversion, and your bot filter only stops the obvious bots. The rest run on the same anti-detect browsers and residential proxies you know from farming ad accounts. Each tool is good at faking one thing, like the browser profile or the IP. Faking one layer is cheap. Faking all five so they agree with each other is expensive. Where a click contradicts itself, that's the evidence.
SOURCES
Every traffic source, campaign and placement, ranked by how many clicks were genuine.
Sort by wasted spend and the placements to cut first come to the top. Copy them as a blacklist for your campaign. Click farms show up here too: their phones are real and pass the per-click checks, but the same few devices clicking all day don't.
- Push network A$20371% ±1.0
- Push · BR · AndroidPush network A$17864% ±2.0
- zone_5812043Push network A › Push · BR · Android$13422% ±0.8
- zone_6630118Push network A › Push · BR · Android$2581% ±2.0
- zone_7019334Push network A › Push · BR · Android$1977% ±3.0
- zone_4410927Push network A › Push · BR · AndroidNot enough data · n = 84—
- Onclick · MXPush network A$2583% ±1.0
- Push network C$1888% ±1.0
- Pop network B$9354% ±2.0
Furthest left: zone_5812043, 22% genuine (±0.8). The same placement as Fig. 1.
FIG. 2 — Genuine share per row with 95% confidence interval. n = 86,358 clicks, 30 d, est. wasted spend $314. Sample data.
CASE FILE
Evidence you can send your network
Every flagged click gets a case file. It puts what the click claimed next to what we observed, and says how many genuine clicks looked the same. Whether you get a refund is the network's call.
Software graphics on a flagship phone
The WebGL renderer is SwiftShader, which draws graphics on the CPU. Servers and emulators without a GPU use it. A Galaxy S23 has an Adreno 740 and never needs to.
TCP handshake from a Linux server
Window size, option order and MSS match a Linux server on a wired link. Phones on Vivo’s network arrive with a carrier MSS of 1400.
Datacenter IP claiming a mobile carrier
The IP belongs to Hetzner Online, a hosting company in Falkenstein, Germany. The click was bought as Vivo mobile traffic in Brazil.
JavaScript engine reports a desktop platform
Chrome on Android reports an ARM platform. This one reports Linux x86_64 and has desktop-only APIs.
FIG. 3 — Case file v_8F3K2Q. Grey bar = all 48,210 genuine Chrome 155 Android clicks in 30 days; red pin = how many of them looked like this click. Sample data.
SETUP CHECK
You targeted BR · Android. 18% arrived as German desktops.
Per campaign, we compare the GEO and device you targeted with what actually arrived. If they don't match, you see which placements sent the difference.
74% BR · Android phone18% DE · Windows desktop8% Other
TRY TO FOOL IT
Open this page in your anti-detect browser or emulator and see what we see.
The public scan shows a verdict for each layer and stops there. It doesn't show which values gave you away, so it's a poor tool for tuning a bot. Your own clicks get full case files in your account.
Scan this browser →EXAMPLE SCAN · claims Chrome 131 on Windows 11 · sample
- Connection Genuine
- Network Suspicious
- Browser engine Genuine
- Device Suspicious
- Behaviour Not measured
HOW IT WORKS
Five layers checked on every click
- L1
Connection
1,840 caughtPhones and servers shake hands differently, so a server posing as a phone stands out.
- L2
Network
2,604 caughtWho owns the IP. A Hetzner address claiming to be Vivo, Brazil fails here.
- L3
Browser engine
2,291 caughtWhether the JavaScript engine is the one the browser claims. Catches headless and automated browsers.
- L4
Device
702 caughtWhat hardware is really there. A “Galaxy S23” drawing graphics on the CPU is an emulator or a server.
- L5
Behaviour
262 caughtHow the visit unfolds. Scripted sessions show up here, if the visitor stays long enough to measure.
FIG. 5 — Clicks from zone_5812043 first caught by each layer, of 9,870. Sample data.
Compared with what you use now
Decides before conversions arrive
- ROI rules
- No. Needs spend and conversions to pile up first
- Bot filter
- Yes, at the click
- Enterprise suites
- Yes
- TrafficLens
- Yes, per click
Explains each flagged click
- ROI rules
- No
- Bot filter
- A flag or list match; some show a reason
- Enterprise suites
- A score, sometimes a category
- TrafficLens
- Claimed vs observed, with how rare it is in genuine traffic
Works with any tracker
- ROI rules
- Only inside that tracker
- Bot filter
- Only inside that tracker
- Enterprise suites
- Often built for search and social ads
- TrafficLens
- Yes: by link, snippet or postback
Added latency
- ROI rules
- 0 ms
- Bot filter
- A few ms (inline)
- Enterprise suites
- Varies
- TrafficLens
- ~0.5 s on links · 0 ms on the redirect with snippet
Price for a solo buyer
- ROI rules
- Included
- Bot filter
- Included, or a paid add-on
- Enterprise suites
- Usually sales-led
- TrafficLens
- Free to 10k clicks · $99 for 500k
Where others win: inline filters in your tracker decide inside the redirect and add only a few milliseconds. If you need to block at the edge, keep them on and use TrafficLens to see what gets through.
Link or snippet, then postback
- 01
Tracking link
Put a TrafficLens link in your campaign. It runs the checks, then forwards the click to your tracker. Adds about 0.5 s.
https://go.traffic-lens.com/c/8f3k?zone={zoneid}&cost={cost} - 02
On-page snippet
Or skip the link: add one script to your lander. Checks run after the page loads, 0 ms on the redirect.
<script src="https://cdn.traffic-lens.com/s.js" data-site="ldr_21"></script> - 03
Postback to your tracker
We send the verdict and reason back to your tracker with the click ID. Sort placements by fake share in the report you already use.
https://your-tracker.example/postback?subid={clickid}&tl={verdict}&why={reason}
Priced in clicks checked
Every plan runs all five layers and shows full case files.FIG. 6 — Plan limits on a log scale of clicks per month.
FROM THE FOUNDER
I’m Pavel, an engineer. I’ve spent several years studying how browsers, phones and networks describe themselves, and how cheaply each of those claims can be faked. TrafficLens checks those claims on every click you pay for and shows you where they disagree.
Questions buyers ask
No. Every visitor goes to the destination you set, whatever the verdict, and that includes network moderators and crawlers. TrafficLens records what each click was. To act on it, cut placements in your tracker or your network using the verdicts we post back.
About 0.5 s on tracking links: the visitor sees a blank check page while the checks run, then goes on to your tracker. With the on-page snippet the redirect isn’t touched, so it adds 0 ms there. The checks run after your lander loads.
Each layer compares what the click claimed with what we observed, and checks how often genuine clicks from the same browser and OS look the same. Usually, one failed layer makes a click Suspicious and two make it Fake. A single disagreement that genuine clicks never show, like a Galaxy S23 drawing graphics in software, is enough for Fake on its own. Some fakes only show up in bulk, like a farm of real phones, so we also flag placements by pattern. Unverified means we couldn’t measure enough, for example because the visitor left before the checks finished. We don’t guess.
Some will. A verdict never changes where the click goes, so a wrong one costs you no visitors. What it can cost you is a good placement. That's why each finding shows how many genuine clicks looked the same, like 112 of 48,210 for the TCP handshake in Fig. 3.
We process IP addresses and device signals to detect fraud, as your processor. We sign a data processing agreement on request.
Per-click evidence stays for your plan’s history window: 7, 30 or 90 days. After that we keep only counts per source and placement.