Appy
← Back to Blog
Guide

Deep Links in Email: Why Click Tracking Breaks Them, and How to Keep Both

Your campaign email links to a screen in your app, and the tap opens your website instead. Click tracking is the reason. What each ESP documents as of October 2026, the three fixes and what each one costs you, and a test plan for Gmail, Apple Mail and Outlook on iPhone and Android.

October 23, 2026•8 min read

Keep click tracking on and still open the app

  • No ESP SDK, no CDN in front of the click domain
  • One tap into the app on Pro
  • Phones without the app go to the store
Create your link

Your email doesn’t link to your app any more

A cart reminder says “Finish your order” and links to shop.example/cart. Someone taps it on an iPhone with your app installed, and Safari opens your website. The deep link isn’t broken. It just never reached the phone: your email service provider (ESP) replaced every link with one on its own click-tracking domain, so it can count the tap before sending the person on.

Your app claims shop.example. It doesn’t claim the ESP’s click domain, so iOS and Android treat the tap as an ordinary web link and open the browser. OneSignal’s and Braze’s documentation both describe it this way. The ESPs that support Universal Links either make the click domain serve your app’s files or leave the link unwrapped.

What happens between the tap and the page

One tap on a tracked link in a mail app, simplified.

The phone

click.esp.example → shop.example

  1. 01Tap in the mail app
    GET https://click.esp.example/c/8f3a2e…
    (the email showed shop.example/cart)

    Your app is associated with shop.example, not click.esp.example, so the phone opens the browser.

  2. 02The ESP counts the click
    302 Found
    Location: https://shop.example/cart?utm_source=email

    This redirect is what click tracking is for.

  3. 03The browser follows it
    GET https://shop.example/cart?utm_source=email

    Apple says a redirect to a Universal Link should still reach the app through the browser. The ESPs report the page staying in Safari.

  4. 04Your website answers
    200 OK
    Content-Type: text/html

    The person reads your cart page in the browser. The app never saw the tap.

Placeholder domains. Some ESPs add hops of their own, and Outlook’s Safe Links can add one in front of the ESP’s.

Does the redirect ever reach the app?

Apple’s debugging technote for Universal Links, TN3155, says that when a tapped link isn’t a Universal Link but redirects to one, the person is routed “through the web browser to the app”, and calls that allowed but not preferred. The ESPs describe what their customers see instead. Klaviyo says the tracking redirect stops the app from opening directly. OneSignal lists tracked links staying in Safari on iOS and in the browser on Android. Adobe says tracked Marketo links don’t open the app, and Kajabi says they may open in Safari.

Android gets less attention. Kajabi documents the problem on iOS only and says its Android apps need nothing extra; OneSignal lists the same failure on both. Klaviyo, Braze and SendGrid all want an assetlinks.json on the click domain next to the AASA file, so they treat Android like iOS. Where the docs disagree, your own test decides, and there’s a plan for it below.

The shortcut people try next, a myapp:// link, is worse in email. OneSignal says custom schemes aren’t clickable in email clients, and Customer.io says Gmail and others can strip them. The link in the email has to be https.

What each ESP documents

From each ESP’s own help page, read on October 23, 2026. Top: the click domain serves your app’s files. Middle: per-link opt-outs. Bottom: per email only.

Klaviyo (updated Oct 20, 2026)
What its docs offerKlaviyo hosts your AASA and assetlinks.json on a Klaviyo-hosted click domain. Needs the Klaviyo SDK: iOS 5.1.0, Android 4.1.0, React Native 2.1.0. SendGrid-hosted click domains aren’t supported.
Clicks still countedYes
Braze (no date shown)
What its docs offerThe ESP’s click domain serves your files, through a CDN if it can’t itself. Path rules for SendGrid, SparkPost and Amazon SES.
Clicks still countedYes, if the app resolves the wrapped link
SendGrid (updated Jul 21, 2026)
What its docs offerBranded link domain behind a CDN or proxy that serves the files, AASA limited to /uni/*, universal="true" on each app link.
Clicks still countedYes, once the app requests the wrapped URL
Customer.io (updated Sep 1, 2026)
What its docs offerclass="untracked" leaves the link unwrapped, with a link_id parameter added.
Clicks still countedOnly if your app or server posts the click back
OneSignal (no date shown)
What its docs offerdisable-tracking=true on one link, or tracking off for the whole email.
Clicks still countedNo, the link drops out of click metrics
Batch (no date shown)
What its docs offerdata-msys-clicktrack="0" on the link.
Clicks still countedNo, per Batch
Kajabi (no exact date)
What its docs offerdisable-tracking="true" on the link. Documented as an iOS problem.
Clicks still countedNo
Adobe Marketo (updated Aug 18, 2026)
What its docs offerTurn tracking off for that link.
Clicks still countedNo, the click isn’t recorded
Mailchimp (no date shown)
What its docs offerCampaigns: tracking on or off per email, and free accounts keep the redirect anyway. Transactional: mc:disable-tracking per link.
Clicks still countedNo
HubSpot (updated Oct 14, 2026)
What its docs offerTracking off per marketing email or for the account. No per-link option, no deep link guidance.
Clicks still countedNo
Braze also lists per-link opt-outs for the ESPs it sends through: clicktracking=off (SendGrid), data-msys-clicktrack="0" (SparkPost), ses:no-track (Amazon SES). OneSignal’s older v9 docs had no per-link option; the current ones do.

Outlook can add a wrapper of its own

If you mail work addresses, there may be a second wrapper. In organisations with Microsoft Defender for Office 365, Safe Links rewrites links in incoming mail to an address on safelinks.protection.outlook.com and checks them when they’re clicked (Microsoft Learn, updated October 14, 2026). Admins can turn rewriting off, and Outlook on iOS and Android then checks the link at the click without rewriting it. They also keep a list of URLs that are never rewritten.

Microsoft doesn’t document how Safe Links treats Universal Links or App Links. Treat it as one more redirect in front of your ESP’s, and put a work Outlook account in your tests. Outlook.com and Microsoft 365 Personal have a separate version of the feature.

Three fixes, ranked by what you give up

From the one that costs you your click data to the one that costs you a tap.

01

Turn tracking off for app links

Add your ESP’s opt-out attribute to each app link, a few minutes per template. You lose the click in ESP reports, and in Mailchimp campaigns and HubSpot marketing emails you can only switch it off for the whole email. Batch suggests UTM tags and your own analytics to make up for it.

02

Make the click domain an app domain

The click domain serves an AASA file and assetlinks.json, and your app lists it next to your own domain. Clicks stay in your reports, but it’s engineering work tied to one ESP: Klaviyo requires its SDK, SendGrid needs a CDN or proxy plus app code that requests the wrapped URL, and a new click domain ships with an app release. Braze warns that a broad path rule makes every email link open the app. Customer.io skips the wrapper and has your app post the click back.

03

Point the tracked link at a link that opens the app

Tracking stays on, and nothing changes in the ESP’s settings or in your app. The ESP redirects to a smart link, which is in the browser by then and handles the app. You give up one hop, and on iPhone with https deep links, one tap on an Open the app button.

The third fix with Appy

Use an Appy link as the destination in your ESP: appy.to/cart instead of shop.example/cart. The ESP wraps it, counts the click and redirects as usual. The Appy link loads in the browser and counts the click again, by country and device and by whether it went to a store or your website, with bots filtered out.

On Pro ($9.99 a month), a deep link on the Appy link gets the person into the app. With a custom scheme, the link tries the app in Safari and Chrome and goes to the store if it doesn’t open. With an https deep link on your own domain, iPhone shows a short page with an Open the app button. That button links to a different domain from the page, and Apple documents a tap on a Universal Link in a different domain as opening the app. If nobody taps, the page moves on to the App Store after a few seconds. Android opens the address as an intent for your app, and goes to Google Play if the app isn’t there.

Your app does have to open from that deep link already; the Universal Link validator checks your AASA file, Apple’s CDN copy of it and assetlinks.json. On Business, parameter forwarding passes the ESP’s UTM tags on to the destination, and a custom domain lets the email show your own domain instead of appy.to. That domain does redirects only: Universal Links on your own domain through Appy are Enterprise.

Where a tracked tap ends up

appy.to/cart

reached through the ESP’s click redirect

  • iPhone with the appOpen the app button, one tap (Pro)
  • Android with the appThe app opens through an intent (Pro)
  • Phone without the appApp Store, Google Play or AppGallery
  • ComputerYour website
The iPhone lane is for https deep links on your own domain; with a custom scheme, Safari tries the app on its own. Store routing works on every plan, opening the app is Pro.

A test plan before the next big send

Mail apps change how they open links without notice. An afternoon with two phones settles it for your setup, whichever fix you pick.

01

Rule out your own setup first

Paste the plain deep link into Notes on an iPhone and long-press it, as Apple’s TN3155 suggests. If there’s no option to open it in your app, fix your AASA file before you blame the ESP.

02

Send for real, not a preview

Klaviyo notes that previews don’t use click tracking, so their links differ from live ones. Send a real campaign to a seed list of your own addresses.

03

Cover the mail apps

Apple Mail on iPhone; Gmail and Outlook on iPhone and Android. Add a work Outlook address if you mail business customers. Write down the settings: Gmail on Android can open links inside Gmail, and Outlook on iOS and Android may offer to open them in Edge.

04

Test with and without the app

One phone with the app installed, one without, as Klaviyo and Customer.io both recommend. With the app, the right screen should open; without it, the store, not your homepage.

05

Record every tap

App, store, website or a blank page, and whether the ESP and your link reports both counted it. Run the sheet again after an app release, a new click domain or a major iOS or Android update.

Read next

Deep links in email: questions

Why do links in my emails open the website instead of the app?

Click tracking rewrites every link to the ESP’s click domain, which your app doesn’t claim. The phone opens the browser, follows the ESP’s redirect and lands on your website.

Does turning off click tracking fix deep links?

Usually, according to the ESPs that document it, but the click disappears from your reports. Most let you do it per link. Mailchimp campaigns and HubSpot marketing emails only do it per email, and Mailchimp says free accounts keep the redirect anyway.

Does Klaviyo support Universal Links in email?

Yes. Its help article, updated October 20, 2026, requires a Klaviyo-hosted click-tracking domain and the Klaviyo SDK: iOS 5.1.0, Android 4.1.0 or React Native 2.1.0 and later. SendGrid-hosted click domains aren’t supported.

Can I put a myapp:// link in an email?

Not reliably. OneSignal says custom schemes aren’t clickable in email clients, and Customer.io says Gmail and others can strip them. Put an https link in the email; an Appy link can still open a custom-scheme deep link once it’s in the browser.

Do Outlook Safe Links break deep links?

Microsoft doesn’t document it either way. In organisations with Defender for Office 365, Safe Links rewrites links to a safelinks.protection.outlook.com address and checks them at the click, which puts another redirect in front of your ESP’s. Test with a work Outlook account.

Do UTM parameters survive the redirects?

The ESP sends the person to the link in your email with whatever tags it appended. If that’s an Appy link, parameter forwarding on Business passes the query parameters on to the destination. For what Safari does with tracking parameters, see our iOS 26 link tracking guide.

Do I need an SDK for the Appy route?

No. Appy deep links (Pro) work with your app as it is, as long as it already opens from its custom scheme or from Universal Links and App Links on your own domain.

Continue exploring

Guide
Oct 23, 2026
7 min read

Universal Links on Shopify, Webflow, Wix and Squarespace: Which Builders Can Host the AASA File

When app links open the website instead of the app, iOS and Android usually couldn’t find two small files on your domain. What Shopify, Webflow, Framer, Wix and Squarespace let you host, the subdomain route, and a link that needs no file.

universal links
app links
apple-app-site-association
shopify
Read article
Guide
Oct 9, 2026
12 min read

How In-App Browsers Handle Deep Links: Instagram, TikTok, Facebook, Gmail, Telegram and More

Why a link that opens your app from Safari dies inside Instagram: the three kinds of in-app browser, the iOS and Android rules, and what each app documents, from Facebook to Telegram.

in-app browser
universal links
app links
instagram
Read article
Guide
Oct 1, 2026
6 min read

Custom Domain Short Links for Apps: A Practical Guide

Why a link on your own domain is worth it, how to choose the hostname, the setup in three steps, and what happens to the links and QR codes you have already shared.

custom domain
branded short links
url shortener
qr codes
Read article

Looking for something else? Browse all topics on the blog.

Send email taps to the app, not the website

Put an Appy link behind your ESP’s tracked link. On Pro it opens your app with one tap, phones without it go to the App Store or Google Play, and computers get your website. Your click tracking stays as it is.