An ad campaign's report tells you where impressions were served. It doesn't tell you what people actually saw: whether the creative rendered, whether it landed next to content you'd never choose, or whether a fraudulent redirect sat between the click and your landing page.
Ad verification closes that gap by looking at placements the way your audience does — from their devices, their networks and their cities.
#Why the vantage point matters
Ad networks and publishers serve differently depending on who's asking. Geo-targeted campaigns only appear in their markets. Mobile placements differ from desktop ones. And some fraud schemes deliberately show a clean page to data-center traffic while serving something else to real users.
That last point is the one that makes residential and mobile exits essential. If your verification traffic looks like a server, a cloaking scheme will show it exactly what it wants you to see.
#What to check
- Rendering. Did the creative load completely, at the right size, without broken assets?
- Placement. What page and content surrounded it? Is it brand-safe?
- Targeting. Did the ad appear in the markets — and only the markets — you paid for?
- Landing path. Does the click lead straight to your landing page, or through unexpected redirects?
#Match the audience's network
Most audiences today are on phones. For mobile campaigns, verify through mobile exits so that carrier-targeted and app placements behave as they do for real users:
curl -x "http://acme-net-mobile-country-gb:PASSWORD@gate.riftip.com:7777" \
-A "Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X)" \
https://news.example.com/markets/todayDesktop campaigns can use residential exits in each target country. For both, rotate exits between checks — verification should look like many independent visitors, not one very curious one.
Note
Render with a real browser for anything beyond static placements. Headless Chrome or Playwright through a residential or mobile proxy executes the ad tags exactly as a visitor's browser would.
#Building a verification loop
- Pull the list of live campaigns and their target markets.
- For each market, load a sample of the placements through a local exit.
- Capture a screenshot, the final URL after redirects and the surrounding page content.
- Compare against what the campaign promised, and alert on anything that doesn't match.
Run it daily for steady campaigns and hourly at launch, when problems are most expensive.
#The payoff
Verification catches the expensive problems early: a creative that's broken on one carrier, a placement drifting onto sites you've excluded, a market where impressions are being served but never seen. Seen from the user's side of the screen, those problems are obvious. From a server's side, they're invisible.
Get the next post by email
One short email when a new guide ships — scraping, SERP and proxy engineering. No noise, unsubscribe any time.