Firebase Dynamic Links : qu'est-ce que c'est, création de liens et intégration

Auteur : IT Sectr Publié le : 2026-04-29 Temps de lecture : 9 min

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

  • Dynamic Links — des liens intelligents qui déterminent automatiquement s'il faut installer l'application ou ouvrir une application déjà installée sur l'écran souhaité.
  • Deferred Deep Linking — conservation du contexte de transition lors du premier lancement après l'installation : l'utilisateur voit l'écran cible, pas l'écran principal.
  • Domaine du lien — un domaine personnalisé comme your-app.page.link qui peut être personnalisé dans Firebase Console.
  • Traitement côté client — les liens sont traités via le SDK Firebase Dynamic Links pour Android et iOS avec des arguments passés à intent ou scene.
  • Analytique — Firebase collecte automatiquement les statistiques de clics, d'installations et de transitions via Dynamic Links.

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.

Fonctionnalité clé : Deferred Deep Linking

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.

Cas d'utilisation

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.

Anatomie d'un lien dynamique

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ètreDescriptionExemple
linkLien profond ciblehttps://yourapp.page.link/product/123
apnAndroid Package Namecom.example.myapp
ibiiOS Bundle IDcom.example.myapp.ios
stTitre socialOffre spéciale
sdDescription sociale30% 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.

Création d'un lien via l'API REST

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.

js
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))

Liens courts et balises UTM

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.

Intégration des Dynamic Links dans Android

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.

Configuration de l'intent-filter dans AndroidManifest

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é.

xml
<!-- 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>

Traitement du lien dans le code

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).

Intégration des Dynamic Links dans iOS

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.

Configuration des Universal Links

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.

Traitement du lien via le SDK Firebase

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.

swift
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)
                }
            }
    }
}

Exemple d'implémentation en Kotlin

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.

kotlin
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)
            }
    }
}

Tester les Dynamic Links

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

Quelle est la différence entre Dynamic Links et les liens profonds classiques ?

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.

Ai-je besoin d'un serveur pour que Dynamic Links fonctionne ?

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.

Quelle est la durée de vie d'un Dynamic Link ?

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.

Les Dynamic Links fonctionnent-ils sans Internet ?

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.

Combien coûtent les Firebase Dynamic Links ?

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é

  • Firebase Dynamic Links — des liens intelligents qui amènent l'utilisateur vers l'application ou le site Web, et en l'absence d'application — vers le magasin avec contexte préservé après l'installation.
  • Deferred Deep Linking — l'avantage clé qui permet de transmettre le contexte (code promo, invitation, lien produit) lors du premier lancement après l'installation.
  • Structure du lien comprend un domaine de base (your-app.page.link), des paramètres de lien profond, des paramètres de plateforme et des métadonnées sociales pour l'aperçu.
  • Création de liens se fait via Firebase Console, l'API REST ou le SDK Firebase avec prise en charge des balises UTM pour l'intégration avec Google Analytics.
  • Intégration dans Android nécessite la configuration d'un intent-filter dans AndroidManifest et un traitement via l'API FirebaseDynamicLinks avec prise en charge des démarrages à froid et à chaud.
  • Intégration dans iOS utilise Universal Links avec fichier AASA, Associated Domains et traitement via le SDK DynamicLinks dans AppDelegate ou SceneDelegate.
  • Gratuit jusqu'à 50 000 clics par jour, sans expiration des liens, avec la possibilité de créer un domaine personnalisé pour l'image de marque des liens.

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.

Discuter du projet

Lisez aussi