Firebase Dynamic Links est un service Google permettant de créer des liens intelligents qui amènent l'utilisateur au bon endroit dans une application mobile ou vers un site Web, selon que l'application est installée sur l'appareil. Dynamic Links conserve le contexte de transition même lors du premier lancement après l'installation depuis la boutique d'applications. Selon la documentation Firebase, 2026, les liens dynamiques sont traités dans une API unique qui détermine automatiquement le comportement : ouvrir l'application, aller sur le site Web ou installer l'application. Le service est indispensable pour les programmes de parrainage, les scénarios d'intégration et les campagnes marketing.
Points clés
Firebase Dynamic Links est une technologie Google qui crée un lien unique menant au contenu souhaité dans une application mobile ou un site Web, en adaptant le comportement selon la plateforme et l'état d'installation. Le lien vérifie si l'application est installée sur l'appareil : si oui — il l'ouvre avec les paramètres transmis, si non — il redirige vers Google Play ou l'App Store pour l'installation, et après l'installation redirige vers l'écran cible.
Le principal avantage des Dynamic Links par rapport aux liens profonds classiques est le support des liens profonds différés. Deferred Deep Linking signifie que le contexte de transition (paramètres du lien) est préservé même si l'application n'est pas encore installée. Lorsque l'utilisateur installe l'application depuis le magasin, le SDK Dynamic Links lit le contexte sauvegardé et le transmet à l'écran souhaité. Sans cette technologie, l'utilisateur atterrirait simplement sur l'écran principal après l'installation, perdant le code promo, l'invitation ou le lien vers une commande spécifique.
Dynamic Links sont utilisés dans les programmes de parrainage pour attirer de nouveaux utilisateurs avec attribution au compte de l'inviteur. Les campagnes marketing avec des transitions depuis les newsletters par e-mail et les réseaux sociaux utilisent Dynamic Links pour une mesure précise des conversions. Dans les scénarios d'intégration, le lien amène un nouvel utilisateur vers un écran d'accueil avec du contenu personnalisé. Dans le e-commerce, les liens de produits préservent le contexte et mènent à la fiche produit même lors du premier lancement après l'installation.
Le mécanisme de fonctionnement des Dynamic Links comprend plusieurs étapes, chacune pouvant varier selon l'état de l'application. Lorsqu'un utilisateur clique sur un lien dynamique, le navigateur envoie une requête au serveur Firebase. Firebase vérifie si l'application est installée via la vérification de l'intent-filter ou de l'universal link. Si l'application est installée, Firebase l'ouvre avec le lien profond transmis. Sinon — il redirige vers la page du magasin ou la version Web.
Un Dynamic Link standard se compose d'une URL de base, de paramètres de lien et de balises marketing optionnelles. L'URL de base est un domaine comme your-app.page.link enregistré dans Firebase Console. Les paramètres de lien profond sont définis via des paramètres de requête : link (URL cible dans l'application), apn (Android Package Name), ibi (iOS Bundle ID), st et sd (titre et description pour l'aperçu social). Les balises marketing utm_source, utm_medium, utm_campaign sont transmises à Google Analytics pour le suivi.
| Paramètre | Description | Exemple |
|---|---|---|
| link | Lien profond cible | https://yourapp.page.link/product/123 |
| apn | Android Package Name | com.example.myapp |
| ibi | iOS Bundle ID | com.example.myapp.ios |
| st | Titre social | Offre spéciale |
| sd | Description sociale | 30% de réduction sur votre première commande |
Firebase Console fournit une interface visuelle pour créer des Dynamic Links dans la section Engage > Dynamic Links. Dans la console, vous pouvez définir tous les paramètres du lien, y compris le lien profond, le comportement Web, les métadonnées sociales et les balises UTM. Après la création du lien, la console fournit une URL prête à l'emploi ainsi que des statistiques sur les clics et les transitions. Pour la création en masse de liens, l'API REST Firebase Dynamic Links avec authentification OAuth 2.0 est utilisée.
Pour la création programmatique de Dynamic Links, une requête POST est envoyée à l'API Firebase Dynamic Links. Le corps de la requête contient dynamicLinkInfo avec les paramètres de lien profond, les paramètres de plateforme et les métadonnées sociales. L'API renvoie une URL prête à l'emploi comme https://your-app.page.link/abc123. Pour les liens à longue durée de vie, suffix.option = UNIQUE est utilisé — des liens courts avec un suffixe unique. Pour les liens temporaires — SHORT, avec des collisions possibles.
const axios = require("axios")
const apiUrl = "https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY"
const data = {
dynamicLinkInfo: {
domainUriPrefix: "https://yourapp.page.link",
link: "https://yourapp.com/promo/summer",
androidInfo: { androidPackageName: "com.example.myapp" },
iosInfo: { iosBundleId: "com.example.myapp.ios" },
socialMetaTagInfo: {
socialTitle: "Promotion d'été",
socialDescription: "Jusqu'à 50% de réduction jusqu'à la fin du mois"
}
},
suffix: { option: "UNIQUE" }
}
axios.post(apiUrl, data)
.then(res => console.log(res.data.shortLink))
.catch(err => console.error(err))
Dynamic Links génèrent automatiquement des URL courtes de 6 à 8 caractères après le domaine, les rendant adaptées à une utilisation dans les SMS et les réseaux sociaux. Les paramètres UTM sont ajoutés via le champ utmParameters ou directement dans le paramètre link. Firebase lie automatiquement les clics sur Dynamic Links à Google Analytics pour Firebase, permettant de suivre le trafic de référence et l'attribution des campagnes.
Configurer Dynamic Links dans Android comprend l'ajout du SDK Firebase, la configuration de l'intent-filter pour l'activité qui reçoit les liens profonds et le traitement des liens via le SDK Firebase Dynamic Links. Après l'installation du SDK et l'ajout de google-services.json, vous devez enregistrer l'activité dans AndroidManifest.xml avec un intent-filter pour traiter les liens depuis le domaine de votre application.
L'activité qui traite les Dynamic Links doit avoir un intent-filter pour l'action VIEW et les catégories DEFAULT et BROWSABLE. AndroidManifest.xml inclut une balise data avec android:scheme, android:host et android:pathPrefix correspondant à votre lien profond. Pour traiter les liens depuis le domaine page.link, un intent-filter avec le schéma https et l'hôte de votre domaine Dynamic Links est également ajouté.
<!-- AndroidManifest.xml -->
<activity android:name=".MainActivity">
<intent-filter>
<action android:name=
"android.intent.action.VIEW" />
<category android:name=
"android.intent.category.DEFAULT" />
<category android:name=
"android.intent.category.BROWSABLE" />
<data android:scheme="https"
android:host="yourapp.com"
android:pathPrefix="/promo" />
</intent-filter>
</activity>
Après avoir configuré l'intent-filter, vous devez traiter le Dynamic Link entrant dans le code de l'Activité. L'API FirebaseDynamicLinks reçoit le lien de l'intent et renvoie un objet PendingDynamicLinkData avec les paramètres extraits. La méthode getLink renvoie le lien profond cible, qui peut être analysé et utilisé pour la navigation. Il est important de traiter le lien à la fois au démarrage à froid (via getIntent dans onCreate) et au démarrage à chaud (via onNewIntent).
Configurer Dynamic Links dans iOS nécessite une configuration à la fois du côté Firebase et dans le projet Xcode. Vous devez télécharger une clé APNs dans Firebase Console, ajouter le SDK Firebase via Swift Package Manager ou CocoaPods, et configurer App Delegate pour gérer les Universal Links. Dynamic Links dans iOS utilisent Universal Links pour une transition transparente entre le navigateur et l'application sans page intermédiaire.
Universal Links est une technologie Apple qui relie votre domaine à une application mobile. Le fichier apple-app-site-association (AASA) est téléchargé sur le serveur à https://your-app.page.link/apple-app-site-association. Firebase crée et maintient automatiquement ce fichier pour votre domaine Dynamic Links. Dans Xcode, vous devez activer Associated Domains et spécifier applinks:your-app.page.link dans les Capacités du projet.
Pour iOS, le traitement des Dynamic Links se fait via le SDK Firebase dans App Delegate ou Scene Delegate. La méthode application:continueUserActivity: intercepte l'Universal Link entrant et le transmet à l'API Firebase Dynamic Links, qui extrait le lien cible et les paramètres. Le SDK Firebase gère automatiquement les Deferred Deep Links en demandant les données d'installation via le stockage à court terme de l'API Firebase Installation.
import FirebaseDynamicLinks
class AppDelegate: UIApplicationDelegate {
func application(
_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping
([UIUserActivityRestoring]?) -> Void
) -> Bool {
return DynamicLinks.dynamicLinks()
.handleUniversalLink(userActivity.webpageURL!) {
dynamicLink, error in
if let link = dynamicLink?.url {
self.handleDeepLink(link)
}
}
}
}
Regardons un exemple complet de traitement d'un Dynamic Link dans une application Android avec Kotlin. MainActivity lit le Dynamic Link entrant à la fois au démarrage à froid et à chaud de l'application. Le lien est analysé en paramètres qui sont utilisés pour la navigation vers l'écran souhaité avec les arguments transmis. L'exemple montre le traitement d'un lien vers une page de promotion avec un identifiant de campagne promotionnelle.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
handleDynamicLink(intent)
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
handleDynamicLink(intent)
}
private fun handleDynamicLink(intent: Intent) {
FirebaseDynamicLinks.getInstance()
.getDynamicLink(intent)
.addOnSuccessListener { data ->
val deepLink = data?.link ?: return@addOnSuccessListener
val promoId = deepLink
.getQueryParameter("promoId") ?: ""
if (promoId.isNotEmpty()) {
navigateToPromoScreen(promoId)
}
}
.addOnFailureListener { e ->
Log.e("DL", "Erreur de traitement du lien", e)
}
}
}
Pour tester les Dynamic Links, Firebase Console est utilisé, où vous pouvez créer un lien de test et l'envoyer à un appareil via un messager ou un e-mail. Le débogueur Firebase Dynamic Links est disponible sur https://your-app.page.link/?d=1 et affiche des informations détaillées sur le comportement du lien. Lors du test des Deferred Deep Links, vous devez vous assurer que l'application est désinstallée et qu'après l'installation, le lien mène à l'écran correct avec les paramètres transmis.
Foire aux questions
Les liens profonds classiques fonctionnent uniquement lorsque l'application est installée et ne préservent pas le contexte après l'installation. Dynamic Links prennent en charge Deferred Deep Linking — l'utilisateur installe l'application et accède immédiatement à l'écran cible avec les paramètres du lien préservés.
Aucun serveur n'est requis pour créer et traiter les liens — toutes les opérations sont effectuées via Firebase Console, l'API REST ou le SDK Firebase côté client. Pour la génération en masse de liens, l'API REST est recommandée, mais la console convient pour la création manuelle.
Les Dynamic Links n'ont pas de date d'expiration — ils sont stockés dans Firebase pour toujours, sauf suppression manuelle. Les liens courts avec le suffixe UNIQUE existent indéfiniment. Il est recommandé de créer des liens uniques pour chaque campagne pour une attribution précise.
Le traitement d'un Dynamic Link nécessite une connexion Internet lors du clic car le serveur Firebase vérifie l'état d'installation de l'application. Après le traitement du lien, les données sont transmises à l'application via intent ou Universal Link et deviennent disponibles même hors ligne.
Firebase Dynamic Links sont gratuits dans le plan Spark. Dans le plan Blaze, il y a une limite de 50 000 clics par jour par projet sans frais supplémentaires. Le dépassement de la limite bloque la création de nouveaux liens jusqu'au jour suivant.
Résumé
Nous développerons une application mobile clé en main
IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.
Lisez aussi