Migrations
Firebase Dynamic Links is gone: what to use instead in 2026
Firebase Dynamic Links shut down on 25 August 2025 and its links now return 404. What each replacement covers, what it costs, and how to move your links step by step.
Firebase Dynamic Links shut down on 25 August 2025. Since then, every page.link link and every custom-domain Dynamic Link returns a 404, and Google has marked the link data for deletion. To replace it, split the work Dynamic Links did: Universal Links and App Links to open your installed app, a smart link to send new visitors to the right store, and a deep-linking service only if you need the right screen after an install.
This guide explains what changed, how to recover what your old links did, and how to choose a replacement without paying for features you don't use.
What happened to Dynamic Links
Google's Dynamic Links deprecation FAQ sets out the shutdown:
- Links on page.link subdomains and on custom domains stopped working. Clicks now get an HTTP 404.
- page.link domains are no longer available, and URL prefix domains were deleted.
- Link and domain metadata was marked for deletion on 25 August 2025. Google asked developers to export it before then.
If you used Firebase Authentication email links (sign-in links, password resets, email verification), those keep working on current SDKs. Firebase Auth now builds them on Firebase Hosting domains, and the old dynamicLinkDomain setting is deprecated in favour of linkDomain. Older app versions on outdated SDKs lost the feature. See Firebase's email-link guide.
List the jobs your links did
Dynamic Links bundled several jobs into one product. Most apps used two or three of them. Write down which ones you relied on, because each has a different replacement and a different price.
| Job | What it means | Replacement |
|---|---|---|
| Store routing | iPhone to the App Store, Android to Google Play, others to a website. | Any smart link service, or a redirect script on your site. |
| Open the installed app | A tap opens the app on the right screen instead of the browser. | Universal Links (iOS) and App Links (Android), on a domain you control or your link provider's. |
| Deferred deep links | After a fresh install, the first launch opens the screen the link was for. | A deep-linking provider, or your own matching code. Android has an exact signal; iOS doesn't. |
| Campaign tracking | UTM parameters and click counts per link. | Click analytics on the link, plus the stores' own campaign reports. |
| Social previews | A title, description and image when the link is shared. | Open Graph tags on the link or its web page. |
| Auth email links | Sign-in and password-reset links from Firebase Auth. | Firebase Hosting domains, built into current Firebase Auth SDKs. |
Google's own advice follows the same split. For deep linking into an installed app, the FAQ recommends App Links and Universal Links. For full feature parity, it lists third-party providers and notes they haven't been vetted by Google.
Recover what your old links did
You can't ask Firebase where a short link like yourapp.page.link/launch went any more. The destination lived on Google's servers. Long links are different. Everything is in the URL itself: the deep link after link=, the Android package in apn, the iOS bundle ID in ibi, the App Store ID in isi, and the fallbacks in afl, ifl and ofl.
Look for long links in your app's source code, remote config, old campaign spreadsheets, email templates and analytics exports. Paste each one into the free Firebase Dynamic Link decoder to see where iPhone, Android and desktop visitors were sent. It runs in your browser and can export a CSV.
For short links you can't decode, rebuild them from what you know. The deep-link path usually matches a screen in your app, and the campaign name is often in the slug.
Choose a replacement
The right tool depends on which jobs you ticked. Here's what the options cost, from each provider's pricing page on 22 October 2026:
- Attribution platforms (Adjust, AppsFlyer, Branch, Airbridge, Kochava, Singular) cover deep links, deferred deep links and paid-ad attribution. Kochava has a free tier up to 10,000 attributed conversions a month that includes its SmartLinks, with Universal Links and App Links support from its $500-a-month plan. Airbridge starts from $40 a month. Branch lists a free Basics trial. These make sense if you run paid ads and need an SDK in your app anyway.
- Link services with device routing cover store routing and click analytics, and some add deep links. Bitly lists mobile deep linking on its Premium plan. Dub's device targeting starts on Pro at $30 a month.
- Do it yourself. Host apple-app-site-association and assetlinks.json on your own domain, for example with Firebase Hosting, and write a redirect for store routing. It's free and fully yours, but you build deferred deep linking and analytics yourself.
- URX does store routing, QR codes and click analytics on the Free plan, and imports long Dynamic Links from a CSV. Pro, at $9 a month, adds deep links, Universal Links on urx.si, deferred deep links and routing rules. App Links need a domain you can verify, so they come with custom domains on Growth.
If you only used Dynamic Links to send people to the right store, you don't need an attribution platform. A free smart link does that job.
Move your links, step by step
Here is the order that causes the least breakage, using URX as the example. The same order works with any provider.
- Add your app. Create a project with your App Store and Google Play URLs. For links that open the app, add the iOS bundle ID and Apple Team ID, and the Android package name and SHA-256 signing fingerprint.
- Import the links. Put your long links in a CSV with a
urlcolumn, and aslugcolumn if you want to choose the new addresses. The importer shows the result before it creates anything. The migration guide lists where each Dynamic Links parameter goes. - Turn on deep links where you need them. On Pro, add
applinks:urx.sito your app's Associated Domains so iPhones open the app directly. Turn on deferred deep links for links that should open a screen after install. - Swap every old address. Search your app, website, emails, ads, QR codes and social bios for page.link. Ship an app update for links built into the app.
- Test on real phones, with the app installed and without it.
For background on the two link types, read Universal Links and App Links explained. For the install case, see deferred deep linking explained.
Make the next move easier
The hardest part of this shutdown was that page.link addresses belonged to Google. Nobody could take them over or redirect them. Every link printed on a poster or saved in an old email broke at once.
Links on a domain you own avoid that. If you move providers again, you point the domain somewhere else and the old addresses keep working. On URX that's a custom domain such as links.yourapp.com, which comes with Growth. If you start on urx.si, keep a list of where each link is used so you can swap it later.
To start, claim a free link and import a few of your old ones. Check them on both phones before you replace the rest.
Questions people ask
Do Firebase Dynamic Links still work?
No. Google shut them down on 25 August 2025. Links on page.link and on custom Dynamic Links domains now return an HTTP 404, and the link data was marked for deletion.
Can I keep my page.link addresses?
No. page.link domains belong to Google and are no longer available, so no provider can take them over or redirect them. Create new links and replace the old ones wherever they appear.
What does Google recommend instead?
For opening an installed app, Google recommends App Links on Android and Universal Links on iOS. For full feature parity, its FAQ lists third-party providers such as Adjust, Airbridge, AppsFlyer, Bitly, Branch, Kochava and Singular, and notes they have not been vetted by Google.
Is there a free replacement?
For store routing, yes. URX Free sends iPhones to the App Store and Android phones to Google Play, with a QR code and click analytics, and imports long Dynamic Links from a CSV. Deep links and deferred deep links are on Pro, at $9 a month.
Do I need an SDK to replace Dynamic Links?
Not for store routing, Universal Links or App Links. For deferred deep links your app has to ask for the saved link on first launch. Attribution platforms do that with an SDK; URX uses one HTTPS request from your app.
Sources and product references
Reviewed October 26, 2026. Platform guidance and product limits can change; use these references when you repeat a check.
Replace your Dynamic Links.
Store routing, QR codes and click analytics are free. Import your long links from a CSV and check them before you swap.
Claim your free linkClaim
your link.
Type the name you want. Then paste your store links and scan it with your phone.