Partez à la découverte du deeplinking sur apps mobiles
Adjust , Content Team, Adjust, 25 oct. 2021.
Le deeplinking sur apps mobiles est une technologie permettant de lancer et d'ouvrir une page spécifique lorsque l'utilisateur clique sur une URL dans une page web ou dans une autre app. Les deeplinks constituent une façon sûre d'optimiser l'expérience utilisateur et d'augmenter vos taux de conversion. Poursuivez votre lecture pour savoir comment créer un deeplink et obtenir d'autres informations connexes.
Pourquoi avez-vous besoin du deeplinking ?
Imaginons que vous avez publié une app de musique. Pour mettre en avant la sortie d'un nouveau titre, vous avez massivement investi dans une campagne sur un site web populaire. Comme votre campagne permet d'écouter un extrait du titre, vous préférez certainement que l'utilisateur l'écoute à l'intérieur de votre app plutôt que sur le site web (où il ne verra que la pochette de l'album).
Passons à un autre exemple. Imaginons que vous souhaitez relancer des utilisateurs inactifs à travers une campagne de vente. Dans cette campagne, les utilisateurs sont dirigés vers la page de produits en vente dans votre app à l'aide d'un simple clic, sans avoir à effectuer aucune recherche ou à ou saisir de code de remise. Dans ces deux exemples de campagnes, le deeplinking prend tout son sens.
Le deeplinking sur apps mobiles propose une expérience simplifiée aux utilisateurs et peut augmenter fortement vos taux de conversion et de rétention. Pour en savoir à ce sujet, consultez la publication de notre blog qui étudie les effets du deeplinking dans les campagnes.
Pourquoi les deeplinks ont-ils été créés ?
Comme nous l'avons dit, le deeplinking facilite grandement le parcours des utilisateurs entre le web et les apps mobiles. Il donne aussi aux annonceurs de plus grandes chances de convertir ces utilisateurs.
Par exemple, imaginons que vous souhaitez lancer une campagne promouvant des cadeaux de Noël pour attirer des consommateurs vers votre app d'e-commerce. Dans votre campagne, vous mettez en avant les « Cadeaux de Noël » comme une catégorie, mais vous voulez que les consommateurs affichent les articles sur votre app et non pas sur le site web. C'est là que le deeplinking entre en jeu. Si l'application est installée sur l'appareil de l'utilisateur lorsqu'il clique sur le lien, l'app s'ouvre et (dans certains cas) affiche directement le produit.
La rétention des utilisateurs est une fonction clé du deeplinking. Les deeplinks permettent de conserver les utilisateurs dans votre app. Ils sont également très utiles pour réengager les utilisateurs et jouent un rôle central dans les campagnes de reciblage. Enfin, le deeplinking apporte de la polyvalence pour diriger les utilisateurs dans votre écosystème, en créant une meilleure expérience susceptible d'augmenter vos ventes, conversions et taux de rétention.
Deux types de deeplinks
Il existe deux types de deeplinks : par défaut et différés.
Deeplinks par défaut
Les deeplinks par défaut dirigent uniquement les utilisateurs vers une app si elle est installée. Si l'app n'est pas installée, le lien ne parvient pas à atteindre le endpoint de l'app, et un message d'erreur s'affiche.
Les deeplinks par défaut sont utiles dans les campagnes de reciblage où les marketeurs souhaitent avant tout cibler les utilisateurs ayant installé une app pour les inciter à revenir.
Deeplinks différés
Les deeplinks différés sont plus complexes que les deeplinks par défaut. Ils peuvent diriger les utilisateurs qui ne disposent pas de l'app installée vers l'App Store ou le Play Store (ou un autre emplacement, comme le site web de l'app), puis ouvrir la page originellement prévue par la redirection de l'utilisateur.
Par exemple, si un utilisateur télécharge une app d'e-commerce après avoir cliqué sur l'annonce pour une paire de chaussures, mais qu'il ne dispose pas de l'app installée, il est d'abord acheminé vers le store pour télécharger l'app. À l'ouverture de l'app après l'installation, la page du produit s'affiche automatiquement.
Les deeplinks différés peuvent uniquement être implémentés à travers une solution de deeplinking comme celle d'Adjust. Ils sont créés via une intégration du SDK. Pour plus d'informations à ce sujet, cliquez ici pour Android et ici pour iOS.
Deeplinking contextuel
Peut-être avez-vous entendu parler du deeplinking contextuel ? Il s'agit de liens qui proposent des avantages additionnels, car ils sont capables de stocker davantage d'informations et permettent donc aux marketeurs de mieux exploiter leur contenu.
Les deeplinks contextuels, par défaut ou différés, peuvent recevoir des paramètres supplémentaires. Ces liens ne constituent pas une catégorie à part entière.
Comment créer un deeplink ?
Commençons par les bases : la génération d'un deeplink. Ce processus peut parfois s'avérer compliqué, avec des allers-retours inutiles entre les développeurs et les marketeurs, car les liens doivent être implémentés dans l'app pour diriger les utilisateurs vers la destination souhaitée.
De plus, la mise en place manuelle de deeplink demande généralement un investissement de temps conséquent. Sans compter les possibilités d'erreurs humaines. Comme toute autre URL, un deeplink ne fonctionne pas s'il comporte une erreur (même les meilleurs ingénieurs se trompent parfois !). À l'inverse, une solution capable de créer automatiquement des deeplinks libère du temps et des ressources, que vous pouvez alors attribuer directement à l'optimisation des campagnes et des stratégies.
Enfin, vous souhaitez certainement disposer d'un outil simple d'emploi et automatisant le processus de génération des liens pour renforcer la fiabilité et réduire le risque d'erreurs humaines. Apprenez-en plus sur le Générateur de deeplinks Adjust, un outil proposant aux marketeurs des URL de deeplink complètes qui fonctionnent aussi bien avec les App Links (Android) que les Liens universels (iOS), pour gagner en facilité et dégager du temps.
Le deeplinking basé sur un schéma (pour Android et iOS) et les liens universels iOS 9+ s'accompagnent d'une documentation complète. L'idée de départ est, à peu de chose près, toujours la même : il s'agit d'associer une URL (pour les liens basés sur un schéma, yourapp:// ; pour les liens universels, https://yourdomain.com/) à votre app. Lorsque l'utilisateur clique sur l'URL, le système ouvre l'app (si elle est installée).
Mais la perfection n'est pas de ce monde. Vous vous demandez certainement ce qu'il se passe lorsque l'utilisateur clique sur une URL de deeplink alors que l'app n'est pas installée sur son appareil. Dans ce cas, il reçoit un message d'erreur ou le lien n'a aucun effet. Même s'il n'existe aucune façon de déterminer si une app est installée sur un appareil à partir du web, différentes méthodes permettent d'interroger votre app (lorsqu'elle est installée) et de diriger vos clients vers un app store ou un autre emplacement si elle n'est pas installée.
Comme indiqué plus haut, le deeplinking mobile basé sur un schéma pour Android et iOS et les liens universels iOS 9+ s'accompagnent d'une documentation complète. Examinons donc quelques exemples pour en comprendre le fonctionnement.
Implémentation du deeplinking pour Android
Imaginons que votre URL de deeplink est yourapp://path/ et que votre App Bundle ID bundle ID est com.yourapp.example.
Solution JavaScript
Une technique courante et éprouvée pour résoudre ce problème consiste à utiliser iframe pour charger l'URL de deeplink et un JavaScript différé pour la redirection vers le store :
De cette façon, le navigateur essaiera de charger yourapp://path/ en premier.
- Si votre app est installée, alors elle sera ouverte et le JavaScript suivant ne sera pas exécuté.
- Si votre app n'est pas installée, alors rien ne se passe pendant le chargement de yourapp://path/. Après 2 secondes, la page sera redirigée par le JavaScript vers le Play Store d'où l'utilisateur pourra installer l'app.
Le code ci-dessus présente un léger problème, cependant. Lorsque l'app est ouverte et que l'utilisateur revient à son navigateur, le JavaScript peut continuer de s'exécuter et rediriger l'utilisateur vers le Play Store. Pour régler ce problème, nous pouvons vérifier l'heure à laquelle l'utilisateur revient à son navigateur pour déterminer s'il doit être redirigé ou pas vers le store :
Solution Intent
Dans Chrome pour Android 25 (et versions ultérieures), le code ci-dessus ne fonctionne plus, comme indiqué dans la documentation de Chrome. Pour y remédier et proposer une meilleure solution, Google propose l'URL Intent. Lorsque l'utilisateur clique sur l'URL intent://path/#Intent;scheme=yourapp;package=com.yourapp.example;end, alors
- si l'app est installée, elle est ouverte par Chrome.
- si l'app n'est pas installée, Chrome ouvre le Play Store.
Quelle solution de deeplinking utiliser ?
La solution Intent est fortement recommandée, car elle est plus simple à implémenter et facilite l'expérience utilisateur. Elle requiert toutefois une prise en charge par le navigateur, et le système Android est hélas très fragmenté (il existe encore de nombreux OS et navigateurs obsolètes en activité). De plus, d'innombrables apps utilisent encore Android WebView, lequel ne prend pas en charge par défaut les URL Intent. La table suivante indique la solution à utiliser pour les navigateurs Android :
Navigateur | JavaScript | Intent |
---|---|---|
Chrome 24+ | √ | |
Chrome 25+ | √ | |
Firefox | √ | |
Navigateur Android | √ | |
Navigateur in-app Facebook | √ | |
Navigateur in-app Twitter | √ | |
Autres navigateurs | √ |
Implémentation du deeplinking pour iOS
Nous considérons que votre URL de deeplink est yourapp://path/ et votre App ID dans l'App Store est 12345678.
Solution JavaScript
Comme pour Android, il existe une astuce avec JavaScript pour iOS :
html <script>
window.location.replace("yourapp://path/"); setTimeout(function () {
window.location.replace("https://itunes.apple.com/app/id12345678"); }, 2000);
</script>
- si l'app est installée, le premier code de relocalisation ouvrira l'app et le script suivant ne sera pas exécuté.
- si l'app n'est pas installée, le premier code de relocalisation n'aura aucun effet et la fonction timeout entraînera une redirection vers l'App Store.
Toutefois, si ce script fonctionne bien dans iOS 8 ou versions antérieures avec Safari, ce n'est pas toujours le cas sur d'autres versions. Voici une table synthétique :
Navigateur | JavaScript |
---|---|
iOS 8 ou versions antérieures Safari | √ |
iOS Chrome | √ |
Navigateur in-app Facebook iOS 8 | √* |
Navigateur in-app Twitter iOS 8 | |
iOS 9+ |
* fonctionnement partiel selon version de l'app Facebook
Solution Lien universel
À partir d'iOS 9, Apple propose les liens universels, qui fonctionnent de façon similaire à l'Intent Android, mais qui nécessitent davantage de configuration. De plus, à partir d'iOS 9.2, la solution JavaScript ne fonctionne plus, car Apple a rendu la fenêtre d'invitation non modale.
Pour activer les liens universels, vous devez disposer d'un domaine certifié SSL (https://yourdomain.com/, par exemple) associé à votre app, et pour servir un fichier JSON spécial sous https://yourdomain.com/apple-app-site-association de façon similaire à :
Cette configuration indique à votre appareil le chemin d'accès à utiliser pour chaque app.
Ensuite, dans XCode, vous devez saisir applinks:yourdomain.com dans votre autorisation com.apple.developer.associated-domains :
Un domaine peut être associé à plusieurs apps, et inversement.
Ensuite, vous devez adopter les méthodes UIApplicationDelegate pour Handoff (en particulier application:continueUserActivity:restorationHandler:) pour que votre app puisse recevoir un lien et le traiter de manière appropriée.
Imaginons que vous associez https://yourdomain.com/dress/ à votre app en définissant "paths":[ "/dress/"] dans le fichier JSON. Lorsqu'un utilisateur clique sur le lien https://yourdomain.com/dress/1 dans Safari,
- si l'app est installée, elle est ouverte et https://yourdomain.com/dress/1 est transmis à UIApplicationDelegate. Vous pouvez alors la traiter ici pour décider de la Vue à ouvrir.
- si l'app n'est pas installée, l'URL https://yourdomain.com/dress/1 est ouverte avec Safari et vous pouvez encore afficher le produit sur votre site web ou rediriger l'utilisateur vers l'App Store.
Les liens universels semblent constituer une solution parfaite pour iOS. Mais, hélas, ils présentent aussi quelques limitations.
- Les liens universels fonctionnent uniquement avec Safari et Chrome.
- Lorsqu'un autre site redirige à partir d'un lien universel, ce dernier ne fonctionne que si le clic se produit dans Safari ou Chrome. Par exemple, si un lien dans votre app Email https://anotherDomain.com/ redirige vers le lien universel https://yourDomain.com/dress/1, le deeplink vers votre App ne fonctionnera pas. Mais si le lien https://anotherDomain.com est activé (par clic) depuis Safari, il fonctionne.
- Les liens universels ne fonctionnent pas si vous collez le lien directement dans la barre d'adresses.
- Les liens universels ne fonctionnent pas si la redirection est déclenchée par JavaScript.
- Les liens universels ne fonctionnent pas lorsque vous ouvrez le lien de manière programmée dans votre app (avec openUrl, par exemple).
Bienvenue dans le monde des deeplinks !
Le deeplinking sur apps mobiles n'est pas chose simple : il n'existe aucune solution miracle applicable à toutes les situations. Heureusement, Adjust sait identifier les principaux cas d'utilisation et proposer la meilleure stratégie pour rendre fonctionnel le deeplinking.
Nous disposons de beaucoup d'autres ressources concernant le deeplinking. Pour commencer, vous pouvez consulter notre guide du deeplinking. Il présente en détail le fonctionnement du deeplinking et explique pourquoi les deeplinks d'Adjust sont différents. Notre blog propose également diverses publications à ce sujet, comme ce guide présentant les subtilités de la liaison universelle, ainsi qu'une présentation générale de ses avantages. Vous pouvez également parcourir notre documentation et découvrir comment implémenter facilement les liens universels avec Adjust.
Enfin, vous pouvez accéder à notre page de support pour trouver réponse à toutes vos questions.
Envie d'insights mensuels sur les applications ? S'abonner à notre newsletter.