Ask a media buyer why a campaign with heavy traffic produced no conversions and you will hear the same four answers: bad offer, bad geo, bad zones, bots. Ask whether the traffic actually loaded the landing page, and the room goes quiet — because almost nobody measures it.
We did. On one live pop campaign, joined visit by visit over 24 hours: 305 of 924 accepted clicks never issued a single request to the destination. Not slow. Not bounced. Never loaded. That population is what this article calls ghost traffic, and on pop and push it is not an edge case — it is a third of what you pay for.
What ghost traffic actually is
The term gets used loosely for “fake sessions”. That definition is too vague to act on. Here is a precise one you can measure:
Ghost traffic is any click you were billed for that never produced a request to your destination server.
That definition matters because it is falsifiable. It does not require you to guess whether something was a bot. It asks one binary question with a definite answer in your own web-server log: did an HTTP request arrive, or not?
Why pop and push generate more of it than search
Every guide about clicks not matching sessions is written for Google Ads and GA4. Those guides assume the visitor is looking at a foregrounded tab they deliberately opened. Pop and push break that assumption at the format level:
- A popunder opens behind the active window. Modern browsers throttle, suspend and discard background tabs aggressively to save battery. A tab can be killed before it ever issues the navigation.
- Push clicks land on cold devices. The user taps a notification, the phone wakes, the network negotiates — and a meaningful share abandon in that window.
- Nothing in the chain is guaranteed unless the server guarantees it. Any JavaScript hop, meta-refresh, interstitial or “continue” page converts a certain server action into a hopeful client action.
That last point is where we found our own largest leak, and it is worth saying plainly because it was embarrassing: an interstitial page we had added ourselves was costing 15 points of arrival. Removing it and letting the server commit the redirect directly moved arrival from 52% to 67% and confirmed renders from 29% to 42%, all statistically significant.
How to measure it on your own traffic
You do not need our product to do this. You need one identifier and one join:
- Carry a unique click identifier from the traffic source through to the destination URL. Most networks already send one.
- Log it at the moment you accept the click — before the redirect.
- Grep your destination web-server access log for the same identifier.
- Deduplicate to one row per click, then divide arrivals by accepted clicks.
Anything below roughly 90% deserves investigation. If you are in the 50s or 60s, the problem is almost certainly architectural rather than fraudulent — and that is good news, because architecture is something you control.
Ghost traffic is not the same as bot traffic
This is the single most common analytical error in the niche, and acting on it will cost you money. When we profiled the missing visits by trust score, network and device, they were high-trust, residential, spread across many different ASNs and zones, with no repeated client fingerprints. That is not the shape of a bot population. Bots are cheap to run at scale, which makes them repeat — same subnets, same fingerprints, same patterns.
If you blocklist zones for ghost traffic, you will remove real humans whose browsers suspended a background tab. The correct response to ghost traffic is to fix delivery. The correct response to bots is to block. Confusing the two costs you volume and leaves the actual fraud in place.
The checklist that kills ghost traffic
- Server-committed redirect only. One HTTP 302, destination named in the header. No JavaScript hop, no meta-refresh, no interstitial.
- Audit every hop between click and landing page. Each one is a place a suspended tab gives up.
- Measure arrival, not just clicks. A click you cannot tie to a request is an assumption, not a metric.
- Keep the identifier first-party. You do not need to leak anything to a third party to measure your own delivery.
- Separate the diagnosis. Ghost = delivery problem. Bot = quality problem. Never treat one as the other.
The industry's standard advice for pop traffic is that a click and a visit are the same event, and that you should switch off click parameters in your tracker to avoid confusion. Our measurement says they differ by a third — and switching off the parameter simply removes the evidence while you keep paying.
The companion analysis, the full 924-click teardown, shows the funnel stage by stage. If you want the render half of the picture, why “no render” is not a bot signal explains why the obvious inference there is also wrong.