Firebase Dynamic Links alternative
Deep links for Flutter and React Native, after Firebase Dynamic Links
Firebase Dynamic Links shut down on August 25, 2025. DecTog does the jobs most apps used it for: short links that open the app, deep links that survive the App Store and Google Play, store and desktop fallbacks and social previews, with install attribution per link.
Free under 25K monthly active users · No credit card · Hosted, or in your Cloudflare
The shutdown
What Firebase turned off
- All links served by Firebase Dynamic Links, on page.link subdomains and on custom domains, stopped working and answer 404.
- page.link domains are no longer available.
- Domain and link data were marked for deletion on the shutdown date.
Before you pick a service
You may not need one
Firebase's own FAQ points apps that are already installed to App Links and Universal Links, and teams that need full feature parity to third-party providers. If your links only open an app that is already installed, App Links and Universal Links do that on their own.
A service earns its place on a phone without the app: the trip through the store, the link that is still there on the first launch, and knowing which link brought the install.
Side by side
What each FDL job becomes in DecTog
Every URL parameter, the REST API and the Flutter plugin call by call are in the migration guide.
| The job | Firebase Dynamic Links | DecTog |
|---|---|---|
| Short link | FDL · A short link on a page.link subdomain or a domain of your own | DecTog · On your subdomain, yourname.dectog.com/slug, with the slug you choose |
| Open the installed app | FDL · The Android package name (apn) and iOS bundle ID (ibi) of the app to open | DecTog · Universal Links and App Links, with apple-app-site-association and assetlinks.json generated for your apps |
| Deep link after the install | FDL · The app can read the link once it is installed | DecTog · The SDK gets the link and the route on the first launch, with how the install was matched |
| Store fallback | FDL · A fallback URL for Android (afl) and iOS (ifl), else Google Play or the App Store by its app ID (isi) | DecTog · The store URLs on your app, or a redirect per link or per tap |
| Desktop and other platforms | FDL · The other-platform fallback link (ofl): the URL desktop browsers opened | DecTog · A fallback URL per link, else a page with a QR code |
| Social previews | FDL · The social title (st), description (sd) and image (si) shown when the link is shared | DecTog · A title, description and image per link, with your app’s as the default |
| Campaign tags | FDL · The five UTM tags (utm_source, utm_medium, utm_campaign, utm_term, utm_content) | DecTog · The same five tags, stored on every click and charted by campaign and source |
| Flutter | FDL · The firebase_dynamic_links plugin | DecTog · flutter_dectog; React Native and Expo apps use react-native-dectog |
| Minimum app version | FDL · A minimum app version: on Android (amv) older installs were sent to update, on iOS (imv) the app decided | DecTog · No equivalent |
| iPad-only fallback and app | FDL · A separate fallback URL (ipfl) and app (ipbi) for iPads | DecTog · No equivalent |
Who it fits
- Flutter and React Native apps that used FDL for sharing, referrals or campaigns
- Teams that want installs, leads and revenue per link and campaign, not only clicks
- Apps that want installs matched by the store install referrer on Android and the pasteboard on iOS
Look elsewhere if
- You gate links on a minimum app version, as FDL’s amv and imv parameters did
- You need ad-network attribution, SKAdNetwork or postbacks: that is a mobile measurement partner’s job
- You need a native Swift or Kotlin SDK: DecTog ships Flutter and React Native SDKs
- You need links on a domain of your own: the hosted service serves them on yourname.dectog.com
- Your links only open an app that is already installed: App Links and Universal Links do that alone
Moving over
Four steps from FDL
Finding where your old links still live, saving the traffic they get and a checklist to work through are in the blog post Migrating off Firebase Dynamic Links.
- 01
Register your app
Enter the package, SHA-256 fingerprints, bundle ID and Team ID on the Apps page; DecTog serves apple-app-site-association and assetlinks.json for them. Then add applinks:yourname.dectog.com to Associated Domains and an autoVerify intent filter for yourname.dectog.com.
- 02
Swap the SDK
Replace firebase_dynamic_links with flutter_dectog: getInitialLink and onLink become getInitialLink and onLinkClick, and the first launch after an install arrives on onAppInstalled. React Native and Expo apps add react-native-dectog.
- 03
Import your links
If you exported your links before the shutdown, Import CSV on the Links page reads Firebase’s file. Each short link’s suffix becomes its slug, so acme.page.link/spring becomes yourname.dectog.com/spring, with its destination, fallbacks, social preview and UTM tags. Without the file, create the links in the dashboard or 100 at a time through the API.
- 04
Replace the old URLs
page.link domains no longer exist, so publish the new links wherever the old ones were: in the app, emails, QR codes and ads. The same goes for links on a domain of your own.
No. Firebase stopped serving every Dynamic Link on August 25, 2025, on page.link and on custom domains alike, and the page.link domains are gone. Publish your DecTog links in their place.
Yes. Importing Firebase’s export turns each short link’s suffix into the DecTog slug, so the path stays the same and only the domain changes: acme.page.link/spring becomes yourname.dectog.com/spring. Without the export, give the new links the same slugs yourself.
Deterministic signals first: on Android the Google Play, Huawei, Samsung, Xiaomi and vivo install referrers and Meta’s install referrer, on iOS the link copied to the pasteboard or the paste button. Only when none of them names a tap does a scored fingerprint run, and it is credited only at high confidence. Apple Search Ads is recorded beside the verdict: it names the Apple ad campaign and never changes which link is credited.
Yes: flutter_dectog for Flutter, and react-native-dectog for React Native and Expo. Both handle cold starts, links that open a running app and the first launch after an install. There is no native Swift or Kotlin SDK.
Nothing under 25K monthly active users, with no credit card. Paid plans are $19, $39 and $99 a month, for up to 75K, 150K and 500K monthly active users. Every plan includes every feature, and clicks, installs and events are not metered.
Sources, checked October 27, 2026
Own your deep links — self-hosted and open source
Start on the hosted service, or deploy the same code to your own Cloudflare account.