Skip to content
Book a CallCreate AccountLogin
Use case · Ad verification

Verify every impression from a real device, in the real city.

For ad-ops, brand-safety and affiliate-compliance teams that need to check placements, creatives and landing pages exactly as a local user experiences them.

Illustration pending
The problem

Why this is hard to do well

Ad verification only works from addresses the ad stack trusts: real mobile and residential IPs in the target city. Datafuel mobile and residential exits show the creative a local subscriber sees, and the Unlocker API captures the landing page behind it.

Ad servers geo-target by city and carrier and fingerprint the device; a datacenter request is served a house ad or nothing at all.

Fraud and compliance checks need to follow redirect chains to the final landing page, which is often behind bot protection.

Volume is high and each check is cheap, so a single blocked request should cost nothing.

The approach

Which products, in which order

1. Mobile Proxiesfrom $8.00/GBMobile exits on the carrier and city you are verifying, so in-app and mobile-web placements render as they would for a subscriber.
2. Residential Proxiesfrom $3.50/GBResidential exits for desktop placements and geo-locked publishers.
3. Unlocker APIfrom $0.042 / 1KThe Unlocker API follows the redirect chain and screenshots or parses the landing page.
Architecture

How the pieces fit together

InputPlacement listPublisher, city, carrier, creative ID
DatafuelDatafuelMobile / residential exit · UnlockerMobileResidentialUnlocker API
OutputEvidenceScreenshot, redirect chain, landing JSON

Failed requests inside the Datafuel layer are retried on a fresh identity and never billed; only what reaches the output column costs anything.

Step by step

From zero to working

01Pick the target city and carrier from the locations page.
02Request the publisher page through a mobile exit with a sticky session.
03Capture the creative and the redirect chain with the Unlocker API.
04Store the screenshot and landing-page fields with a timestamp.
05Schedule per campaign and alert on mismatches.
Code example

Real and runnable

import requests
# A sticky T-Mobile exit in New York City for one verification session
user = "network-mobile-country-us-city-newyorkcity-carrier-tmobile-session-a91f3"
proxy = f"http://{user}:$PASSWORD@gw.datafuel.ai:8686"
r = requests.get("https://ip.datafuel.ai/json", proxies={"http": proxy, "https": proxy})
print(r.json())
Replace $DATAFUEL_KEY with a free key and this runs as is.Run this with a free key
Products used

What you need, and what it costs

Mobile ProxiesReal 4G/5G carrier IPsfrom $8.00/GBSee product
Residential ProxiesEthically sourced, GDPR-compliant household IPsfrom $3.50/GBSee product
Unlocker APIAny page past any protection, as Markdown or structured JSON, in one request.from $0.042 / 1KSee product
What to watch for

Honest caveats

  • Some ad stacks cap frequency per device; rotate sessions between checks to avoid frequency-capped blanks.
  • Screenshots are evidence, not proof of impression counts; combine with your ad-server logs.
  • Carrier inventory differs by city; check availability before committing a campaign to one carrier.
Results

In numbers

160+mobile locations
24hsticky sessions
verifications / month across customers [placeholder]

Figures marked placeholder await real customer numbers; a case study replaces this block when one is available.

FAQ

Questions teams ask about ad verification

Questions teams ask about ad verification
Why mobile rather than residential?
In-app and mobile-web inventory is targeted by carrier, and carriers share one IP across thousands of subscribers, so mobile exits are almost never blocked and see the real creative.
Can I keep the same IP across a check?
Yes, pass a session ID; the exit stays fixed for up to 24 hours.
Do you capture screenshots?
Yes, the Unlocker API returns PNG or JPG alongside the parsed page.
How do I follow redirects?
The Unlocker API returns the full redirect chain with the final landing URL.
Which cities are covered?
See the locations page; every city marker lists carriers and ASNs.
What does a failed check cost?
Nothing. Only successful responses are billed.
Get started

Ready to build?

Start with the free tier and scale as your project grows. No credit card, no sales call.

Talk to an engineer, not a chatbot.