Guida completa agli Universal Links
Tutto quello che devi sapere su universal links, deep links e app links per iOS e Android
Indice
Cosa sono gli Universal Links?
Gli universal links sono URL che funzionano senza interruzioni tra web e app mobili. Quando un utente tocca un universal link su iOS, il sistema verifica se è installata un’app in grado di gestire quel link. Se l’app è installata, apre direttamente il contenuto specifico. Altrimenti il link si apre in Safari.
Su Android, la tecnologia equivalente si chiama App Links. Il concetto è lo stesso: un solo URL che instrada in modo intelligente verso app o sito web.
Vantaggi principali
- Esperienza utente fluida senza prompt o redirect
- Un solo URL per tutte le piattaforme
- Migliore attribuzione e analytics
- SEO migliore con URL HTTPS standard
- Funziona in email, SMS, social e altri canali
Come funzionano gli Universal Links
Il processo coinvolge tre componenti chiave:
File Apple App Site Association (AASA)
Un file JSON ospitato sul tuo dominio in /.well-known/apple-app-site-association che indica a iOS quali app possono gestire il dominio.
Configurazione app
La tua app deve essere configurata per gestire domini e pattern URL specifici negli entitlements (iOS) o intent filters (Android).
Codice di gestione URL
La tua app implementa codice per ricevere l’URL del deep link e navigare verso la schermata o il contenuto corretto.
Implementazione Universal Links su iOS
Passo 1: Crea il file AASA
Crea un file chiamato apple-app-site-association (senza estensione) con questa struttura: apple-app-site-association
{
"applinks": {
"apps": [],
"details": [
{
"appID": "TEAMID.com.yourcompany.yourapp",
"paths": [
"/products/*",
"/articles/*",
"/user/*"
]
}
]
}
}Importante
Il file deve essere servito via HTTPS con un certificato SSL valido. Deve anche restituire l’header Content-Type: application/json.
Passo 2: Configura la tua app iOS
In Xcode, aggiungi la capability Associated Domains con il tuo dominio:
applinks:yourdomain.com
applinks:www.yourdomain.comPasso 3: Gestisci l’URL nella tua app
// AppDelegate.swift
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let url = userActivity.webpageURL else {
return false
}
// Handle the URL and navigate to appropriate screen
handleUniversalLink(url)
return true
}Implementazione App Links su Android
Passo 1: Crea assetlinks.json
Ospita questo file su https://yourdomain.com/.well-known/assetlinks.json:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.yourcompany.yourapp",
"sha256_cert_fingerprints": [
"XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX"
]
}
}]Passo 2: Aggiorna AndroidManifest.xml
<activity android:name=".MainActivity">
<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" />
<data android:host="yourdomain.com" />
<data android:pathPrefix="/products" />
</intent-filter>
</activity>Passo 3: Gestisci l’Intent
// MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val action = intent.action
val data = intent.data
if (Intent.ACTION_VIEW == action && data != null) {
// Handle the deep link
handleDeepLink(data)
}
}Best practice ed errori comuni
Da fare
- ✅ Usa sempre HTTPS per il tuo dominio
- ✅ Testa su dispositivi reali, non solo simulatori
- ✅ Implementa URL di fallback per utenti web
- ✅ Aggiungi tracking analytics completo
- ✅ Gestisci correttamente gli edge case
- ✅ Mantieni aggiornati i file AASA/assetlinks
❌Da evitare
- ❌ Non usare redirect per i file AASA/assetlinks
- ❌ Non dimenticare di validare la sintassi JSON
- ❌ Non hardcodare la logica di navigazione dell’app
- ❌ Non assumere che l’app sia sempre installata
- ❌ Non saltare test su diverse versioni OS
Test e debugging
Test iOS
- 1. Usa il validatore AASA di Apple
- 2. Testa i link in Note, Messaggi o Mail
- 3. Controlla i log in Xcode Console
- 4. Verifica associazione dominio in Impostazioni → Developer
Test Android
- 1. Usa adb shell am start -a android.intent.action.VIEW -d "your-url"
- 2. Testa in Chrome, Gmail e app di messaggistica
- 3. Verifica stato con adb shell dumpsys package domain-preferred-apps
- 4. Monitora errori in logcat
Analytics e attribuzione
Una buona analytics è fondamentale per capire le performance dei tuoi universal links. Monitora queste metriche:
- CTR da canali diversi
- Tasso di apertura app vs fallback web
- Costo acquisizione per canale
- Tassi di conversione dei contenuti deep-linked
- Tempo alla prima azione dopo il deep link
- Performance per piattaforma (iOS vs Android)
Suggerimento pro
Usa una piattaforma smart link come Appy per gestire universal links automaticamente, tracciare analytics e fornire fallback. Risparmi settimane di sviluppo e ottieni infrastruttura enterprise.
Prova Appy gratisConclusione
Gli universal links sono essenziali per le app mobili moderne. Offrono UX fluida, migliorano l’attribuzione e funzionano in modo affidabile tra piattaforme. Anche se l’implementazione richiede attenzione, i benefici valgono lo sforzo.
Parti dalle basi, testa a fondo e migliora in base ai dati reali. Se vuoi evitare la complessità, usa una piattaforma come Appy che gestisce tutto automaticamente.
Risorse Appy correlate
Esplora gli strumenti Appy per universal links, deep links e QR code per accelerare la crescita della tua app mobile.
- Validatore Universal Link per testare iOS Universal Links e Android App Links.
- Generatore di QR code brandizzati per campagne di installazione app e funnel offline.
- Funzionalità smart link come deep links, regole di routing e analytics.
Continua a esplorare
Deep Linking vs Universal Links: confronto completo
Comprendi le differenze chiave tra deep link e universal link, quando usare ciascun approccio e come implementarli correttamente.
Universal Links aprono Safari? Correggi AASA, App Links, redirect e header
Workflow pratico per risolvere universal links e app links che aprono il browser invece dell’app.
Chiusura di Firebase Dynamic Links: guida completa alla migrazione verso Appy
Firebase Dynamic Links viene chiuso. Ecco una guida completa per migrare ad Appy senza downtime.
Cerchi altro? Sfoglia tutti gli argomenti su il blog di Appy.
Evita la complessità. Usa Appy.
Appy gestisce automaticamente universal links, deep linking, QR code e analytics. Nessun codice richiesto.