Guide complet des Universal Links
Tout ce que vous devez savoir sur les universal links, deep links et app links pour iOS et Android
Table des matières
Que sont les Universal Links ?
Les universal links sont des URLs qui fonctionnent de façon fluide entre le web et les apps mobiles. Quand un utilisateur touche un universal link sur iOS, le système vérifie si une app installée peut gérer ce lien. Si oui, il ouvre directement le contenu concerné dans l’app. Sinon, le lien s’ouvre dans Safari.
Sur Android, la technologie équivalente s’appelle App Links. Le concept est identique : une seule URL qui route intelligemment l’utilisateur vers votre app ou votre site web.
Principaux avantages
- Expérience utilisateur fluide, sans prompts ni redirections
- Une seule URL pour toutes les plateformes
- Meilleure attribution et analytics
- Meilleur SEO avec des URLs HTTPS standard
- Fonctionne dans email, SMS, réseaux sociaux et ailleurs
Comment fonctionnent les Universal Links
Le processus implique trois composants clés :
Fichier Apple App Site Association (AASA)
Un fichier JSON hébergé sur votre domaine à /.well-known/apple-app-site-association qui indique à iOS quelles apps peuvent gérer votre domaine.
Configuration de l’app
Votre app doit être configurée pour gérer des domaines et patterns d’URL spécifiques via entitlements (iOS) ou intent filters (Android).
Code de gestion des URL
Votre app implémente du code pour recevoir l’URL du deep link et naviguer vers le bon écran ou contenu.
Implémentation des Universal Links sur iOS
Étape 1 : Créer le fichier AASA
Créez un fichier nommé apple-app-site-association (sans extension) avec cette structure : apple-app-site-association
{
"applinks": {
"apps": [],
"details": [
{
"appID": "TEAMID.com.yourcompany.yourapp",
"paths": [
"/products/*",
"/articles/*",
"/user/*"
]
}
]
}
}Important
Le fichier doit être servi en HTTPS avec un certificat SSL valide. Il doit aussi renvoyer le header Content-Type: application/json.
Étape 2 : Configurer votre app iOS
Dans Xcode, ajoutez la capability Associated Domains avec votre domaine :
applinks:yourdomain.com
applinks:www.yourdomain.comÉtape 3 : Gérer l’URL dans votre app
// AppDelegate.swift
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let url = userActivity.webpageURL else {
return false
}
// Handle the URL and navigate to appropriate screen
handleUniversalLink(url)
return true
}Implémentation des App Links sur Android
Étape 1 : Créer assetlinks.json
Hébergez ce fichier sur https://yourdomain.com/.well-known/assetlinks.json :
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.yourcompany.yourapp",
"sha256_cert_fingerprints": [
"XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX"
]
}
}]Étape 2 : Mettre à jour AndroidManifest.xml
<activity android:name=".MainActivity">
<intent-filter android:autoVerify="true">
<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" />
<data android:host="yourdomain.com" />
<data android:pathPrefix="/products" />
</intent-filter>
</activity>Étape 3 : Gérer l’Intent
// MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val action = intent.action
val data = intent.data
if (Intent.ACTION_VIEW == action && data != null) {
// Handle the deep link
handleDeepLink(data)
}
}Bonnes pratiques et pièges courants
À faire
- ✅ Utilisez toujours HTTPS pour votre domaine
- ✅ Testez sur de vrais appareils, pas seulement sur simulateurs
- ✅ Prévoyez des URLs fallback pour les utilisateurs web
- ✅ Ajoutez un tracking analytics complet
- ✅ Gérez correctement les cas limites
- ✅ Gardez vos fichiers AASA/assetlinks à jour
❌À éviter
- ❌ N’utilisez pas de redirections pour les fichiers AASA/assetlinks
- ❌ N’oubliez pas de valider la syntaxe JSON
- ❌ Ne hardcodez pas la logique de navigation de l’app
- ❌ Ne supposez pas que l’app sera toujours installée
- ❌ Ne sautez pas les tests sur différentes versions d’OS
Test et débogage
Tests iOS
- 1. Utilisez le validateur AASA d’Apple
- 2. Testez les liens dans Notes, Messages ou Mail
- 3. Vérifiez les logs dans Xcode Console
- 4. Vérifiez l’association de domaine dans Réglages → Developer
Tests Android
- 1. Utilisez adb shell am start -a android.intent.action.VIEW -d "your-url"
- 2. Testez dans Chrome, Gmail et applications de messagerie
- 3. Vérifiez le statut avec adb shell dumpsys package domain-preferred-apps
- 4. Surveillez les erreurs dans logcat
Analytics et attribution
Une analytics correcte est essentielle pour comprendre les performances de vos universal links. Suivez ces métriques :
- CTR par canal
- Taux d’ouverture app vs taux de fallback web
- Coût d’acquisition par canal
- Taux de conversion des contenus deep-linkés
- Temps jusqu’à la première action après deep link
- Performance par plateforme (iOS vs Android)
Conseil pro
Utilisez une plateforme de smart links comme Appy pour gérer automatiquement les universal links, suivre les analytics et fournir des fallbacks. Vous économisez des semaines de développement et obtenez une infrastructure enterprise.
Essayer Appy gratuitementConclusion
Les universal links sont essentiels pour les apps mobiles modernes. Ils offrent un UX fluide, améliorent l’attribution et fonctionnent de manière fiable entre plateformes. Même si l’implémentation demande de l’attention, les bénéfices le justifient.
Commencez par les bases, testez soigneusement, puis améliorez selon les données réelles. Et si vous voulez éviter la complexité, utilisez une plateforme comme Appy qui gère cela automatiquement.
Ressources Appy associées
Découvrez les outils Appy pour universal links, deep links et QR codes afin d’accélérer la croissance des apps mobiles.
- Validateur de Universal Links pour tester iOS Universal Links et Android App Links.
- Générateur de QR codes de marque pour les campagnes d’installation et funnels offline.
- Fonctionnalités smart links comme deep links, règles de routage et analytics.
Continuer à explorer
Deep Linking vs Universal Links : comparaison complète
Comprenez les différences clés entre deep links et universal links, quand utiliser chaque approche et comment les implémenter correctement.
Universal Links ouvrent Safari ? Corrigez AASA, App Links, redirections et headers
Workflow pratique pour corriger les universal links et app links qui ouvrent le navigateur au lieu de l’app.
Arrêt de Firebase Dynamic Links : guide complet de migration vers Appy
Firebase Dynamic Links ferme. Voici un guide complet pour migrer vers Appy sans interruption de service.
Vous cherchez autre chose ? Parcourez tous les sujets sur le blog Appy.
Évitez la complexité. Utilisez Appy.
Appy gère automatiquement universal links, deep linking, QR codes et analytics. Sans code.