Skip to content
CodeOnAir
← All posts

A Branch alternative for apps that only need deep links

What Branch's own pages say about deep linking plans and pricing, how to tell whether you need an attribution platform or just links, what to compare, and how to move your links.

CodeOnAir team27 October 20268 min read

Branch is one of the best-known names in mobile deep linking, and for many teams it was the obvious replacement when Firebase Dynamic Links shut down. Many then found that deep linking sits on plans priced through sales.

This post is for teams whose needs are narrower than Branch's product: links that open the app, deferred deep links that survive the install, QR codes and basic analytics. It sets out what Branch's own pages say today, how to tell whether you need an attribution platform at all, what to compare, and how to move. Facts about Branch and other vendors come from their own pages, checked on 27 October 2026.

What Branch offers today, and how it's priced

Branch's pricing page lists three plans, Basics, Essentials and Enterprise, with no prices shown. Basics has a "Start your free trial" button; Essentials and Enterprise have "Request a demo". No free plan is listed. The page's FAQ says:

Yes. You can start with a free trial on the Basics plan to begin measuring your first campaigns.

The same FAQ positions multi-touch attribution as a reason to move up to Essentials or Enterprise.

On deep linking specifically, Branch's help centre says:

Access to Branch Deep Linking requires a premium plan.

and asks you to contact its sales team "to learn more about pricing and availability."

To be fair to Branch: it's a broad product. Attribution across ad networks, campaign measurement and enterprise features are its focus, and for a team running paid user acquisition across many networks that may be exactly right. The question is whether you're paying for a platform when you need a feature.

Do you need an attribution platform, or just deep links?

You probably need a mobile measurement partner (MMP) if:

  • you spend on app install ads across several networks and need to know which one drove each install;
  • you need to send install and in-app events back to ad networks for their optimisation;
  • your marketing team works from cohort, retention and return-on-ad-spend reports;
  • you need SKAdNetwork reporting for iOS campaigns.

You probably need only deep links if:

  • your links come from your own channels: WhatsApp shares, referrals, email, SMS, push notifications, QR codes, influencers, your website;
  • you want new users to land on the right screen after install;
  • "clicks, installs and opens per link and per campaign" answers your questions;
  • you'd rather not route the decision through a sales call.

Most apps in their first few years are in the second group.

What to compare in an alternative

The checklist we'd use, in order of how often it causes trouble later:

  1. Deferred deep linking, and how it matches. On Android, the Play Install Referrer gives an exact match. On iOS there's no referrer, so services match on signals or use the clipboard. Ask which methods they use and whether your app is told how sure the match is. Our post on deferred deep linking on iOS without the IDFA explains the trade-offs.
  2. Your own domain. Links on link.yourbrand.com survive a change of vendor. Links on the vendor's domain don't.
  3. Hosting of apple-app-site-association and assetlinks.json. You want the service to build and serve them, with path exclusions.
  4. SDKs for your stack, plus a REST API so your backend can create links.
  5. Link import or bulk creation, so moving doesn't mean recreating links by hand.
  6. Analytics you'll read: clicks, installs and opens per link and campaign, CSV export and webhooks.
  7. Price you can see, in your currency, and what happens over the limit.

We wrote a longer checklist for choosing a deep linking service after Firebase Dynamic Links shut down; the same questions apply here.

The options

Build it yourself with Universal Links and App Links. Host the two verification files on your domain, add Associated Domains and an autoVerify intent filter, and route the URL in the app. It costs nothing and works well for users who already have the app. It doesn't give you deferred deep links, store fallbacks per platform, link previews or analytics. You'd build those. Our setup guide for the two files covers the first part.

Full MMPs with deep linking. AppsFlyer's deep linking page describes OneLink as able to capture "link parameters before installation and restores them on first app open", and doesn't show a price. Adjust documents deferred deep links in its SDK docs (Android). Like Branch, both are attribution platforms first; deep linking is part of a larger product.

Link-focused services. A newer group of services, including ours, sells deep links, deferred deep links and link analytics without the attribution platform, usually with public prices. Compare them on the checklist above.

How CodeOnAir AppLinks compares

CodeOnAir AppLinks is in the third group. Plans, from our pricing page:

Free Starter Growth Scale
Price a month ₹0 ₹1,499 / $19 ₹4,999 / $49 ₹10,999 / $119
App links 100 Unlimited Unlimited Unlimited
Link clicks a month 10,000 25,000 250,000 2,000,000
URL prefixes 1 2 20 50
Custom domains — — ₹2,000/mo add-on ₹2,000/mo add-on
Attribution window up to 1 hour up to 24 hours up to 24 hours up to 7 days
Analytics and campaigns — Yes Yes Yes
Webhooks 1 2 10 50

Paying half-yearly or yearly costs 5% or 10% less, and new workspaces get 30 days of Growth free. Click limits are soft: links keep redirecting above them, so a busy month doesn't break links in the wild. The same workspace includes CodePush and push notifications.

What you get on every plan: a yourapp.codeonair.com link domain with both verification files built and served for you; store fallbacks per platform; link previews for WhatsApp and other apps; QR codes (SVG and PNG); deferred deep linking with the Play Install Referrer on Android, and signal matching plus opt-in clipboard matching on iOS, with the method and confidence passed to your app; an "Open in app" page for Instagram and other in-app browsers; routing rules by platform and country; A/B variants; link expiry and passwords; and a REST API. SDKs are for React Native and Expo, Android (Kotlin) and iOS (Swift).

What we don't do, so you can rule us out early:

  • No ad-network attribution. No postbacks to ad networks, no SKAdNetwork reporting, no cohort or ROAS reports. If you need those, you need an MMP.
  • No Flutter SDK yet. Flutter apps can use our link domains and call the REST endpoints directly; see our Flutter deep linking guide.
  • No self-hosting.
  • iOS deferred matches aren't exact by default. Without clipboard matching they're probabilistic, as they are for any service that doesn't use the IDFA.

Moving links off Branch

  1. List the links that matter. Export or list your links from Branch (check Branch's docs for the current export options) and keep the ones still in use: referral links, links in emails and printed QR codes, links in app content.
  2. Recreate them with the same paths. Our CSV import reads Firebase Dynamic Links exports, not Branch's format, so use the bulk endpoint: up to 1,000 links per request, all or nothing.
curl -X POST https://app.codeonair.com/v1/links/bulk \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "links": [
    { "slug": "summer-sale", "path": "/sale", "params": { "code": "SUMMER" }, "campaign": "summer" },
    { "slug": "invite-asha", "path": "/invite", "params": { "ref": "ASHA50" }, "campaign": "referral" }
  ] }'
  1. Swap the SDK. Replace Branch's SDK with ours, handle links in onLink, and add the new link domain to Associated Domains and your intent filter. For React Native, that's @codeonair/deeplink-react-native:
import DeepLink from "@codeonair/deeplink-react-native";

DeepLink.init();
DeepLink.onLink((link) => navigation.navigate(link.path, link.params));
  1. Keep old URLs working. Links on a domain you own can keep working: point the domain at the new service (custom domains are an add-on on Growth and Scale) and recreate the same slugs. Links on a vendor's own domain belong to that vendor, so plan to replace them, and keep the old service running until your traffic has moved.
  2. Ship one app release that handles both during the overlap, then remove the old SDK and domain in a later release.

The Firebase Dynamic Links alternative page covers the same move from Firebase, if you have links there too.

FAQ

Is Branch free?

Branch's pricing page lists no free plan. Its FAQ says you can start with a free trial on the Basics plan. Prices aren't shown; Essentials and Enterprise are by demo request.

Does Branch still offer deep linking without a premium plan?

Branch's help centre says "Access to Branch Deep Linking requires a premium plan" and directs you to sales for pricing and availability. Check with Branch for your case.

Can I keep my existing links when I leave Branch?

Links on a domain you control can keep working if you point that domain at the new service and recreate the same paths. Links on a vendor's domain can't be redirected after you leave, so replace them in your app, emails and campaigns first.

Do I need an MMP for app install attribution?

If you buy installs across several ad networks and need to credit each one, yes. If your links come from your own channels and you want clicks, installs and opens per link, a deep linking service is enough.

What does CodeOnAir cost in rupees?

Free is ₹0 with 100 app links. Starter is ₹1,499 a month, Growth ₹4,999 and Scale ₹10,999, with 5% off half-yearly and 10% off yearly. Custom domains are a ₹2,000 a month add-on on Growth and Scale.

Start free

Start free: 100 app links, no card. Moving a large set of links, or want to check whether AppLinks covers your case? Talk to us about migrating.


Branch, AppsFlyer and Adjust details checked on 27 October 2026 on the pages linked above. Vendors change plans and features; check their pages before deciding.

Your first AppLink in five minutes.

Create an app, pick a subdomain, and share a link that opens your app. Try Growth free for 30 days — no card needed.