Guide sur la création de liens profonds iOS
Ce guide vous aide à choisir la stratégie de création de liens profonds adaptée à votre application iOS. Votre choix dépend du canal de communication que vous utilisez et du recours ou non à un fournisseur de liens tiers tel que Branch.
Pour plus de détails sur le déploiement, consultez Création de liens profonds. Pour la résolution des problèmes, consultez Résolution des problèmes de création de liens profonds.
Choisir un type de lien
Il existe trois façons de gérer les liens des messages Braze dans votre application iOS. Chacune fonctionne différemment et convient à des canaux et des cas d’usage différents.
| Type de lien | Exemple | Idéal pour | S’ouvre sans l’application installée ? |
|---|---|---|---|
| Schéma personnalisé | myapp://products/123 |
Notifications push, messages in-app, Content Cards et Banners | Non, le lien échoue |
| Lien universel | https://myapp.com/products/123 |
E-mail, SMS, canaux avec suivi des clics | Oui, avec repli sur le Web |
| Open Web URL Inside App | N’importe quelle URL https:// |
Afficher du contenu Web dans une WebView modale | Sans objet, s’affiche dans une WebView |
Deep links à schéma personnalisé
Les deep links à schéma personnalisé (par exemple, myapp://products/123) ouvrent directement votre application sur un écran précis. C’est l’option la plus simple pour les canaux où les liens ne sont pas modifiés par un tiers.
Utilisez des deep links à schéma personnalisé dans les cas suivants :
- Vous envoyez des notifications push, des messages in-app, des Content Cards ou des Banners.
- Le lien n’a pas besoin de fonctionner si l’application n’est pas installée.
- Vous n’avez pas besoin du suivi des clics (encapsulation des liens par le fournisseur de services d’e-mailing).
N’utilisez pas de deep links à schéma personnalisé dans les cas suivants :
- Vous envoyez des e-mails : les fournisseurs de services d’e-mailing encapsulent les liens pour suivre les clics, ce qui rend les schémas personnalisés inutilisables.
- Le lien doit renvoyer vers une page Web si l’application n’est pas installée.
Liens universels
Les liens universels (par exemple, https://myapp.com/products/123) sont des URL HTTPS standard qu’iOS peut acheminer vers votre application au lieu de les ouvrir dans un navigateur. Ils nécessitent une configuration côté serveur (un fichier AASA) et une configuration côté application (droit Associated Domains).
Utilisez des liens universels dans les cas suivants :
- Vous envoyez des e-mails. Votre fournisseur de services d’e-mailing encapsule les liens pour suivre les clics : les liens doivent donc être en HTTPS.
- Vous envoyez des SMS ou utilisez d’autres canaux où les liens sont encapsulés ou raccourcis.
- Le lien doit renvoyer vers une page Web lorsque l’application n’est pas installée.
- Vous utilisez un fournisseur de liens tiers comme Branch ou AppsFlyer.
N’utilisez pas de liens universels dans les cas suivants :
- Vous avez uniquement besoin de deep links depuis des notifications push, des messages in-app, des Banners ou des Content Cards. Les schémas personnalisés sont plus simples.
« Open Web URL Inside App »
Cette option ouvre une page Web dans une WebView modale au sein de votre application. Elle est entièrement gérée par le SDK Braze à l’aide de Braze.WebViewController : vous n’avez aucun code de gestion d’URL à écrire.
Utilisez « Open Web URL Inside App » dans les cas suivants :
- Vous souhaitez afficher une page Web (une promotion ou un article, par exemple) sans quitter votre application.
- L’URL est une page Web HTTPS standard, et non un deep link vers un écran précis de l’application.
N’utilisez pas « Open Web URL Inside App » dans les cas suivants :
- Vous devez naviguer vers une vue précise de votre application. Utilisez plutôt un schéma personnalisé ou un lien universel.
- La page Web nécessite une authentification ou comporte des en-têtes Content Security Policy qui bloquent l’intégration.
Éléments nécessaires pour chaque type de lien
Deep links avec schéma personnalisé
| Exigence | Détails |
|---|---|
| Fichier AASA | Non requis |
Info.plist |
Enregistrez votre schéma sous CFBundleURLTypes et ajoutez-le à LSApplicationQueriesSchemes |
| Méthode du délégué de l’application | Implémentez application(_:open:options:), ou scene(_:openURLContexts:) si votre application utilise des scènes, pour gérer les liens avec schéma personnalisé. Cela inclut les liens avec schéma personnalisé ouverts depuis les messages Braze |
| Configuration du SDK Braze | Aucune. Le SDK ouvre les URL avec schéma personnalisé par défaut, sauf si braze(_:shouldOpenURL:) renvoie false |
Liens universels
| Exigence | Détails |
|---|---|
| Fichier AASA | Requis : hébergez-le à l’adresse https://yourdomain.com/.well-known/apple-app-site-association |
| Domaines associés | Ajoutez applinks:yourdomain.com dans Xcode sous Signing & Capabilities |
| Méthode du délégué de l’application | Implémentez application(_:continue:restorationHandler:) pour gérer NSUserActivity |
| Configuration du SDK Braze | Définissez configuration.forwardUniversalLinks = true |
| BrazeDelegate (facultatif) | Implémentez braze(_:shouldOpenURL:) pour un routage personnalisé (par exemple, Branch) |

Si vous envoyez des e-mails via Braze, votre fournisseur de services d’e-mailing (SendGrid, SparkPost ou Amazon SES) encapsule les liens dans un domaine de suivi des clics. Vous devez donc également héberger le fichier AASA sur votre domaine de suivi des clics, et pas seulement sur votre domaine principal. Pour la configuration complète, consultez Liens universels et App Links. Si chaque lien d’e-mail ouvre l’application, consultez Chaque lien d’e-mail ouvre l’application.
« Open Web URL Inside App »
| Exigence | Détails |
|---|---|
| Fichier AASA | Non requis |
| Méthode du délégué de l’application | Non requise : le SDK s’en charge automatiquement |
| Configuration du SDK Braze | Aucune : sélectionnez Open Web URL Inside App dans l’éditeur de Campaign |
Quand avez-vous besoin d’un fichier AASA
Un fichier Apple App Site Association (AASA) n’est requis que si vous utilisez des liens universels. Il indique à iOS quelles URL votre application peut gérer.
Vous avez besoin d’un fichier AASA lorsque :
- Vous envoyez des deep links dans des Campaigns par e-mail (car les fournisseurs de services d’e-mailing encapsulent les liens dans des URL HTTPS de suivi des clics).
- Vous envoyez des deep links dans des Campaigns SMS (car les liens peuvent être raccourcis en URL HTTPS).
- Vous utilisez Branch, AppsFlyer ou un autre fournisseur de liens (car ils utilisent leurs propres domaines HTTPS).
- Vous utilisez des liens universels depuis des notifications push, des messages in-app ou des Content Cards (moins courant, mais possible avec
forwardUniversalLinks = true).
Vous n’avez pas besoin d’un fichier AASA lorsque :
- Vous utilisez uniquement des deep links avec schéma personnalisé (par exemple,
myapp://) depuis des notifications push, des messages in-app, des Content Cards ou des bannières. - Vous utilisez l’option Ouvrir l’URL Web dans l’application.
Pour les instructions de configuration AASA, consultez Liens universels et App Links.
Quand avez-vous besoin de code applicatif pour gérer les liens
La méthode déléguée à implémenter dépend du type de lien que vous utilisez et de votre besoin éventuel d’une logique de routage personnalisée :
| Méthode déléguée | Gère | Quand l’implémenter |
|---|---|---|
BrazeDelegate.braze(_:shouldOpenURL:) |
Toutes les URL ouvertes par le SDK Braze | Vous avez besoin d’une logique de routage personnalisée (par exemple, Branch, traitement conditionnel, analytique) pour les messages Braze |
application(_:open:options:) ou scene(_:openURLContexts:) |
Deep links avec schéma personnalisé (myapp://) |
Vous utilisez des deep links avec schéma personnalisé depuis n’importe quel canal, y compris les messages Braze |
application(_:continue:restorationHandler:) |
Liens universels (https://) |
Vous utilisez des liens universels depuis des e-mails, des SMS ou avec forwardUniversalLinks = true |
BrazeDelegate.shouldOpenURL ou méthodes d’ouverture d’URL de l’application
Pour les notifications push, les messages in-app, les Content Cards et les Banners, le SDK Braze appelle BrazeDelegate.braze(_:shouldOpenURL:) avant d’ouvrir l’URL. Le contexte de l’URL inclut le canal source. Utilisez cette méthode pour :
- Router l’URL vers un fournisseur tiers (par exemple, Branch ou AppsFlyer) avant que Braze ne l’ouvre
- Enregistrer des données analytiques
- Renvoyer
falsepour que Braze n’ouvre pas l’URL
Si vous n’implémentez pas shouldOpenURL, le SDK renvoie true par défaut et Braze ouvre l’URL. Les liens avec schéma personnalisé s’ouvrent via le système, qui appelle la méthode scene(_:openURLContexts:) ou application(_:open:options:) de votre application. Les liens web s’ouvrent dans une WebView ou dans le navigateur, selon les paramètres du message.
Si vous implémentez shouldOpenURL et renvoyez false, gérez l’URL dans cette méthode. Braze ne l’ouvre pas et ne la transmet pas aux méthodes déléguées de votre application ou de votre scène.
Lorsque Braze ouvre un lien avec schéma personnalisé, iOS appelle application(_:open:options:), ou scene(_:openURLContexts:) si votre application utilise des scènes. Lorsque forwardUniversalLinks = true, Braze transmet directement les liens universels à scene(_:continue:) ou à application(_:continue:restorationHandler:). Si les deux sont implémentées, Braze appelle uniquement la méthode déléguée de la scène.
Utiliser Branch avec Braze
Si vous utilisez Branch comme fournisseur de liens, votre configuration nécessite quelques étapes supplémentaires par rapport à une configuration de lien universel standard :
- SDK Branch : intégrez le SDK Branch en suivant la documentation de Branch.
- Domaines associés : ajoutez votre domaine Branch (par exemple,
applinks:yourapp.app.link) dans Xcode sous Signing & Capabilities. - BrazeDelegate : implémentez
braze(_:shouldOpenURL:)pour router les liens Branch vers le SDK Branch. Renvoyezfalseafin que Braze n’ouvre pas l’URL une fois que vous l’avez routée. - Transfert des liens universels : définissez
configuration.forwardUniversalLinks = truedans la configuration de votre SDK Braze.
Pour plus de détails sur le déploiement et des conseils de débogage, consultez Branch pour la création de liens profonds.