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
| Visitatore | Cosa 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:
| Campo | Esempio | Serve per |
|---|---|---|
| URL scheme iOS | habitly:// | Aprire l'app dalla pagina di reindirizzamento su iPhone e iPad |
| Apple Team ID | A1B2C3D4E5 | Universal Links. L'ID di 10 caratteri che trovi in Membership details nel tuo account Apple Developer. |
| Bundle ID iOS | com.habitly.app | Universal Links |
| Nome del pacchetto Android | com.habitly.app | Aprire l'app sui dispositivi Android e Huawei |
| Scheme Android | habitly | Lo scheme gestito dal tuo intent filter |
| Impronte del certificato SHA-256 | 14:6D:E9:83:...:44:E5 | Android App Links. Aggiungine una o più, separate da virgole, spazi o a capo. |
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:
| File | Generato 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.json | Nome 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.
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.