Deep linking
For mobile teams routing paid funnel visitors into an iOS or Android app. You'll have a working plan for each major deep-linking provider. You need a Deep Link Button on the funnel's success page and a destination URL or universal link.
What Zellify provides#
Zellify ships two deep-linking components:
- Deep Link Button — the standard component. Builds a URL from your destination + opt-in built-in parameters (app_user_id, email, fbp/fbc, Stripe customer ID, etc.) and forwards selected params from the funnel landing URL. Use this with Branch, Adjust, plain universal links, or any provider that accepts a query-string contract.
- AppsFlyer Deep Link Button — a dedicated AppsFlyer variant that loads the OneLink Smart Script and routes through
generateOneLinkURL(). Use this if you're on AppsFlyer.
Both are React components in the funnel builder; you drop them on the success page.
Provider compatibility#
AppsFlyer (first-class)#
Use the dedicated AppsFlyer Deep Link Button. It loads the OneLink Smart Script automatically and handles the pid / c / afCustom plumbing for you, including the keys: [] defense against ad-network URL pollution.
If you'd rather not load the Smart Script, the standard Deep Link Button also works with OneLink — just paste the OneLink URL as the destination and enable whichever built-in params you need. You won't get Smart Script's redirect optimisations and you'll need to manage pid / c yourself on the URL.
Adjust#
Use the standard Deep Link Button with an Adjust tracker URL as the destination. Enable App User ID so each click carries the funnel session identity. If you use Adjust's deep_link param, encode it on the destination URL up front:
Adjust's deferred deep linking handles the case where the app is not installed. When the app launches post-install, read the deep link from Adjust's SDK and parse the app_user_id query param off the deep-link URL.
Branch#
Use the standard Deep Link Button with a Branch link as the destination. Branch's $deeplink_path and $canonical_url go on the destination URL; enable App User ID so the user identity rides along:
Inside the app, read Branch's params on session init.
Plain universal links / App Links#
Point the standard Deep Link Button at your domain's universal link (iOS) or App Link (Android). Enable any built-in parameters your app reads from the URL.
App Store / Play Store badges#
Switch the Deep Link Button to App Store Buttons mode for the standard Apple + Google Play badges. Each badge has its own Link field — point them at your store URLs (or store-specific OneLinks if you're on AppsFlyer). Built-in parameter injection runs on both badges.
Other providers#
Any provider that accepts query-string params works with the standard Deep Link Button. Configure the destination URL with the provider's link format and enable the built-in parameters your app needs.