Passer au contenu

Liens universels et App Links

Cet article décrit comment configurer les liens universels Apple et les Android App Links.

Les liens universels Apple et les Android App Links sont des mécanismes conçus pour offrir une transition fluide entre le contenu web et les applications mobiles. Alors que les liens universels sont spécifiques à iOS, les Android App Links remplissent la même fonction pour les applications Android.

Les liens universels (iOS) et les App Links (Android) sont des liens web standard (http://mydomain.com) qui pointent à la fois vers une page web et vers un contenu au sein d’une application.

Lorsqu’un lien universel ou un App Link est ouvert, le système d’exploitation vérifie si une application installée est enregistrée pour ce domaine. Si une application est trouvée, elle est lancée immédiatement sans jamais charger la page web. Si aucune application n’est trouvée, l’URL web est chargée dans le navigateur web par défaut de l’utilisateur, qui peut également être configuré pour rediriger vers l’App Store ou le Google Play Store respectivement.

En d’autres termes, les liens universels permettent à un site web d’associer ses pages web à des écrans spécifiques de l’application, de sorte que lorsqu’un utilisateur clique sur un lien vers une page web qui correspond à un écran de l’application, l’application peut être ouverte directement (si elle est actuellement installée).

Ce tableau présente les principales différences entre les liens universels et les deep links traditionnels :

  Liens universels et App Links Deep links
Compatibilité des plateformes iOS (version 9 et ultérieure) et Android (version 6.0 et ultérieure) Utilisés sur divers systèmes d’exploitation mobiles
Objectif Relier de façon fluide le contenu web et applicatif sur les appareils iOS et Android Renvoyer vers un contenu spécifique de l’application
Fonction Dirige vers des pages web ou du contenu applicatif en fonction du contexte Ouvre des écrans spécifiques de l’application
Installation de l’application Ouvre l’application si elle est installée, sinon ouvre le contenu web Nécessite que l’application soit installée

Cas d’usage

Les liens universels et les App Links sont le plus souvent utilisés pour les campagnes par e-mail, car les e-mails peuvent être ouverts et consultés aussi bien sur ordinateur que sur appareil mobile.

Certains canaux ne fonctionnent pas bien avec ces liens. Par exemple, les notifications push, les messages in-app et les Content Cards doivent utiliser des deep links basés sur un schéma (mydomain://).

Prérequis

Pour utiliser les liens universels et les App Links :

  • Votre site web doit être accessible via HTTPS
  • Votre application doit être disponible dans l’App Store (iOS) ou le Google Play Store (Android)

Pour que les applications prennent en charge les liens universels ou les App Links, iOS et Android nécessitent tous deux un fichier de permissions spécial hébergé sur le domaine du lien. Ce fichier contient les définitions des applications autorisées à ouvrir les liens de ce domaine et, pour iOS, les chemins que ces applications sont autorisées à ouvrir :

  • iOS : fichier Apple App Site Association (AASA)
  • Android : fichier Digital Asset Links

En plus de ce fichier de permissions, des définitions codées en dur précisent quels domaines de liens l’application est autorisée à ouvrir, configurées au sein de l’application :

  • iOS : définis en tant que « Associated Domains » dans Xcode
  • Android : définis dans le fichier AndroidManifest.xml de l’application

Cette association bidirectionnelle domaine-application est nécessaire pour qu’un lien universel ou un App Link fonctionne et empêche toute application de détourner les liens d’un domaine particulier ou tout domaine d’ouvrir une application particulière.

Ces étapes sont adaptées de la documentation développeur Apple. Pour plus d’informations, consultez Allowing apps and websites to link to your content.

Étape 1 : Configurer les droits de votre application

Étape 1a : Enregistrer votre application

  1. Accédez à developer.apple.com et connectez-vous.
  2. Cliquez sur Certificates, Identifiers & Profiles.
  3. Cliquez sur Identifiers.
  4. Si vous n’avez pas encore d’identifiant d’application enregistré, cliquez sur + pour en créer un. a. Saisissez un Name. Vous pouvez choisir n’importe quel nom. b. Saisissez le Bundle ID. Vous pouvez trouver votre identifiant de bundle dans l’onglet General de votre projet Xcode pour la cible de build appropriée.

Étape 1b : Activer les Associated Domains dans votre identifiant d’application

  1. Dans votre identifiant d’application existant ou nouvellement créé, localisez la section App Services.
  2. Sélectionnez Associated Domains.
  3. Cliquez sur Save.

Section App Services

Étape 1c : Activer les Associated Domains dans votre projet Xcode

Avant de poursuivre, assurez-vous que votre projet Xcode a la même équipe sélectionnée que celle où vous venez d’enregistrer votre identifiant d’application.

  1. Dans Xcode, accédez à l’onglet Capabilities de votre fichier de projet.
  2. Activez Associated Domains.
Conseil de résolution des problèmes

Si vous voyez l’erreur « An App ID with Identifier ‘your-app-id’ is not available. Please enter a different string », procédez comme suit :

  1. Vérifiez que la bonne équipe est sélectionnée.
  2. Vérifiez que le Bundle ID (étape 1a) de votre projet Xcode correspond à celui utilisé pour enregistrer l’identifiant d’application.

Étape 1d : Ajouter le droit de domaine

Dans la section des domaines, ajoutez l’étiquette de domaine appropriée. Vous devez la préfixer avec applinks:. Dans cet exemple, nous avons ajouté applinks:yourdomain.com.

Section Associated Domains

Étape 1e : Vérifier que le fichier de droits est inclus à la compilation

Dans le navigateur de projet, assurez-vous que votre nouveau fichier de droits est sélectionné sous Target Membership.

Xcode devrait gérer cela automatiquement.

Étape 2 : Configurer votre site web pour héberger le fichier AASA

Pour associer le domaine de votre site web à votre application native sur iOS, vous devez héberger le fichier Apple App Site Association (AASA) sur votre site web. Ce fichier sert de moyen sécurisé pour vérifier la propriété du domaine auprès d’iOS. Avant iOS 9, les développeurs pouvaient enregistrer n’importe quel schéma URI pour ouvrir leurs applications, sans aucune vérification. Cependant, avec l’AASA, ce processus est devenu beaucoup plus sécurisé et fiable.

Le fichier AASA contient un objet JSON avec une liste d’applications et les chemins d’URL du domaine qui doivent être inclus ou exclus en tant que liens universels. Voici un exemple de fichier AASA :

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "JHGFJHHYX.com.facebook.ios",
        "paths": [
          "*"
        ]
      }
    ]
  }
}
  • appID : construit en combinant le Team ID de votre application (accédez à https://developer.apple.com/account/#/membership/ pour obtenir le Team ID) et le Bundle Identifier. Dans cet exemple, « JHGFJHHYX » est le Team ID et « com.facebook.ios » est le bundle ID.
  • paths : tableau de chaînes de caractères spécifiant les chemins inclus ou exclus de l’association. Vous pouvez utiliser NOT devant le chemin pour désactiver des chemins. Dans cet exemple, tous les liens de ce chemin iront vers le web au lieu d’ouvrir l’application. Vous pouvez utiliser * comme joker pour activer tous les chemins d’un répertoire et ? pour correspondre à un seul caractère (par exemple /archives/201?/ pour correspondre à tous les nombres de 2010 à 2019).

Étape 3 : Héberger le fichier AASA sur votre domaine

Lorsque votre fichier AASA est prêt, vous pouvez l’héberger sur votre domaine soit à l’adresse https://<<yourdomain>>/apple-app-site-association, soit à l’adresse https://<<yourdomain>>/.well-known/apple-app-site-association.

Téléversez le fichier apple-app-site-association sur votre serveur web HTTPS. Vous pouvez placer le fichier à la racine de votre serveur ou dans le sous-répertoire .well-known. N’ajoutez pas .json au nom du fichier.

Lors de l’hébergement du fichier AASA, assurez-vous que le fichier respecte les directives suivantes :

  • Est servi via HTTPS.
  • Utilise le type MIME application/json.
  • Ne dépasse pas 128 Ko (exigence à partir d’iOS 9.3.1)

Lorsqu’un utilisateur appuie sur un lien universel sur un appareil iOS, l’appareil lance l’application et lui envoie un objet NSUserActivity. L’application peut ensuite interroger l’objet NSUserActivity pour déterminer comment elle a été lancée.

Pour prendre en charge les liens universels dans votre application, suivez les étapes suivantes :

  1. Ajoutez un droit qui spécifie les domaines pris en charge par votre application.
  2. Mettez à jour le délégué de votre application pour répondre de manière appropriée lorsqu’il reçoit l’objet NSUserActivity.

Dans Xcode, ouvrez la section Associated Domains dans l’onglet Capabilities et ajoutez une entrée pour chaque domaine pris en charge par votre application, préfixé par applinks:. Par exemple, applinks:www.mywebsite.com.

Ajoutez le lien universel à un e-mail et envoyez-le à un appareil de test. Coller un lien universel directement dans la barre d’URL de Safari ne provoquera pas l’ouverture automatique de l’application. Si vous faites cela, vous devrez manuellement faire glisser la page web vers le bas pour qu’une invite apparaisse en haut vous demandant d’ouvrir l’application concernée.

Ces étapes sont adaptées de la documentation développeur Android. Pour plus d’informations, consultez Add Android App Links et Create Deep Links to App Content.

Tout d’abord, vous devez créer des deep links pour votre application Android. Pour cela, ajoutez des filtres d’intention dans votre fichier AndroidManifest.xml. Le filtre d’intention doit inclure l’action VIEW et la catégorie BROWSABLE, ainsi que l’URL de votre site web dans l’élément data.

Étape 2 : Associer votre application à votre site web

Vous devez associer votre application à votre site web. Pour cela, créez un fichier Digital Asset Links. Ce fichier doit être au format JSON et inclure les détails des applications Android autorisées à ouvrir les liens vers votre site web. Il doit être placé dans le répertoire .well-known de votre site web.

Étape 3 : Mettre à jour le fichier manifeste de votre application

Dans votre fichier AndroidManifest.xml, ajoutez un élément meta-data à l’intérieur de l’élément application. L’élément meta-data doit avoir un attribut android:name défini sur « asset_statements » et un attribut android:resource pointant vers un fichier de ressource contenant un tableau de chaînes de caractères incluant l’URL de votre site web.

Dans votre application Android, vous devez gérer les deep links entrants. Pour cela, récupérez l’intention qui a démarré votre activité et extrayez-en les données.

Enfin, vous pouvez tester vos deep links. Envoyez-vous un lien via une application de messagerie ou un e-mail et cliquez dessus. Si tout est correctement configuré, l’application devrait s’ouvrir.

Nos partenaires d’envoi d’e-mails utilisent des domaines de suivi des clics pour encapsuler tous les liens et inclure des paramètres d’URL pour le suivi des clics dans les e-mails Braze.

Par exemple, un lien comme https://www.example.com devient quelque chose comme https://links.email.example.com/uni/wf/click?upn=abcdef123456….

Pour permettre aux liens d’e-mail avec suivi des clics de fonctionner comme des liens universels ou des App Links, vous devrez effectuer une configuration supplémentaire. Assurez-vous d’ajouter le domaine de suivi des clics (links.email.example.com) comme domaine que l’application est autorisée à ouvrir. De plus, le domaine de suivi des clics doit servir les fichiers AASA (iOS) ou Digital Asset Links (Android). Cela permettra de garantir que les liens d’e-mail avec suivi des clics fonctionnent de façon fluide.

Si vous ne souhaitez pas que chaque lien de suivi des clics soit un lien universel ou un App Link, vous pouvez spécifier quels liens doivent être des liens universels en fonction du partenaire d’envoi d’e-mails. Consultez les onglets suivants pour plus de détails.

Pour traiter un lien de suivi des clics SendGrid comme un lien universel :

  1. Configurez vos valeurs pathPrefix AASA ou AndroidManifest pour ne traiter comme liens universels que les liens contenant /uni/ dans le chemin d’URL.
  2. Ajoutez l’attribut universal="true" à la balise d’ancrage (<a>) de votre lien. Cela modifie le chemin d’URL du lien encapsulé pour inclure /uni/.

Par exemple :

<a href=”https://www.example.com” universal="true">
  1. Assurez-vous que votre application est configurée pour gérer correctement les liens encapsulés. Consultez l’article de SendGrid sur la résolution des liens de suivi des clics SendGrid et suivez les étapes correspondant à votre système d’exploitation. Cet article contient des exemples de code pour iOS et Android.

Avec cette configuration, les liens contenant /uni/ dans le chemin d’URL fonctionneront comme des liens universels, tandis que tous les autres liens fonctionneront comme des liens web.

Pour traiter un lien de suivi des clics SparkPost comme un lien universel, ajoutez l’attribut suivant dans la section Attributs de l’éditeur par glisser-déposer pour l’e-mail, ou modifiez manuellement le HTML du lien pour inclure l’attribut suivant dans la balise d’ancrage de votre lien : data-msys-sublink="custom_path".

Ce chemin personnalisé vous permet de traiter sélectivement les URL contenant cette valeur comme un lien universel.

Par exemple :

<a href=”https://www.example.com” data-msys-sublink="open-in-app">

Ensuite, assurez-vous que votre application est configurée pour gérer correctement le chemin personnalisé. Consultez l’article de SparkPost sur l’utilisation du suivi des clics SparkPost sur les deep links. Cet article contient des exemples de code pour iOS et Android.

Utilisez des chemins personnalisés pour ajouter des segments de chemin aux URL de suivi des clics dans les e-mails. Cela crée des modèles d’URL prévisibles que les systèmes d’exploitation mobiles peuvent reconnaître pour les liens universels et les App Links.

Lorsque les utilisateurs appuient sur des liens d’e-mail sur des appareils mobiles, les chemins personnalisés vous aident à contrôler si les liens s’ouvrent dans votre application mobile principale, une application spécialisée ou le navigateur mobile (par exemple, pages de produits, programmes de fidélité, liens de désabonnement ou pages juridiques).

Pour traiter un lien de suivi des clics Amazon SES comme un lien universel ou un App Link :

  1. Ajoutez des attributs ses:custom-path à vos balises d’ancrage dans le HTML de l’e-mail, ou ajoutez l’attribut dans la section Attributs de l’éditeur par glisser-déposer pour l’e-mail. Le chemin personnalisé est inséré dans l’URL de suivi des clics encapsulée.

Par exemple :

<!-- Opens main shopping app -->
<a href="https://yourstore.com/product" ses:custom-path="shop">Shop Now</a>
<!-- Opens loyalty app -->
<a href="https://yourstore.com/rewards" ses:custom-path="rewards">My Rewards</a>
<!-- Opens specialized app -->
<a href="https://yourstore.com/limited" ses:custom-path="limited">Limited Edition</a>
<!-- Stays in browser -->
<a href="https://yourstore.com/unsubscribe" ses:no-track>Unsubscribe</a>

Assurez-vous que vos chemins personnalisés respectent ces exigences :

  • Format : caractères alphanumériques, points, tirets bas et tirets uniquement
  • Longueur : 1 à 32 caractères
  • Sensibilité à la casse : les chemins sont sensibles à la casse pour correspondre aux exigences des systèmes d’exploitation mobiles
  1. Confirmez que vos URL de suivi encapsulées incluent le segment de chemin personnalisé. Sans l’attribut, les liens suivis utilisent track.yourstore.com/CL0/{encodedUrl}/.... Avec l’attribut, ils suivent ce format : track.yourstore.com/CL1/{customPath}/{encodedUrl}/...

Par exemple :

  • track.yourstore.com/CL1/shop/...
  • track.yourstore.com/CL1/rewards/...
  1. Configurez vos fichiers d’association de site sur votre domaine de suivi des clics afin que les chemins correspondent à /CL1/{customPath}/.

iOS (Apple App Site Association) :

{
  "applinks": {
    "apps": [],
    "details": [{
      "appID": "TEAMID.com.yourcompany.mainapp",
      "paths": ["/CL1/shop/*", "/CL1/rewards/*"]
    }, {
      "appID": "TEAMID.com.yourcompany.limitedapp",
      "paths": ["/CL1/limited/*"]
    }]
  }
}

Android (Digital Asset Links) :

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.yourcompany.mainapp",
    "sha256_cert_fingerprints": ["..."]
  }
}]

Android fait correspondre les chemins dans votre application plutôt que dans assetlinks.json. Définissez android:pathPrefix="/CL1/{customPath}/" sur le filtre d’intention dans votre AndroidManifest.xml pour chaque chemin personnalisé que votre application gère.

Assurez-vous que votre application est configurée pour gérer ces liens encapsulés. Ajoutez votre domaine de suivi des clics aux domaines associés de votre application (iOS) ou aux filtres d’intention (Android), et hébergez le fichier AASA ou Digital Asset Links sur ce domaine comme décrit précédemment dans cet article.

Vous pouvez désactiver le suivi des clics pour des liens spécifiques en ajoutant du code HTML à votre message e-mail pour l’éditeur HTML ou à un bloc HTML pour l’éditeur par glisser-déposer.

SendGrid

Si votre fournisseur de services d’e-mailing est SendGrid, utilisez le code HTML clicktracking=off comme ceci :

<a clicktracking=off href="[INSERT https LINK HERE]">click here</a>

SparkPost

Si votre fournisseur de services d’e-mailing est SparkPost, utilisez le code HTML data-msys-clicktrack="0" comme ceci :

<a data-msys-clicktrack="0" href="[INSERT https LINK HERE]">click here</a>

Amazon SES

Si votre fournisseur de services d’e-mailing est Amazon SES, utilisez le code HTML ses:no-track comme ceci :

<a ses:no-track href="[INSERT https LINK HERE]">click here</a>

Éditeur par glisser-déposer

Lorsque vous utilisez l’éditeur d’e-mail par glisser-déposer, entrez votre code HTML en tant qu’attribut personnalisé si votre lien est attaché à du texte, un bouton ou une image.

SendGrid

Sélectionnez les éléments suivants pour l’attribut personnalisé :

  • Nom : clicktracking
  • Valeur : off

SparkPost

Sélectionnez les éléments suivants pour l’attribut personnalisé :

  • Nom : data-msys-clicktrack
  • Valeur : 0

Un attribut personnalisé pour un lien textuel.

Attribut personnalisé pour un bouton ou une image

SendGrid

Sélectionnez les éléments suivants pour l’attribut personnalisé :

  • Nom : clicktracking
  • Valeur : off
  • Type : Link

SparkPost

Sélectionnez les éléments suivants pour l’attribut personnalisé :

  • Nom : data-msys-clicktrack
  • Valeur : 0
  • Type : Link

Un attribut personnalisé pour un bouton.

Si vos liens universels ne fonctionnent pas comme prévu dans vos e-mails, par exemple si le destinataire est redirigé de son application de messagerie vers le navigateur web avant d’être finalement redirigé vers l’application, consultez ces conseils pour résoudre les problèmes de votre configuration de liens universels.

Outlook affiche [?it= ou du texte d’URL brut au lieu d’un bouton

Outlook peut afficher le texte d’appel à l’action comme [?it= ou imprimer une partie du href lorsqu’un lien n’utilise pas un schéma d’URL valide http:// ou https://. Les schémas personnalisés, les schémas manquants ou les URL malformées ne sont pas traités comme des hyperliens, de sorte que le client affiche le texte de l’attribut à la place. Confirmez que chaque bouton, lien d’image et URL suivi utilise une destination complète https:// (ou http://). Cela s’applique aussi bien aux liens universels qu’aux liens web standard.

Assurez-vous que le fichier AASA (iOS) ou le fichier Digital Asset Links (Android) se trouve au bon emplacement :

  • iOS : https://click.tracking.domain/.well-known/apple-app-site-association
  • Android : https://click.tracking.domain/.well-known/assetlinks.json

Il est important de s’assurer que ces fichiers sont toujours accessibles publiquement. Si vous ne pouvez pas y accéder, vous avez peut-être manqué une étape dans la configuration des liens universels pour l’e-mail.

Vérifier les définitions de domaine

Assurez-vous que vous avez les bonnes définitions pour les domaines que votre application est autorisée à ouvrir.

  • iOS : Vérifiez les domaines associés configurés dans Xcode pour votre application (Étape 1c : Activer les domaines associés dans votre projet Xcode). Vérifiez que le domaine de suivi des clics est inclus dans cette liste.
  • Android : Ouvrez la page d’informations de l’application (appui long sur l’icône de l’application, puis cliquez sur ⓘ). Dans le menu d’informations de l’application, localisez Ouvrir par défaut et appuyez dessus. Cela devrait afficher un écran avec tous les liens vérifiés que l’application est autorisée à ouvrir. Vérifiez que le domaine de suivi des clics est inclus dans cette liste.

Si chaque lien dans un e-mail ouvre votre application, y compris les liens que vous vous attendez à ouvrir dans un navigateur, c’est que les valeurs paths de l’AASA (iOS) ou pathPrefix d’Android sur votre domaine de suivi des clics correspondent à l’ensemble du domaine (par exemple * ou /*).

Limitez ces modèles aux URL qui doivent ouvrir l’application. Pour SendGrid, faites correspondre /uni/ et ajoutez universal="true" uniquement sur ces liens. Voir Liens universels, App Links et suivi des clics.

Le domaine de suivi ne peut pas servir les fichiers .well-known

Dans certains cas, votre domaine de suivi des clics peut ne pas être en mesure d’héberger les fichiers .well-known requis en raison de limitations du fournisseur de services d’e-mailing ou de contraintes d’infrastructure. Si vous ne pouvez pas héberger le fichier AASA ou Digital Asset Links sur votre domaine de suivi, envisagez les options suivantes :

  • Désactiver sélectivement le suivi des clics sur les URL de deep link : Vous pouvez désactiver le suivi des clics pour des liens universels spécifiques afin qu’ils pointent directement vers votre domaine principal (où vous pouvez héberger le fichier AASA ou Digital Asset Links). Notez que cette méthode peut entraîner une perte de données analytiques de clics pour ces liens spécifiques. Consultez la section Désactiver le suivi des clics lien par lien pour les instructions.
  • Placer un CDN devant le sous-domaine de suivi : Si vous avez besoin d’une couverture complète du suivi des clics et du deep linking, vous pouvez placer un CDN (tel que Cloudflare ou CloudFront) devant votre sous-domaine de suivi. Configurez le CDN pour servir les fichiers .well-known localement et rediriger tout le reste du trafic vers votre fournisseur de services d’e-mailing. Cette approche est plus complexe mais vous donne un contrôle total sur le suivi des clics et les liens universels.

Si les liens universels ou les App Links fonctionnent correctement dans votre espace de travail de production mais échouent dans votre espace de travail de développement ou de test, vérifiez que le domaine de l’adresse e-mail d’envoi correspond au domaine de suivi configuré dans les paramètres e-mail de chaque espace de travail. Une configuration incohérente entre les espaces de travail peut entraîner un comportement différent des liens même lorsque vous utilisez les mêmes modèles d’e-mail et les mêmes fichiers AASA ou Digital Asset Links.

Pour vérifier votre configuration e-mail :

  1. Accédez à Paramètres > Préférences e-mail dans le tableau de bord de Braze.
  2. Vérifiez les Paramètres d’envoi d’e-mails sortants sous Configuration d’envoi.
  3. Confirmez que votre domaine d’envoi et votre domaine de suivi sont correctement alignés pour l’espace de travail où les liens ne fonctionnent pas.

Si votre domaine d’envoi diffère entre les espaces de travail, assurez-vous que chaque espace de travail dispose des enregistrements DNS appropriés et que vos fichiers AASA (iOS) ou Digital Asset Links (Android) sont accessibles depuis chaque domaine de suivi.

Les attributs de désactivation par lien s’appliquent uniquement aux balises d’ancrage HTML spécifiques où vous les ajoutez. Causes courantes lorsqu’un lien apparaît encore comme suivi :

  • Attribut manquant dans la source HTML — Confirmez que clicktracking=off (SendGrid), data-msys-clicktrack="0" (SparkPost) ou ses:no-track (Amazon SES) se trouve sur la balise <a> dans la source de l’éditeur HTML, et pas uniquement dans un aperçu.
  • Attributs personnalisés dans l’éditeur par glisser-déposer — Pour l’éditeur par glisser-déposer, vérifiez que le nom et la valeur de l’attribut personnalisé du lien correspondent à votre fournisseur de services d’e-mailing (voir Désactiver le suivi des clics lien par lien).
  • URL dans le corps en texte brut — Si vous testez des liens à partir de la partie en texte brut du message, ces URL peuvent ne pas hériter des attributs de désactivation propres au HTML. Envoyez un message de test et inspectez l’e-mail brut pour confirmer quelle partie contient le lien encapsulé.
New Stuff!