Every media buyer eventually asks the same question: I blocked that zone — why am I still paying for it?
We finally measured it properly. We pushed a block list of 139 bad placements to a major pop network through their own API, confirmed the network accepted every single one, and then watched our server logs hour by hour to see when the traffic — and the billing — actually stopped.
The experiment
The setup was simple. Our zone intelligence had flagged 139 placements on one campaign as junk — placements sending traffic where 80–100% of visits failed basic human checks. At 16:19 UTC we pushed all 139 to the network's exclusion API. We read the campaign back from their API afterwards to confirm the block list was really there. It was.
In the three hours before the push, those placements sent us 19,308 visits — about 6,436 per hour, every one of them billed.
Then the clock started.
What actually happened, hour by hour
- Hour 0: 396 arrivals from 66 of the excluded placements. Momentum traffic — expected.
- Hours 1–5: steady 100–160 arrivals per hour, from a shrinking group of 12–14 placements.
- Hour 6+: 87% of the placements that were active before the block had gone completely silent. The rest were still trickling.
So the honest answer to “how fast do exclusions work” is: mostly within the first hour, almost entirely within a few hours — but never 100%. A stubborn tail of roughly one placement in eight kept serving (and billing) six to nine hours after the network's own API confirmed the block.
We ran the same measurement on a second pop network earlier the same week and got an almost identical number: 40 of 45 excluded placements (88.9%) stopped; the rest kept delivering. Two different networks, same ~85–90% enforcement rate, same billed tail.
The strangest thing we found
One placement in the stubborn tail served us the exact same click ID twice, one hour and fifty-two minutes apart — on a placement that had been excluded for twenty hours. Same visitor token, re-served and re-billed. That is not a propagation delay. That is a serving path that is not checking campaign targeting at all.
What this means for your money
- Blocking works. A 98% cut in junk volume within hours is real money saved. Keep pushing your exclusions through the API, and read the campaign back to confirm they landed — write-and-hope is not a strategy.
- Budget for the tail. Roughly 10–15% of excluded placements keep billing for hours on every network we have measured. Over a month, that tail is a real line item.
- Log everything. Every arrival from an excluded placement is a receipt. Timestamp, placement ID, click ID, cost macro. When the tail gets long enough, that log is your credit-request evidence — networks respond very differently to “here are 8 billed clicks with IDs from a placement you confirmed blocked 18 hours earlier” than to a vague complaint.
Related reading: the 25–36% of billed impressions that never arrive at all, and how to build the blocklist itself.
FAQ
How long should I wait before disputing traffic from an excluded zone?
Give the network a propagation window — our data says almost all enforcement lands within a few hours. Traffic billed more than 12–15 hours after a confirmed exclusion is fair game for a credit request, especially with click-level receipts.
Why do networks have this tail at all?
Most run distributed ad servers with cached targeting. Some also have secondary serving paths (backfill, re-serves) that appear not to re-check zone targeting. The re-served click ID we caught points to the second cause.
Does this mean blocklists are pointless?
The opposite — a 98% junk reduction in hours is the single highest-ROI action in pop buying. It just is not 100%, and you should measure and invoice the difference instead of assuming perfection.
