Skip to content
No ad tracking or advertising IDs

Deferred deep links.Nothing else.

You don't need AI for deferred deep linking. Anyone who tells you you do is trying to price gouge you.

  • No $5k/mo MMP bills for features you don't use.
  • No sales calls.
  • No lost signups because your links are blocked by AdGuard (looking at you, Branch and AppsFlyer).

Just developer-friendly deferred deep linking that actually works.

Free Developer plan · No credit card required

  1. 1Your users click a DLN link

    go.yourapp.com/sale?code=SAVE20

    You don't need to create it in advance. You can, in the dashboard or the API, if you want.

  2. 2No app? I hold the link and send them to the store

    Installing YourApp…73%

    Already have your app installed? I deep link straight into it.

  3. 3Your app launches, I give you the link

    Summer sale

    Code SAVE20 applied

    You decide what to do with it. Send them to the right place. Track the sale. BYO analytics, I don't care. My part is done.

Your app gets path: "/sale", { code: "SAVE20" }. That's the whole product.

Why DeepLinkNow

Why I built this

I shipped deferred deep links through Branch on a real startup. It was expensive, it got blocked, and it was built for a marketing team, not for me. Mobile measurement platforms (MMPs) like Branch and AppsFlyer do deep linking as one small part of an ad product.

  • MMPs cost a fortune

    MMPs price for marketing teams with ad budgets. You pay thousands a month for attribution, audiences and dashboards you'll never open, and the plan you actually need starts with a sales call.

    What I do instead: Free up to 25,000 monthly active users. Then $49 or $149 a month, listed on the pricing page, upgraded from the dashboard. No calls. Cancel any time.

  • Ad blockers broke my links

    An ad platform's link pages run tracking scripts, so ad blockers like AdGuard block them and your signup never happens. On iOS, attribution also means the ATT prompt and “Data Used to Track You” on your App Store page.

    What I do instead: I'm not an ad platform. No tracking scripts, no advertising IDs, no ATT prompt. Nothing for a blocker to block.

  • Built for marketers

    Campaign builders, attribution windows, ad-network integrations, link templates. Getting one user to one screen means wading through all of it, and the SDK brings most of it into your app.

    What I do instead: Any path on your domain is already a link. Add the SDK, ask for the link on first launch, route. That's the whole setup.

Universal on-demand links

Any path is a link

Put any path on your domain in an email, a QR code or a post. I route the user and hand your app the exact path and query string after install.

  • Every app gets yourapp.deeplinknow.com. Paid plans can use their own domain.
  • Your app receives the path and query string exactly as they were in the link.
  • Create a link in the dashboard only when you want a custom title, image or campaign.
1 · the user taps
GEThttps://yourapp.deeplinknow.com/products/123?ref=newsletter&code=SAVE20
2 · your app, first launch
const link = await DeepLinkNow.checkDeferredDeepLink();
// → {
  path: "/products/123",
  queryParams: { ref: "newsletter", code: "SAVE20" },
  fullPath: "/products/123?ref=newsletter&code=SAVE20",
  source: "referrer",        // or "clipboard" / "fingerprint"
  confidenceScore: 100,
  matchQuality: "HIGH"
}

Integration

One SDK call

Add the SDK, ask for the link on first launch, route. Same steps and same data on iOS, Android, React Native and Flutter.

Using Claude Code, Cursor or another coding agent? Add the DeepLinkNow MCP server so the agent works from the current docs.

Install
pod 'DeepLinkNow', '~> 1.3'
AppDelegate.swift
import DeepLinkNow

let config = DLNConfig(apiKey: "your-public-api-key")
await DeepLinkNow.initialize(config: config)

if let link = await DeepLinkNow.checkDeferredDeepLink() {
    router.open(path: link.path, query: link.queryParams)
}
Install
implementation("com.deeplinknow:dln-android:1.3.0")
MainActivity.kt
import com.deeplinknow.DLN

DLN.init(application, "your-public-api-key")

lifecycleScope.launch {
    DLN.checkDeferredDeepLink()
        .onSuccess { link -> link?.let { route(it.path, it.queryParams) } }
}
Install
npx expo install @deeplinknow/react-native
App.tsx
import DeepLinkNow from "@deeplinknow/react-native";

await DeepLinkNow.initialize("your-public-api-key");

const link = await DeepLinkNow.checkDeferredDeepLink();
if (link) navigate(link.path, link.queryParams);
Install
flutter pub add deeplinknow
main.dart
import 'package:deeplinknow/deeplinknow.dart';

await DeepLinkNow.initialize('your-public-api-key');

final link = await DeepLinkNow.checkDeferredDeepLink();
if (link != null) router.go(link.fullPath);

Links that open an installed app route the same way: parseLink(url) on iOS, parseDeepLink(url) on Android, React Native and Flutter.

Pricing

Cheap, on purpose

Free up to 25,000 monthly active users. $49 or $149 a month after that, billed monthly, with no sales call. Cancel any time.

Compare plans
  • Developer

    $0/month

    Deep links and deferred deep links for one app, free.

    Start free (Developer plan)
    • 25k SDK monthly active users
    • 1k deep links (distinct paths, on-demand included)
    • Single app on yourapp.deeplinknow.com
  • Startup

    Most popular

    $49/month

    Your own domain and a landing page that looks like your app.

    Choose Startup (Startup plan)
    • 100k SDK monthly active users
    • 10k deep links (distinct paths, on-demand included)
    • Custom domains: your links on go.yourapp.com (up to 3)
  • Growth

    $149/month

    For larger apps, or several apps under one account.

    Choose Growth (Growth plan)
    • 500k SDK monthly active users
    • 50k deep links (distinct paths, on-demand included)
    • Unlimited custom domains
  • Enterprise

    Starting at$500/month, billed annually

    For companies whose IT, legal and procurement teams have to sign off.

    Talk to us (Enterprise plan)
    • Everything in Growth
    • Custom MAU, link and API volume, including per-minute rate limits
    • Pay by invoice, against your purchase order

Prices in USD. Startup and Growth are billed monthly: cancel any time, and paid plans keep their features until the end of the billing period. Enterprise is billed annually, by invoice.

Privacy

Not an ad platform

The link page loads only what routing needs: no ad or analytics scripts. The SDKs never read advertising IDs. A deferred link can be claimed for 1 hour, and stored fingerprints are deleted within 30 days.

0

third-party trackers on the link page

1 h

claim window for a deferred link

30 d

maximum fingerprint retention

Pricing
DeepLinkNow: Published: free to $149/mo, self-serve
MMPs: Sales calls and custom quotes for most features
Ad blockers
DeepLinkNow: Nothing on the link page to block
MMPs: Tracking scripts get the link page blocked, so the link breaks
Scripts on the link page
DeepLinkNow: None. No trackers, no ad scripts.
MMPs: Tracking and measurement scripts
Advertising ID (IDFA / GAID)
DeepLinkNow: Never read
MMPs: Collected for attribution
ATT prompt
DeepLinkNow: Never needed
MMPs: Needed to use the IDFA for attribution
Data retention
DeepLinkNow: 1-hour claim window, fingerprints deleted within 30 days
MMPs: Kept long-term for attribution reporting
What it is
DeepLinkNow: Deep links and deferred deep links. Nothing else.
MMPs: An attribution and ad measurement suite. Deep linking is one feature among many.
Analytics
DeepLinkNow: Bring your own. Send the link data to any tool.
MMPs: Their dashboards, built on the data they collect

The comparison describes mobile measurement platforms in general, not a particular vendor. Bring your own analytics: the SDK gives you the link data, and you can send it to Amplitude, Mixpanel, PostHog or any other tool.

See the full comparison

Per platform

iOS and Android

DLN uses the most reliable method each platform allows, and the SDK tells you which one it used.

Android

Install Referrer, exact match

  1. Install Referrer source: referrer

    The landing page adds a reference to the click to the Play Store URL. After install, the SDK reads the referrer and looks up that exact click, so the match is certain: confidence 100, quality HIGH.

  2. Fingerprint fallback source: fingerprint

    If the referrer is missing, the SDK falls back to a scored fingerprint match.

Store link the page opens

play.google.com/store/apps/details?id=com.yourapp&referrer=fp_id%3D…

iOS

Clipboard first, then a scored match

  1. Clipboard source: clipboard

    iOS can't pass data through the App Store, so the link page copies the link before sending the user there. On first launch the SDK reads it once; iOS 16+ may ask the user to allow the paste.

  2. Fingerprint backup source: fingerprint

    iCloud Private Relay and switching networks often change the IP address, so a match doesn't require one. You get a score from 0 to 100 and a quality label, and you decide which scores your app accepts.

  • HIGH 75–100
  • MEDIUM 50–74
  • LOW 30–49
checkDeferredDeepLink({ minConfidence: 50 })

Also included

The extras

The setup Universal Links and App Links need, hosted for you, plus a few extras for paid plans.

  • Hosted .well-known files

    apple-app-site-association and assetlinks.json generated from your app settings and served for every link domain.

  • Your own domain

    Use yourapp.deeplinknow.com, or put links on go.yourapp.com with a verified custom domain (paid plans).

  • QR code on desktop

    Desktop visitors see a QR code and store buttons, so they can open the link on their phone.

  • Branded landing page

    Set the title, subtitle, button text and share preview per app or per link (paid plans).

  • Translated landing pages

    Optional automatic translation of the landing page into 14 languages (paid plans).

  • Management API

    Create links and campaigns from your backend with a private key (paid plans).

FAQ

Common questions

More in the full FAQ.

How is it different from Branch, AppsFlyer and other MMPs?

Those are mobile measurement and attribution platforms that also do deep linking. DLN only does deep links and deferred deep links. There's no attribution, the SDKs never read advertising IDs, and the link page loads no third-party tracking scripts, so ad blockers leave it alone. For analytics, the SDK gives you the link data to send to whatever tool you use.

Do I have to create every link in the dashboard?

No. Any path and query string on your app's domain is a valid link, for example yourapp.deeplinknow.com/products/123?ref=newsletter. After install your app receives the path /products/123 and the parameters { ref: "newsletter" }. Dashboard links are optional, for custom titles, images or campaigns.

How reliable is fingerprint matching?

It is a best-effort backup. On iOS the IP address is often masked or changes (iCloud Private Relay, carrier NAT, Wi-Fi to cellular), so DLN does not require an IP match. The server returns scored candidates with a confidence score from 0 to 100 and a HIGH, MEDIUM or LOW label, and you choose the threshold your app acts on.

How long do you keep it?

A deferred link can be claimed for 1 hour after the click. Stored fingerprints, including the IP address, are deleted within 30 days. Click records lose their IP address and user agent after 30 days; only aggregate counts are kept for your dashboard.

Can my team share a workspace?

Yes. Invite teammates from Settings › Team as admins or members: Startup includes 3 people, Growth 5, Enterprise any number, and Developer is for one person. Everyone signs in with their own email code, Google or GitHub account, and the workspace owns the apps, links and billing, so nothing depends on one person staying.

Try it with your app

Free up to 25,000 monthly active users, no credit card. If something's broken or annoying, tell me and I'll fix it.