urx.si/tools
Firebase Dynamic Link decoder
Paste a long Firebase Dynamic Link and see what it did: the deep link, where iPhone and Android users went with and without your app, and every parameter in plain English. Google shut Dynamic Links down, so this is how you recover what your old links pointed to. Free, no signup.
Every Dynamic Link parameter, explained
A long Dynamic Link carries its whole configuration in the query string. These are the parameters Firebase defined.
| Parameter | What it did |
|---|---|
linkDeep link | The page or in-app screen the link points to. Opened by your app when it's installed, otherwise the fallback. |
apnAndroid package | The Android app that opens the link (its package name). |
aflAndroid fallback | Where Android visitors without the app go instead of Google Play. |
amvAndroid minimum version | The lowest versionCode of the app that can open the link; older versions go to Google Play. |
ibiiOS bundle ID | The iPhone app that opens the link. |
ifliOS fallback | Where iPhone visitors without the app go instead of the App Store. |
iusiOS custom scheme | The app's custom URL scheme, if it isn't the bundle ID. |
ipbiiPad bundle ID | The app that opens the link on iPad, if different from the iPhone app. |
ipfliPad fallback | Where iPad visitors without the app go. |
isiApp Store ID | The app's App Store ID, used to send visitors without the app to its listing. |
imviOS minimum version | The lowest app version that can open the link. |
efrSkip preview page | 1 skipped the app preview page Firebase showed before opening the store. |
oflOther platforms | Where everyone else goes (desktops and other devices). Without it, the deep link opens. |
stSocial title | The title shown when the link is shared. |
sdSocial description | The description shown when the link is shared. |
siSocial image | The image shown when the link is shared. |
utm_sourceutm_source | Campaign source, passed to Google Analytics. |
utm_mediumutm_medium | Campaign medium. |
utm_campaignutm_campaign | Campaign name. |
utm_termutm_term | Campaign keyword. |
utm_contentutm_content | Campaign content. |
atApp Store affiliate token | App Store Connect analytics: affiliate token. |
ctApp Store campaign token | App Store Connect analytics: campaign token. |
mtApp Store media type | App Store Connect analytics: media type. |
ptApp Store provider token | App Store Connect analytics: provider token. |
dDebug | 1 showed Firebase's debug flowchart instead of following the link. |
After the shutdown
Every Dynamic Link stopped redirecting on August 25, 2025, including links already printed on packaging, in QR codes and in old emails. Decoding tells you what each one did; the next step is a replacement that does the same: the right store for each phone, your site for everyone else, and the deep link for people who have your app.
Read the Firebase Dynamic Links migration guide, see how Smart Links and deep linking work on URX, or check your Universal Links setup with the free apple-app-site-association validator.
Questions
Do Firebase Dynamic Links still work?
No. Google shut Firebase Dynamic Links down on August 25, 2025. Links on page.link domains and on custom Dynamic Links domains stopped redirecting, so every one of them needs a replacement.
Can you decode a short link like yourapp.page.link/abc?
No one can any more. A short link was only a key; its destination lived on Firebase's servers, and Google deleted that data at the shutdown. Long links are different: everything is in the link itself (after ?link=), so they decode completely. Look for long links in your app's code, analytics exports, old emails and campaign sheets.
What do apn, ibi, isi, ifl and ofl mean?
apn is the Android package and ibi the iOS bundle ID: the apps that opened the link. isi is the App Store ID. afl, ifl and ofl are fallbacks: where Android, iPhone and other visitors went instead of the store or the deep link. The table on this page explains every parameter.
Where did my link send iPhone users who didn't have the app?
To the iOS fallback (ifl) if the link had one, otherwise to the app's App Store page (from isi). If it had neither, iPhone users without the app got the deep link itself, in the browser. The decoder shows this for each link.
How do I replace my Dynamic Links?
Recreate each one as a link that does the same routing, then update wherever the old link appears. On urx.si a smart link sends iPhones to the App Store, Android phones to Google Play and everyone else to your site; the importer turns long Dynamic Links (or the CSV from this page) into smart links in one go. page.link addresses belonged to Google and can't be kept; if you used your own Dynamic Links domain, you can point it at URX instead (custom domains are on the Growth plan).
Is my data sent anywhere?
No. The decoder runs in your browser and nothing is stored. Only the shareable result link puts a Dynamic Link in the page address, like any URL you open.