How to Geo-Target Your Affiliate Links (Step-by-Step)
Everything you need to go from "all my traffic hits one offer" to "every click goes to the right offer by country." No prior experience required.
What You'll Need
Before we start, make sure you have these three things ready. If you're missing any of them, the steps below will explain where to get them.
- A CPA network account with offers available for multiple countries (MaxBounty, ClickDealer, Zeydoo, Adcombo, or similar)
- A traffic source where you're running or planning to run campaigns (PropellerAds, Adsterra, RichAds, or any ad network with international traffic)
- A geo-routing tool to create your smart link (we'll use Level2Links in this walkthrough — the free tier is enough to follow along)
If you're not sure why you'd want to geo-target your links in the first place, our beginner's guide to geo-targeting covers the reasoning. This post is about the how, not the why.
The Steps
Before setting anything up, figure out where your traffic is actually coming from. If you're already running a campaign, check your traffic source's reporting dashboard for a country breakdown. Most ad networks show this in their stats.
On PropellerAds, go to Statistics → Group by Country. On Adsterra, check your campaign reports with the GEO filter. If you're not running yet, look at the traffic estimates for your targeting — most networks will show you the available volume by country.
What you're looking for: which countries are sending you the most clicks? Focus on the top 5-8 countries. These are the GEOs worth finding dedicated offers for. Everything else gets a fallback.
Even if you target "US only" in your ad network, you'll still get international traffic. VPNs, shared IPs, and broad inventory pools mean 20-60% of your clicks may come from outside your target GEO. That's not a bug — it's normal with popup and push traffic. Geo-routing turns that leakage into revenue.
Log into your CPA network and find offers that match your vertical for each of your top countries. This is the most time-consuming step, but it gets faster once you know where to look.
Here's how to do it efficiently:
Start with your primary GEO (probably US or UK). Find an offer that works — something you've run before or that has good reviews from your network manager. Note the vertical (sweepstakes, nutra, finance, etc.).
Then filter your network's offer wall by the same vertical, but for each of your other top GEOs. Most networks let you filter by country and category simultaneously. You're looking for localized versions of similar offers.
Don't obsess over finding the "perfect" offer for every country. For Tier 2 and Tier 3 GEOs, any relevant offer that pays something is better than the zero dollars you're currently earning from that traffic. You can optimize later — right now, the goal is to monetize traffic that's currently wasted.
Here's an example of what your offer list might look like when you're done:
🇺🇸 US → "Win iPhone 16" — MaxBounty — $2.40/lead
🇬🇧 UK → "UK Prize Draw" — ClickDealer — $1.80/lead
🇩🇪 DE → "Gewinnspiel DE" — Zeydoo — $1.60/lead
🇫🇷 FR → "Concours FR" — Adcombo — $1.50/lead
🇮🇳 IN → "Mobile Rewards India" — Zeydoo — $0.35/lead
🌍 Fallback → "Global SOI Sweepstakes" — MaxBounty — $0.15/lead
Save all the offer URLs somewhere — you'll need them in the next step. Also note the postback URL from each offer if you want conversion tracking (most CPA networks provide this in the offer details).
Now you set up the actual routing. We'll walk through this using Level2Links, but the concept is the same with any geo-routing tool.
3a. Sign up at level2links.com (free account, no credit card).
3b. Create a new campaign. Give it a name you'll recognize (e.g., "Sweeps - PropellerAds - Multi-GEO").
3c. Add your GEO targets. For each country, paste the offer URL you saved from Step 2. Select the country from the dropdown, paste the URL, done.
3d. Set your fallback URL. This is where visitors from countries you didn't specifically configure will go. Use your global SOI offer or whatever catches everything else.
3e. (Optional) Add device targeting. If you have separate mobile and desktop offer pages, you can split each GEO by device type too.
3f. Save and copy your campaign link. This is the single URL you'll use in your ad campaigns — it handles all the routing automatically.
Our video school has two short videos showing exactly how to create a campaign and set up GEO targeting in Level2Links. It's faster to watch than to read.
This step is optional but strongly recommended. Without conversion tracking, you'll see clicks but you won't know which GEOs are actually converting and making money.
How it works: Most CPA networks support "postback URLs" — when a conversion happens, the network pings a URL with the conversion data. Level2Links provides a postback endpoint you can paste into your network's offer settings.
4a. In Level2Links, go to your campaign settings and find the postback URL.
4b. In your CPA network, go to the offer settings and paste the postback URL into the "postback" or "server-to-server tracking" field.
4c. Make sure the click ID parameter is passed through correctly (Level2Links uses standard click ID passing — the video walkthroughs show this).
Once configured, your Level2Links dashboard will show conversions alongside clicks, and you'll be able to see your CPM and ROI per GEO in realtime.
Set up postbacks from the start, even if you think you'll only run the campaign for a few days. Knowing your per-GEO conversion rate is how you decide which GEOs to keep, which to cut, and which offers to swap. Without this data, you're guessing.
Go to your ad network (PropellerAds, Adsterra, etc.) and either create a new campaign or update your existing one. Replace the old direct offer URL with your new geo-routed link from Level2Links.
That's it. Your traffic source doesn't know or care that the link does routing behind the scenes. It just sends clicks to the URL, and Level2Links handles where each visitor actually ends up based on their country.
If updating an existing campaign: You don't need to change your targeting, bids, or creative. Just swap the URL. The campaign keeps running as before, but now every click has a monetization path instead of just the clicks from your primary GEO.
If creating a new campaign: You can actually broaden your GEO targeting now. Since every country has an offer, you're not wasting money on non-target traffic anymore. Consider targeting "All countries" or at least expanding beyond just your primary GEO — you might find that some Tier 2 countries have great ROI at lower CPMs.
Let the campaign run for 2-3 days at your normal budget, then check your Level2Links dashboard. You're looking at three things:
Clicks per GEO — confirms your traffic distribution. If one country is sending way more traffic than expected, that's an opportunity or a problem depending on whether it converts.
Conversions per GEO — the money metric. Which countries are actually converting? At what rate? Some GEOs will surprise you (India often converts well on mobile SOI offers despite the low payout).
CPM per GEO — your cost per thousand impressions. Level2Links calculates this inline. If a GEO's CPM is higher than its revenue per thousand clicks, that GEO is costing you money and you should either find a better offer for it or redirect it to your fallback.
Don't optimize too early. Give each GEO at least a few hundred clicks before making decisions. Small sample sizes lead to bad conclusions. A GEO that looks terrible after 50 clicks might look great after 500.
Common Mistakes to Avoid
Skipping the fallback
Always set a fallback URL. Even if you've configured your top 10 GEOs, there will be clicks from countries you didn't anticipate. Without a fallback, those visitors go nowhere. With a fallback — even a low-paying global SOI offer — they at least have a chance to convert.
Using offers that don't match the GEO
Don't send German traffic to an English-language offer just because the network says it "accepts" DE traffic. Localized offers with the local language convert dramatically better. The extra 10 minutes finding a German-language offer pays for itself immediately.
Ignoring device splits
Mobile and desktop conversion rates can be wildly different for the same offer. If you notice a GEO has high clicks but low conversions, check whether it's mobile-heavy traffic going to a desktop-optimized landing page. Adding device targeting to your routing can fix this overnight.
Optimizing based on one day of data
Traffic quality fluctuates. A GEO that looks unprofitable on Monday might be great by Wednesday. Give your campaigns at least 48-72 hours and a few hundred clicks per GEO before cutting anything.
What to Do Next
Once your first geo-routed campaign is running and profitable, the playbook is simple: replicate. Take your other campaigns and add the same geo-routing setup. Test new GEOs. Try different offer verticals. Use your L2L dashboard to compare CPMs across campaigns and find your most profitable GEO/offer combinations.
Want to see real numbers? Our case study walks through a real campaign that went from -$45 to +$218 after adding geo-routing — same traffic, same spend. The breakdown shows exactly where the extra revenue came from.
If you want to compare different tools before committing, check out our ranked list of the 5 best geo-targeting tools for affiliates or the Voluum alternatives breakdown for a more detailed comparison.
And if you just want to get started right now, the video walkthroughs will have you set up in under 5 minutes.
Ready to set up your first geo-routed campaign?
Start FreeFree account. No credit card. 5 minutes to launch.
← Back to all posts