Aller au contenu

Développer

Liens profonds

Un lien profond ouvre un écran précis de votre application installée, comme un défi, une invitation de parrainage ou une page produit. Si l'application n'est pas installée, le visiteur est envoyé vers le store, exactement comme avec votre lien intelligent. Les liens profonds sont disponibles avec les forfaits Pro, Studio et À vie. Les Universal Links et les Android App Links nécessitent aussi un domaine personnalisé, qui fait partie du forfait Studio.

Fonctionnement d'un lien profond

Ajoutez /open/ et le chemin dans l'application à votre lien intelligent. La chaîne de requête est également transmise :

https://mapps.one/habitly/open/challenges/30-days?ref=newsletter
VisiteurCe qui se passe
iPhone ou iPad, avec un URL scheme iOS défini Une courte page tente d'ouvrir habitly://challenges/30-days?ref=newsletter. Si l'application n'est pas installée, le visiteur poursuit vers l'App Store.
Android ou Huawei, avec un nom de package défini Une courte page ouvre un intent Android pour le même chemin, limité à votre package. Chrome ouvre l'application si elle est installée, et suit sinon la solution de repli vers Google Play.
Téléphone ou tablette, sans paramètres de lien profond pour sa plateforme Redirection directe vers la solution de repli.
Ordinateurs et robots Redirection vers le lien intelligent, en conservant la chaîne de requête.

La solution de repli est la destination vers laquelle votre lien intelligent enverrait cet appareil, selon vos règles de redirection, avec transmission des balises UTM. Si cette plateforme n'a pas de lien de store, la solution de repli est la page de destination. Si les liens profonds ne sont pas configurés du tout, ou si le forfait ne les inclut pas, chaque visiteur est redirigé vers le lien intelligent.

Les chemins peuvent contenir des lettres, des chiffres et les caractères / _ - . ~ %. Les autres caractères sont supprimés, encodez donc en pourcentage tout autre caractère, comme les espaces (%20).

Configuration

Ouvrez l'onglet Liens profonds de l'application et remplissez les champs des plateformes que vous prenez en charge :

ChampExempleUtilisé pour
URL scheme iOShabitly://Ouvrir l'application depuis la page de redirection sur iPhone et iPad
Team ID AppleA1B2C3D4E5Universal Links. L'identifiant de 10 caractères indiqué dans les Membership details de votre compte Apple Developer.
Bundle ID iOScom.habitly.appUniversal Links
Nom du package Androidcom.habitly.appOuvrir l'application sur les appareils Android et Huawei
Scheme AndroidhabitlyLe scheme géré par votre intent filter
Empreintes de certificat SHA-25614:6D:E9:83:...:44:E5Android App Links. Ajoutez-en une ou plusieurs, séparées par des virgules, des espaces ou des retours à la ligne.
Scheme Android : indiquez le scheme personnalisé que votre application enregistre, comme habitly. Si vous le laissez vide, https est utilisé et la première partie du chemin devient l'hôte (https://challenges/30-days). Cela ne fonctionne que si votre intent filter s'y attend.

Enregistrer le scheme dans votre application

iOS, dans Info.plist :

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>habitly</string>
    </array>
  </dict>
</array>

Android, dans AndroidManifest.xml :

<activity android:name=".MainActivity" android:exported="true">
  <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="habitly" />
  </intent-filter>
</activity>

Dans votre application, lisez l'URL entrante, affichez l'écran correspondant et lisez les paramètres de requête dont vous avez besoin. Envoyez les chemins inconnus vers l'écran d'accueil, car les gens modifient les URL.

Universal Links et Android App Links

Les liens avec scheme affichent d'abord une courte page de redirection, et iOS peut demander au visiteur de confirmer. Les liens vérifiés évitent cette étape : lorsque l'application est installée, le système l'ouvre directement. La vérification nécessite un domaine qui appartient uniquement à votre application, elle fonctionne donc sur votre domaine personnalisé. Dès que get.habitly.app est connecté, mapps.one sert les fichiers d'association pour vous :

FichierGénéré à partir de
https://get.habitly.app/.well-known/apple-app-site-association
(également disponible à /apple-app-site-association)
Team ID Apple et bundle ID
https://get.habitly.app/.well-known/assetlinks.jsonNom du package Android et empreintes SHA-256

Le fichier Apple couvre tous les chemins sous /open/ :

{
  "applinks": {
    "details": [
      {
        "appIDs": ["A1B2C3D4E5.com.habitly.app"],
        "components": [
          { "/": "/open/*", "comment": "Deep links created with mapps.one" }
        ]
      }
    ]
  },
  "webcredentials": { "apps": ["A1B2C3D4E5.com.habitly.app"] }
}

Le fichier Android :

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.habitly.app",
      "sha256_cert_fingerprints": [
        "14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"
      ]
    }
  }
]

Chaque fichier renvoie « 404 Not Found » tant que ses champs ne sont pas valides : un Team ID de 10 caractères et un bundle ID pour Apple, et un nom de package avec au moins une empreinte au format AA:BB:... (32 paires) pour Android. Utilisez l'empreinte de la clé Play App Signing indiquée dans Play Console → App integrity, et ajoutez aussi votre clé d'importation si vous testez des builds signés localement. Les fichiers sont mis en cache pendant une heure. Apple les met aussi en cache sur ses propres serveurs, réinstallez donc l'application pour tester vos modifications.

Configurer votre application

iOS : ajoutez la fonctionnalité Associated Domains avec applinks:get.habitly.app.

Android : ajoutez un intent filter vérifié pour votre domaine :

<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" android:host="get.habitly.app" android:pathPrefix="/open/" />
</intent-filter>

Utilisez ensuite des liens comme https://get.habitly.app/open/challenges/30-days dans vos campagnes. Si l'application n'est pas installée, le navigateur charge la page et le même processus de repli s'applique.

Utilisez votre domaine dans les liens vérifiés. Les fichiers d'association ne sont servis que sur les domaines personnalisés, car mapps.one est partagé par de nombreuses applications. Les liens sur mapps.one/habitly/open/ continuent de fonctionner via la page de redirection. Les URL de liens profonds affichées dans le tableau de bord et dans l'API utilisent mapps.one, remplacez donc l'hôte par votre domaine lorsque vous voulez des liens vérifiés.

Statistiques

Une ouverture est comptée dans Ouvertures de lien profond lorsqu'un téléphone ou une tablette charge une URL /open/ et que mapps.one tente d'ouvrir l'application. La redirection de repli vers le store n'est pas comptée une seconde fois. Les liens vérifiés qui ouvrent directement l'application n'atteignent jamais mapps.one, ils ne sont donc pas comptés. Pour ceux-là, utilisez les statistiques de votre propre application.