Replacing GeoTargetly with AffilFinder
How to migrate from GeoTargetly (or similar geo-block tools) to AffilFinder — with monetization on the blocked experience.
On this page
Most geo-blocking tools stop at redirect: "your country isn't supported — goodbye." AffilFinder turns the same decision into revenue: when a user is declined, you show country-appropriate affiliate offers and get paid per click.
If you're coming from GeoTargetly, Geoscreen, GeoIP-Redirect, or a hand-rolled Cloudflare Worker, this recipe maps their concepts to ours and gives you a zero-downtime migration path.
YOUR_PUBLIC_KEY placeholders.Sign in to pre-fill with your real keys →Conceptual mapping
| GeoTargetly concept | AffilFinder equivalent |
|---|---|
| GeoBlock rule | Geo rule on website → Block |
| Redirect action | Decline widget flow (with offers) or Iframe embed |
| Whitelist / Blacklist countries | Allow / Block list on Site details |
| "Custom message" page | Standard decline UI from AffilFinder (skinnable) |
| Bypass token | Not needed — AffilFinder doesn't require a bypass. Your own team testing from outside a configured country will see offers like any other blocked visitor; use data-dev-country on localhost to simulate locally |
Migration — 3 options
Option A: Keep your existing block, add AffilFinder on the "blocked" page
This is the lowest-risk migration. Keep your current GeoTargetly redirect in place, but change the destination to an AffilFinder-powered page.
Update GeoTargetly redirect destination
Point the "blocked" redirect at
https://yoursite.com/blocked.Create /blocked page
A standard page on your site that renders the section widget (or iframe embed) with your AffilFinder keys.
Roll out gradually
Start with a single country, confirm clicks and revenue flow, then enable for all blocked markets.
No AffilFinder geo rules needed in this mode — the widget will show offers to everyone who lands on /blocked regardless of their IP. Your GeoTargetly rule is still the gate.
<!-- /blocked page -->
<h1>This service isn't available in your region</h1>
<p>Here are some alternatives you might enjoy:</p>
<div id="affilfinder-ads"></div>
<script
src="https://cdn.affilfinder.com/widget-section.js"
data-pub="YOUR_PUBLIC_KEY"
data-website="YOUR_WEBSITE_KEY"
async
></script>Option B: Replace GeoTargetly entirely with the geo-block widget
Once you're comfortable, remove GeoTargetly and let AffilFinder handle both gating and monetization.
Install the geo-block widget site-wide
Drop
widget.jsin your<head>with your keys.Configure geo rules to match
In the dashboard → Websites → your site → Geo rules, recreate the same allow/block list you had in GeoTargetly.
Shadow-test
For a day or two, keep both running. Compare: does AffilFinder block the same visitors GeoTargetly did? Our decision is IP-based, same as theirs, so results should be 99%+ identical.
Disable GeoTargetly
Once shadow-test passes, deactivate the old tool. You're now earning on every blocked click.
See Widget geo-blocking for the full overlay experience.
Option C: Use the decline widget for checkout / KYC declines
If your block isn't a pure geo-block but rather a payment, KYC, or account decline, use the decline widget instead. It's the same idea — a declined user sees offers — but triggered by your backend, not by geo.
Feature comparison
| GeoTargetly | AffilFinder | |
|---|---|---|
| IP-based geo-blocking | ✅ | ✅ |
| Per-country rules | ✅ | ✅ |
| Country-specific redirects | ✅ | ✅ (via decline + offers) |
| Monetization on blocked visitors | — | ✅ (CPC earnings) |
| Analytics | Basic | Real-time clicks, impressions, geo breakdown |
| Integration time | Minutes | Minutes |
| Pricing | Paid subscription | Free — you earn per click |
| Custom branding | Limited | Full HTML/CSS control (section widget or iframe) |
Gotchas
- Your "blocked" page must be allowed by your own middleware — If your existing redirect rule sends blocked traffic to
/blocked, make sure that page itself isn't also blocked. Common mistake. - CDN caching — If your CDN caches HTML without varying on IP, you'll need to bypass cache on
/blockedand on the widget script's requests. Our/v1/decisioncall is always fresh (no CDN caching) so that side is fine. - Dual-blocking ambiguity — If you run both GeoTargetly AND AffilFinder geo rules during shadow-test, the stricter one wins. That's generally safe but remember to reconcile the configs before removing GeoTargetly.
Related
Need more help?
Can't find what you're looking for? Our team responds within one business day.