Geo Cloaking: Show the Offer Only to Your Target GEO

Geo cloaking is what lets only your target GEO reach the offer, while everyone else — reviewers, bots, off-GEO traffic — gets sent to a safe white page instead. Without it, a campaign can get banned not because of the offer itself, but simply because whoever is reviewing it happens to be sitting outside the target GEO. Here's how the filter gets configured, what data it relies on, and how to test it before launch.

What geo cloaking is and why it matters

Geo cloaking is a rule that checks a visitor's location and, depending on whether it matches the target country, shows either the real offer or a safe white page. Automated review and manual checks from ad platforms often originate not from the campaign's target GEO but from data centers or offices in entirely different countries. A geo filter is one of the baseline layers of protection that separates that kind of outside traffic from real users in the target country.

Why IP-based GEO alone isn't enough

Country detection based on IP alone can be spoofed with a VPN or proxy, and IP-to-country databases themselves periodically go stale or misfire at range boundaries. Data center IPs — often the same ones automated reviews and bots connect from — differ in ASN type from ordinary mobile and home ISP ranges, which is a separate signal worth checking alongside country. Combining several signals produces a noticeably more reliable filter than checking IP alone.

Setting up the geo filter step by step

Start by defining the list of target countries, by ISO code, in the cloaking rules — only visitors from those countries should see the offer. Then set the action for a mismatch: a white page, or a redirect to safe content that reads as plausible to a reviewer. It's also worth setting separate behavior for data center IPs and known VPN or proxy ranges, regardless of which country they claim to be in.

Extra checks: language, timezone, carrier

The Accept-Language header and device timezone should logically match the claimed country — a mismatch, like an English-language browser and a timezone on another continent paired with a target-GEO IP, usually gives away a VPN that only spoofed the IP. Mobile carrier ASN is another useful signal: real users in the target country often connect through local mobile carrier IP ranges rather than generic cloud ranges.

Testing the filter before launch

Before a campaign goes live, test the cloak manually — connect through a proxy or VPN with an exit node in the target country and confirm the offer loads, then repeat with a node outside the GEO and confirm the white page loads instead. It's also worth testing mobile network separately from Wi-Fi or desktop, since most of the real target traffic in PWA campaigns comes through mobile carriers specifically.

False positives: not cutting off real users

An overly aggressive filter — blocking every VPN with no exceptions, for instance — can accidentally cut off real users in the target country who happen to be on a corporate VPN or roaming. It's worth periodically checking how much traffic is landing on the white page: a sudden, unexplained jump can mean the GEO database is stale or the filter is set tighter than it needs to be.

Geo cloaking alongside other filters

GEO is just one layer — solid protection usually combines it with User-Agent, device, bot-signal, and IP-intel filters. In APEX, all of these, including GEO, live in one cloaking-plus-antibot module and get configured per campaign without separate services or manually wiring up IP-to-country databases.

FAQ

Is IP alone enough to determine GEO?
No, IP is just the baseline signal — it's backed up with language, timezone, and connection type, mobile carrier versus data center or VPN, for real reliability.
How does the cloak tell a real user from a VPN?
By connection ASN (mobile carrier or home ISP versus a cloud or VPN range) and by whether the language and timezone actually match the claimed country.
What should off-GEO traffic see?
A safe white page that reads as plausible to a random visitor or reviewer — not a blank placeholder, and not the real offer.
Does the GEO database need manual updates?
If the filter runs inside a service like APEX, the database updates automatically; building a cloak from scratch means tracking that yourself.
How do you confirm the filter works before running ads?
Connect through a proxy or VPN with an exit node in the target country and confirm the offer loads, then repeat from outside the GEO and confirm the white page loads instead.
Build your PWA in APEX in minutes

Cloaking, anti-bot, push, split tests and your own domains — in one service.

Get started free

Read also