The user tapped the ad. I watched it happen in real-time through our analytics dashboardโa beautiful, high-intent click from someone who'd seen our product ad on Instagram. They wanted the blue sneakers in size 11.
Then our app opened to the homepage.
Not the sneakers. Not the product page. Not even the shoe category. The homepage. With a popup asking them to sign up for our newsletter.
I watched them close the app 4 seconds later. $3.50 in ad spend, gone. One potential customer, lost forever. And the worst part? This was happening thousands of times per day.
That's when I became obsessed with deep linking.
The Moment I Understood What We Were Losing
I did the math that night. Our ads were driving 50,000 clicks per month. Our app-to-homepage conversion rate was 2.3%. But when I finally implemented proper deep linkingโsending users directly to the product they'd clicked onโthat conversion rate jumped to 7.8%.
We'd been leaving 73% of our potential conversions on the table. For months. Because of a technical detail nobody on the marketing team understood.
The Three Types of Deep Links (And Why Only One Really Matters)
Traditional Deep Links: The Broken Promise
These are the basic links that look like myapp://product/12345. They work greatโif the app is already installed. If it's not? The user sees an error message. Dead end. Customer gone.
Deferred Deep Links: The Magic Trick
This is where it gets interesting. A user clicks your ad, gets sent to the app store, installs your app, opens it... and lands exactly where they were supposed to go in the first place. The link "remembers" where to send them through the entire installation flow.
The first time I saw this work, I thought it was actual magic. It's notโit's just really clever engineering with device fingerprinting and attribution windows. But the effect on conversion rates is magical.
Universal Links (iOS) / App Links (Android): The Gold Standard
These use regular HTTP URLs like https://myapp.com/product/12345. If the app is installed, it opens directly. If not, the user lands on your mobile web page. No errors, no dead ends, no confusion.
๐ก The Lesson I Learned the Hard Way
Universal Links and App Links aren't just "best practice"โthey're the only practice. We spent three months using custom URI schemes before realizing half our links were breaking in email clients that didn't recognize the protocol. Switch to Universal Links. Do it today.
The Implementation That Changed Everything
Setting up Universal Links on iOS felt intimidating at first. Hosting an apple-app-site-association file, configuring Associated Domains entitlements, handling incoming links in AppDelegate... it sounded like a weekend project.
It took four hours. And those four hours have generated more ROI than any other technical investment we've made.
The iOS Setup (Simplified)
- Create and host an apple-app-site-association file on your domain (just JSON)
- Add the Associated Domains entitlement in Xcode (one line)
- Handle incoming links in your AppDelegate (about 20 lines of code)
- Test with Apple's validation tool (catches mistakes before users do)
The Android Setup (Even Easier)
- Add intent filters to your AndroidManifest (copy-paste template)
- Host an assetlinks.json file on your domain
- Handle incoming intents in your activity
- Verify with Google's testing tool
The Campaign That Proved Everything
After implementing deferred deep links for our UA campaigns, we ran an A/B test. Half of our new installs from ads landed on the homepage. Half landed on the exact product from their ad.
Day-1 retention for the deep-linked group: 47%. Day-1 retention for the homepage group: 19%.
But here's what really shocked me: the deep-linked users had 3.2x higher purchase rates in their first week. They felt like the app understood them. Because it didโit knew exactly what they came for.
"The difference between a deep link and a homepage is the difference between 'welcome, here's what you wanted' and 'welcome, now go find it yourself.' One feels like service. The other feels like work."
The Mistakes I Made (So You Don't Have To)
The App Update That Broke Everything
We renamed our "ProductDetail" screen to "ProductView" during a refactor. Seemed harmless. Except every deep link in every ad we'd ever run was now broken. Users clicked ads and landed on error screens. For two days, until we noticed.
Now we have a rule: screen names in deep link routes are immutable. If we need to change the internal implementation, we create aliases. Never break existing links.
The Edge Case We Forgot
What happens when a user clicks a deep link to a product that's out of stock? We didn't plan for that. So they saw an empty page with a "Product not found" error. Beautiful user experience.
Now every deep link has a fallback. Out of stock? Show similar products. Expired promotion? Show current deals. Invalid parameters? Graceful redirect to relevant content. Never an error page.
The Analytics We Ignored
For six months, we had no idea how our deep links were performing. How many were succeeding? Failing? Timing out? We were flying blind.
Now we track everything: click-through rates by link type, completion rates by source, error rates by device. You can't fix what you don't measureโand you definitely can't optimize it.
Stop Losing Users at the Door
ClicksFlyer campaigns include built-in deferred deep linkingโevery ad click lands users exactly where they belong.
Get StartedThe Tools That Actually Work
After trying to build everything ourselves (and failing), we learned that some things are worth paying for:
- Branch: The most comprehensive solution. Deep linking plus attribution in one platform. Not cheap, but reliable.
- AppsFlyer OneLink: Great if you're already using AppsFlyer for attribution. Seamless integration.
- Adjust: Another solid MMP option with built-in deep linking capabilities.
- Firebase Dynamic Links: Was Google's free solution. Now being deprecated. Don't start new projects here.
The Bottom Line
Every day you run ads without proper deep linking, you're paying to bring users to your door and then making them wander around looking for the entrance. Some will find it. Most will leave.
Deep linking isn't a nice-to-have feature or a someday project. It's the difference between profitable user acquisition and expensive user confusion.
Those blue sneakers in size 11? The user who wanted them is still out there somewhere. But they're probably buying from a competitor whose app actually took them where they wanted to go.