Target visitors by country

Send French visitors to your French App Store, US visitors to the US one, with per-country override URLs.

Target visitors by country

You can attach per-country override URLs to any smart link. When a visitor from that country clicks, they get the localized destination instead of the default. Use it for localized App Store URLs, country-specific marketing pages, region-specific promo codes, anything.

How visitors are localized

We look up the visitor's IP in a GeoIP database (MaxMind) and resolve it to an ISO 3166-1 country code (FR, US, JP, …). This happens server-side in single-digit milliseconds — there's no client-side detection and no IP is stored beyond what's needed for analytics.

Add an override

  1. Open your link's Edit page (Dashboard → click a link).
  2. Scroll to the "Geo-targeted overrides" section.
  3. Fill in the form:
    • Country code — 2 letters, ISO 3166-1, e.g. FR, US, JP. Case insensitive.
    • iOS URL (optional) — leave empty to fall back to the link's default iOS URL.
    • Android URL (optional) — same.
    • Web URL (optional) — same.
  4. Click Add override.

You only need to fill the platforms you want to override. If you only set the iOS URL for FR, French Android users still go to the default Android URL.

A concrete example

You have an app available in French + English. The default link points to the US store.

CountryiOS overrideAndroid overrideWeb override
FRhttps://apps.apple.com/fr/app/your-app/id1234567890https://play.google.com/store/apps/details?id=com.yourapp&hl=frhttps://yourapp.com/fr
CAhttps://apps.apple.com/ca/app/your-app/id1234567890(empty — falls back to default)https://yourapp.com/en-ca

A visitor from Paris on iPhone → French App Store. A visitor from Toronto on Android → default (US) Play Store, since you didn't override Android for CA. A visitor from Tokyo → defaults across the board (no override for JP).

Edit or remove an override

In the same section, each override appears as a card with a Remove button. To change one, remove it and add a new one for the same country code (creating a second one for FR automatically replaces the first).

What about visitors we can't localize?

If we can't determine the country (private IP, missing GeoIP data, etc.), we serve the link's default URL. No errors, no surprises.

Performance

The override map is bundled into the same Redis cache entry as the link itself, so per-country routing adds zero database queries on the hot path. A visitor from FR and a visitor from US cost the same amount of work to resolve.