ZIPPY DOCS

Audience routing (geo + device)

Send one Zippy link to different destinations by device/OS (iOS, Android, desktop) and by country — resolved at redirect time, and it still opens the native app.

Audience routing (geo + device)

Audience routing lets a single Zippy link resolve to different destinations for different visitors, based on their device/OS and their country. You set the rules once on the link; Zippy picks the destination the instant someone taps.

Routing is available on Hero and up.

What you can route on

RuleMatchesExample destination
iOSiPhone / iPadyour App Store page
AndroidAndroid devicesyour Google Play page
Desktopnon-mobileyour website
By countrya visitor's country (ISO code, e.g. US, GB)a localized page

Any rule you leave blank simply doesn't apply. A link with no rules behaves like a normal Zippy link — one destination for everyone.

Resolution order

When more than one rule could match, Zippy resolves in a fixed, predictable order — the first match wins:

  1. iOS (if the visitor is on iOS and the rule is set)
  2. Android (if on Android and set)
  3. Desktop (if non-mobile and set)
  4. Country (geo[country] if set for the visitor's country)
  5. The link's default destination (the URL you created it with)

So an iOS visitor from the US hits your iOS rule, not your US rule — device is the more specific intent for an app link. If nothing matches, the visitor gets the default destination; there's never a dead end.

It still opens the native app

Routing composes with Zippy's native-app spring. If your iOS rule points at an App Store URL, Zippy opens the App Store app — including out of the Instagram / TikTok in-app browser — not just a web redirect. Each routed destination is treated like any Zippy destination: it springs the right native app where one exists.

UTMs ride every destination

If the link also has UTM tracking, Zippy composes your utm_* parameters onto every routed destination automatically. Your analytics stay accurate no matter which rule a visitor matched.

Set it up

Dashboard (web): open a link's editor (or the ZIP form), expand **Audience routing (geo

  • device)**, fill in the device destinations and add country rows as needed, then save.

Mobile app: open a link's detail screen and use the Audience routing section — the same device fields and per-country rows.

Changes take effect immediately; the short link itself never changes, so anything you've already shared keeps working and simply starts routing.

Routing or a split test — not both

A link can route by audience or A/B split-test, never both. Routing picks a destination from who a visitor is; a split test picks one at random so you can compare. Setting one on a link that already has the other returns an ab_routing_conflict error rather than silently ignoring one of them. Switching between the two is instant, and the link keeps redirecting throughout.

Scheduled destinations are independent of this choice — a schedule swaps the default destination everyone else falls through to, so it stacks with routing.

Notes

  • Country detection uses the visitor's network location (Cloudflare's geo signal) — coarse country only, no precise location and no personal data.
  • Routed links are served with Cache-Control: no-store so a shared cache never pins one visitor's destination onto the next.
  • Every destination must be a valid http(s) URL.

Read more

On this page