Industry packs are ready for eight industries. Start from journeys built for yours.Browse packs
Channels and deliveryUpdated 13 Mar 2026

Deep Linking for Mobile Marketing: Types, Setup and Testing

What deep links are, the five types, how they work on iOS and Android, how to use them in campaigns, a seven-step setup and test plan and the usual causes of broken links.

RM
Written by Rohan Mehta
  • Published13 Mar 2026
  • Read time7 min
  • Length1,391 words
Share this guide
Deep linking guide cover

You send a push notification about a pair of shoes. The customer taps it, and the app opens on the home screen. Now they have to search for the shoes themselves, and many will not bother. Deep linking fixes this: it makes a link open the exact screen inside the app that the message promised. It sounds like a developer detail, but it decides whether your push, SMS, email and WhatsApp messages complete the journey or drop people at the start. This guide explains what deep links are, the different types, how they work on iOS and Android, how to use them in campaigns, how to test them and the problems that most often break them.

A deep link is a link that points to a specific location inside an app, such as a product page, an order tracker or a particular lesson, instead of just launching the app. The wider idea of linking to content inside a page rather than its front door is described under deep linking. In mobile marketing, it means that a tap on a notification, message or ad takes the person straight to the relevant screen, with the right content loaded.

Deep link paths: a tapped link from push, SMS, email or WhatsApp opens the app on the exact screen when installed, or falls back to the app store or a web page when not installed, with deferred deep linking restoring the destination after install
Same link, three outcomes: open the screen, send to the store and remember the destination, or fall back to the web.
TypeExampleHow it worksBest for
URI scheme linkmyapp://product/TR-07A custom scheme registered by the appSimple internal links, push payloads; fails if the app is not installed
Universal Link (iOS)https://shop.example.com/p/TR-07A normal web URL that opens the app when installed, otherwise the websiteEmail, SMS, ads, anywhere a web link is expected
App Link (Android)https://shop.example.com/p/TR-07A verified web URL that opens the appSame as above on Android
Deferred deep linkLink that survives installRemembers the destination, and opens it after the user installs and launches the appNew user acquisition and install campaigns
Contextual deep linkLink carrying campaign or referral dataAdds parameters such as source, coupon or referrerAttribution, referrals, personalised onboarding

Apple documents Universal Links and Google documents Android App Links. Details change with operating system versions, so always check the current guidance before you implement.

  • Less friction. Every extra tap loses people. The right screen at the first tap lifts completion. See conversion rate optimization.
  • Messages keep their promise. A notification about a price drop opens that product.
  • Better measurement. Parameters tell you which campaign brought the person.
  • Onboarding that continues. A friend invite can open the app with the invitation already applied. See referral programs.
  • Cross-channel consistency. The same link can work in SMS, email, WhatsApp and push.

How it works under the hood

With web-style links (Universal Links on iOS and App Links on Android), your website domain hosts a small file that tells the operating system which app is allowed to open which links. When a user taps such a link, the system checks the file and, if the app is installed, opens it and passes the URL. The app then reads the path and parameters and shows the right screen. If the app is not installed, the link simply opens in the browser, which can show the product or send the person to the store.

// Android: /.well-known/assetlinks.json (simplified illustration)
[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.shop",
    "sha256_cert_fingerprints": ["AA:BB:...:FF"]
  }
}]

// iOS: /.well-known/apple-app-site-association (simplified illustration)
{
  "applinks": {
    "details": [{
      "appIDs": ["TEAMID.com.example.shop"],
      "components": [{ "/": "/p/*" }, { "/": "/orders/*" }]
    }]
  }
}

These are only illustrations to show the idea. The exact file format, location and signing details are specified by Apple and Google, and your developers should follow the current documentation.

ChannelHow to use deep linksTip
PushPut the destination in the payload so a tap opens the right screen. See push examplesUse web-style links when you can; they degrade gracefully
EmailUse universal or app links for buttons; they open the app on phones that have itTest in major email apps, some open links in an in-app browser
SMSShort links that resolve to a universal linkKeep within DLT rules for links. See DLT approval
WhatsAppButtons or links in templatesTemplate links may need to be approved. See WhatsApp templates
In-app messagesButtons that route to another screen. See in-app messagingHandle expired or unavailable destinations
QR codesPrint a link that opens the app or falls back to the storeAdd campaign parameters

In Flowfox, a button in a campaign, journey or email can carry a deep link, with profile variables such as the product ID, so that each person lands on their own item. See the push, SMS and WhatsApp channel pages, and the developer docs for SDK setup.

How to set up and test deep linking

  1. List the destinations you need. Product, cart, order, offer, profile, category. Map each to a URL pattern.
  2. Choose web-style links first. Use universal or app links, with URI schemes only for internal routing.
  3. Publish the association files. Host the files on your domain as your developers specify, and verify them.
  4. Handle the incoming link in the app. Parse the path and parameters, load the screen and the data.
  5. Plan the fallback. If the app is not installed, show the web page or send to the store with the destination remembered.
  6. Add campaign parameters. Source, medium, campaign and any coupon, for measurement.
  7. Test on real devices. Test with the app installed and not installed, with the user logged in and out, in several apps such as mail clients and messengers.
SymptomLikely causeFix
Opens the browser although the app is installedAssociation file missing, wrong or not verified; link opened inside another app’s browserCheck the files and use a link that the system recognises
Opens the app on the home screenApp ignores the path or the screen is not handledImplement routing for every link pattern
Works when open, not from a cold startLink handled too late in the launchHandle the launch URL early and store it
Needs login first and then loses the destinationDestination not kept through sign-inSave the destination and resume after login
Wrong product shownParameter mismatch or stale cacheValidate IDs and fetch fresh data
Breaks after a redesignRoutes renamedKeep old routes working or redirect

A worked example

A fashion app sends a price-drop notification for a jacket. In version one, the payload contains only the app name, so a tap opens the home screen. The team changes it so the payload carries a link to the product page and the size the customer viewed. For people without the app installed, the same link opens the mobile web page, which offers to install the app and remembers the product for later. They also add a rule that if the item is out of stock when the link is opened, the screen shows similar products and a back-in-stock option. The brand and flow are invented and no results are claimed, but each change removes a point where a person could give up. For the related reminder flow, see abandoned cart recovery.

Governance matters too. Links that carry personal data in the URL can leak it through logs and referrers, so pass identifiers, not names or emails. Links that perform an action, such as applying a discount, should be validated server side. And since links are often opened in many contexts, make sure that your privacy practices cover the tracking parameters you attach. For background on how apps are distributed and opened, see mobile apps.

3Link outcomes to plan: open, install, web
1Exact screen per message
2Platforms to test: iOS and Android

Common mistakes

  • Landing on the home screen. It defeats the point.
  • Using only custom schemes. They fail when the app is missing.
  • No fallback. New users see an error.
  • Skipping tests inside email and chat apps. They often open links in their own browser.
  • Personal data in URLs. It leaks.
  • Forgetting login state. Keep the destination through sign-in.

A deep link is a promise. The message says where you are going, and the link has to take you there.

Send people to the exact screen. Add deep links to push, email, SMS and WhatsApp with profile variables.

Explore push

Read next: mobile app engagement, what is an SDK and the blog.

Frequently asked questions

What is a deep link?

A deep link is a link that opens a specific screen inside an app, such as a product page or order tracker, instead of only launching the app.

What is the difference between a universal link and a deep link?

A universal link is a type of deep link on iOS that uses a normal web URL and opens the app if installed, otherwise the website. Android has a similar feature called App Links.

What is a deferred deep link?

A deferred deep link remembers the destination when the app is not installed, and opens it after the user installs and launches the app.

Why does my deep link open the browser instead of the app?

Common causes are a missing or unverified association file, a link opened inside another app’s browser, or the app not handling that path.

Can I use deep links in email and SMS?

Yes. Use web-style universal or app links so they work whether or not the app is installed, and test in the mail and messaging apps your customers use.

How do I track campaigns with deep links?

Add campaign parameters such as source, medium and campaign name to the link, read them in the app and send them as event properties.

Are deep links safe?

They can be, if you avoid personal data in URLs, validate parameters on the server and treat links that trigger actions with care.

Topics#deep linking#universal links#app links#mobile#push
Was this guide helpful?Your answer helps us improve our guides.

See your own customers in Flowfox this week.

Start a free workspace, connect a data source and send your first journey. Or book a guided demo.