Firebase Dynamic Links are links that work the way you want, on multiple platforms, and whether or not your app is already installed.
With Dynamic Links, your users get the best available experience for the platform they open your link on. If a user opens a Dynamic Link on iOS or Android, they can be taken directly to the linked content in your native app. If a user opens the same Dynamic Link in a desktop browser, they can be taken to the equivalent content on your website.
In addition, Dynamic Links work across app installs: if a user opens a Dynamic Link on iOS or Android and doesn't have your app installed, the user can be prompted to install it; then, after installation, your app starts and can access the link.
How does it work?
You create a Dynamic Link either by using the Firebase console, using a REST API, iOS or Android Builder API, or by forming a URL by adding Dynamic Link parameters to a domain specific to your app. These parameters specify the links you want to open, depending on the user's platform and whether your app is installed.
When a user opens one of your Dynamic Links, if your app isn't yet installed, the user is sent to the Play Store or App Store to install your app (unless you specify otherwise), and your app opens. You can then retrieve the link that was passed to your app and handle the deep link as appropriate for your app.
Or, if you don't have a domain for your app, you can use a no-cost custom page.link subdomain:
https://example.page.link/summer-sale
Create your subdomain at no charge in the Firebase console.
All Dynamic Links features, including analytics, post-install attributions, and SDK integrations, work with both custom page.link domains and your own domain.
Implementation path
Set up Firebase and the Dynamic Links SDK
Enable Firebase Dynamic Links for your Firebase project in the Firebase console. Then, include the Dynamic Links SDK in your app.
Create Dynamic Links
You can create Dynamic Links programmatically or by using the Firebase console.
Handle Dynamic Links in your app
When your app opens, use the Dynamic Links SDK to check if a Dynamic Link was passed to it. If so, get the deep link from the Dynamic Link data and handle the deep link as necessary.
View analytics data
Track the performance of your Dynamic Links in the Firebase console.
Next steps
Learn about some of Firebase Dynamic Links' most common use cases and how to implement them.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-15 UTC."],[],[],null,["Firebase Dynamic Links \nplat_ios plat_android plat_web plat_flutter plat_cpp plat_unity \n\nFirebase Dynamic Links are links that work the way you want, on multiple\nplatforms, and whether or not your app is already installed. \n| **Deprecated:** Firebase Dynamic Links is *deprecated* and should not be adopted in projects that don't already use it. The service will shut down on August 25, 2025. See the [Dynamic Links Deprecation FAQ](/support/dynamic-links-faq) for more information.\n\nWith Dynamic Links, your users get the best available experience for the\nplatform they open your link on. If a user opens a Dynamic Link on iOS or Android,\nthey can be taken directly to the linked content in your native app. If a user\nopens the same Dynamic Link in a desktop browser, they can be taken to the equivalent\ncontent on your website.\n\nIn addition, Dynamic Links work across app installs: if a user opens a Dynamic Link on\niOS or Android and doesn't have your app installed, the user can be prompted to\ninstall it; then, after installation, your app starts and can access the link.\n\nHow does it work?\n\nYou create a Dynamic Link either by using the Firebase console, using a REST\nAPI, iOS or Android Builder API, or by forming a URL by adding Dynamic Link parameters to a domain\nspecific to your app. These parameters specify the links you want to open, depending on the\nuser's platform and whether your app is installed.\n\nWhen a user opens one of your Dynamic Links, if your app isn't yet installed, the\nuser is sent to the Play Store or App Store to install your app (unless you\nspecify otherwise), and your app opens. You can then retrieve the link that\nwas passed to your app and handle the deep link as appropriate for your app.\n\nCustom link domains\n\nYou can [create Dynamic Links using\nyour own domain name](/docs/dynamic-links/custom-domains): \n\n```\nhttps://example.com/summer-sale\nhttps://example.com/links/promos/summer-sale\nhttps://links.example.com/summer-sale\nhttps://ex.amp.le/summer-sale\n```\n\nOr, if you don't have a domain for your app, you can use a no-cost custom\npage.link subdomain: \n\n```\nhttps://example.page.link/summer-sale\n```\n\nCreate your subdomain at no charge in the Firebase console.\n\nAll Dynamic Links features, including analytics, post-install attributions, and\nSDK integrations, work with both custom page.link domains and your own\ndomain.\n\nImplementation path\n\n|---|-----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| | **Set up Firebase and the Dynamic Links SDK** | Enable Firebase Dynamic Links for your Firebase project in the Firebase console. Then, include the Dynamic Links SDK in your app. |\n| | **Create Dynamic Links** | You can create Dynamic Links programmatically or by using the Firebase console. |\n| | **Handle Dynamic Links in your app** | When your app opens, use the Dynamic Links SDK to check if a Dynamic Link was passed to it. If so, get the deep link from the Dynamic Link data and handle the deep link as necessary. |\n| | **View analytics data** | Track the performance of your Dynamic Links in the Firebase console. |\n\nNext steps\n\n- Learn about some of Firebase Dynamic Links' most common [use cases](/docs/dynamic-links/use-cases) and how to implement them.\n- Learn how to [create\n Dynamic Links](/docs/dynamic-links/create-links) and then receive them in your [iOS](/docs/dynamic-links/ios/receive), [Android](/docs/dynamic-links/android/receive), [Flutter](/docs/dynamic-links/flutter/receive), [Unity](/docs/dynamic-links/unity/receive), and [C++](/docs/dynamic-links/cpp/receive) apps.\n- Use your own [custom\n domain](/docs/dynamic-links/custom-domains) for Dynamic Links.\n- Understand your Dynamic Links's performance with two [analytics](/docs/dynamic-links/analytics) tools."]]