Vai al contenuto

Crescita

Deep link

Un deep link apre una schermata specifica all'interno della tua app installata, come una sfida, un invito referral o la pagina di un prodotto. Se l'app non è installata, il visitatore va invece allo store, proprio come con il tuo smart link. I deep link sono disponibili con Pro, Studio e A vita. Gli Universal Links e gli Android App Links richiedono anche un dominio personalizzato, che fa parte di Studio.

Come funziona un deep link

Aggiungi /open/ e il percorso interno all'app al tuo smart link. Viene inoltrata anche la query string:

https://mapps.one/habitly/open/challenges/30-days?ref=newsletter
VisitatoreCosa succede
iPhone o iPad, con un URL scheme iOS impostato Una breve pagina prova ad aprire habitly://challenges/30-days?ref=newsletter. Se l'app non è installata, il visitatore prosegue verso l'App Store.
Android o Huawei, con un nome del pacchetto impostato Una breve pagina apre un intent Android per lo stesso percorso, limitato al tuo pacchetto. Chrome apre l'app se è installata, altrimenti segue il fallback verso Google Play.
Telefono o tablet, senza impostazioni dei deep link per la sua piattaforma Reindirizzato direttamente al fallback.
Computer desktop e bot Reindirizzati allo smart link, mantenendo la query string.

Il fallback è la destinazione a cui il tuo smart link invierebbe quel dispositivo, secondo le tue regole di reindirizzamento, con i tag UTM inoltrati. Se quella piattaforma non ha un link allo store, il fallback è la landing page. Se i deep link non sono configurati affatto, o il piano non li include, ogni visitatore viene reindirizzato allo smart link.

I percorsi possono contenere lettere, numeri e i caratteri / _ - . ~ %. Gli altri caratteri vengono rimossi, quindi applica la codifica percentuale a tutto il resto, come gli spazi (%20).

Configurazione

Apri la scheda Deep link dell'app e compila i campi per le piattaforme che supporti:

CampoEsempioServe per
URL scheme iOShabitly://Aprire l'app dalla pagina di reindirizzamento su iPhone e iPad
Apple Team IDA1B2C3D4E5Universal Links. L'ID di 10 caratteri che trovi in Membership details nel tuo account Apple Developer.
Bundle ID iOScom.habitly.appUniversal Links
Nome del pacchetto Androidcom.habitly.appAprire l'app sui dispositivi Android e Huawei
Scheme AndroidhabitlyLo scheme gestito dal tuo intent filter
Impronte del certificato SHA-25614:6D:E9:83:...:44:E5Android App Links. Aggiungine una o più, separate da virgole, spazi o a capo.
Scheme Android: impostalo sullo scheme personalizzato registrato dalla tua app, come habitly. Se lo lasci vuoto, viene usato https e la prima parte del percorso diventa l'host (https://challenges/30-days). Funziona solo se il tuo intent filter se lo aspetta.

Registra lo scheme nella tua app

iOS, in Info.plist:

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

Android, in 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>

Nella tua app, leggi l'URL in arrivo, porta l'utente alla schermata corrispondente e leggi i parametri della query che ti servono. Invia i percorsi sconosciuti alla schermata principale, perché le persone modificano gli URL.

Universal Links e Android App Links

I link basati sullo scheme mostrano prima una breve pagina di reindirizzamento, e iOS può chiedere al visitatore di confermare. I link verificati saltano questo passaggio: quando l'app è installata, il sistema la apre direttamente. La verifica richiede un dominio che appartenga solo alla tua app, quindi funziona sul tuo dominio personalizzato. Una volta collegato get.habitly.app, mapps.one pubblica per te i file di associazione:

FileGenerato da
https://get.habitly.app/.well-known/apple-app-site-association
(disponibile anche su /apple-app-site-association)
Apple Team ID e bundle ID
https://get.habitly.app/.well-known/assetlinks.jsonNome del pacchetto Android e impronte SHA-256

Il file Apple copre tutti i percorsi sotto /open/:

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

Il file 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"
      ]
    }
  }
]

Ogni file restituisce "404 Not Found" finché i suoi campi non sono validi: un Team ID di 10 caratteri e un bundle ID per Apple, e un nome del pacchetto con almeno un'impronta nel formato AA:BB:... (32 coppie) per Android. Usa l'impronta della chiave di Play App Signing che trovi in Play Console → App integrity, e aggiungi anche la tua chiave di caricamento se testi build firmate in locale. I file vengono memorizzati nella cache per un'ora. Anche Apple li memorizza nella cache sui propri server, quindi reinstalla l'app per testare le modifiche.

Configura la tua app

iOS: aggiungi la capability Associated Domains con applinks:get.habitly.app.

Android: aggiungi un intent filter verificato per il tuo dominio:

<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>

Poi usa link come https://get.habitly.app/open/challenges/30-days nelle tue campagne. Quando l'app non è installata, il browser carica la pagina e si attiva lo stesso flusso di fallback.

Usa il tuo dominio nei link verificati. I file di associazione vengono pubblicati solo sui domini personalizzati, perché mapps.one è condiviso da molte app. I link su mapps.one/habitly/open/ continuano a funzionare tramite la pagina di reindirizzamento. Gli URL dei deep link mostrati nella dashboard e nell'API usano mapps.one, quindi sostituisci l'host con il tuo dominio quando vuoi link verificati.

Statistiche

Un'apertura viene conteggiata in Aperture tramite deep link quando un telefono o un tablet carica un URL /open/ e mapps.one prova ad aprire l'app. Il fallback verso lo store non viene conteggiato una seconda volta. I link verificati che aprono direttamente l'app non raggiungono mai mapps.one, quindi non vengono conteggiati. Per quelli, usa le statistiche della tua app.