In questa pagina: scopri come creare collegamenti profondi in contenuti e-mail e SMS, configurarli in Adobe Journey Optimizer e gestire i collegamenti tracciati nelle app iOS e Android in modo che i destinatari arrivino alla schermata in-app corretta.
I collegamenti profondi consentono di portare i destinatari da un messaggio e-mail o SMS a una schermata o a un contenuto specifico nell’app mobile. Aiuta a portare le persone direttamente all’esperienza in-app prevista, senza indirizzarle tramite un browser web o un app store, in modo che il percorso rimanga rilevante e sul marchio.
Quando i destinatari fanno clic sul collegamento profondo, vengono indirizzati direttamente al contenuto in-app desiderato - a condizione che tu abbia completato:
-
passaggi di configurazione in Journey Optimizer;
-
i passaggi per l’implementazione dell’app mobile per iOS e Android nella tua app mobile.
/ee/v1/mclick/*) per garantire la compatibilità e il tracciamento dei clic.Creazione di collegamenti profondi authoring
E-mail authoring-email
Per i messaggi e-mail, puoi inserire un collegamento profondo in due modi:
-
Invia un’e-mail a Designer: assicurati che il tracciamento dei collegamenti sia abilitato. Seleziona l’elemento da collegare (testo, pulsante o immagine), fai clic su Inserisci collegamento nella barra degli strumenti contestuale e scegli Collegamento diretto per immettere l’URL del collegamento diretto. Ulteriori informazioni sull’inserimento di collegamenti
-
Editor Personalization (codice): inserisci il collegamento profondo direttamente in HTML utilizzando lo snippet seguente:
code language-html <a class="arc-link" data-nl-type="DEEPLINK" href="<<deeplink_url>>" id="acr-link-7821368" style="text-decoration:underline;" target="_blank" data-tracking-type="DEEPLINK">Click Here</a>note tip TIP Sostituisci <<deeplink_url>>con l'URL del collegamento profondo effettivo e utilizza unidunivoco per ogni blocco per evitare conflitti.
SMS authoring-sms
Per gli SMS, i collegamenti profondi vengono creati utilizzando la funzione helper Url nell’editor di personalizzazione. Scopri come aggiungere collegamenti al contenuto SMS in questa sezione.
Per inserire collegamenti profondi nel contenuto degli SMS, utilizza la sintassi seguente:
{{url originalUrl='<<url>>' type='DEEPLINK' action='CLICK'}}
<<url>> con il tuo URL di collegamento profondo effettivo.Configurazione in Journey Optimizer configuration
Per poter utilizzare i collegamenti profondi nelle e-mail e negli SMS per le app mobili, completa i passaggi di configurazione riportati di seguito.
-
In Journey Optimizer, delega il sottodominio in cui è abilitato il collegamento profondo. Ulteriori informazioni
-
Ospita il file AASA per iOS e il file assetLinks.json per Android sul tuo sottodominio. Contatta l’Assistenza clienti Adobe o il tuo rappresentante Adobe con i dettagli seguenti:
-
Per iOS (AASA):
- Sottodominio delegato
- ID bundle dell’app
-
Per Android (assetLinks.json):
- Sottodominio delegato
- ID bundle dell’app
- Impronta digitale del certificato SHA-256
-
/ee/v1/mclick/*, che Adobe ospita e risolve.Implementazione di un’app mobile mobile-implementation
Questa sezione spiega come implementare i collegamenti profondi per dispositivi mobili con Adobe Journey Optimizer in modo che, in una configurazione tipica di HTTPS (collegamenti universali e collegamenti alle app), un singolo URL possa:
- Apri una schermata specifica all’interno dell’app mobile quando questa è installata, oppure
- Apri il sito web come fallback quando l’app non è installata.
Quando il tracciamento dei collegamenti è abilitato per il messaggio, Journey Optimizer continua a tenere traccia di questi clic, li include nel reporting e può utilizzarli in esperimenti di contenuto se vengono eseguiti sul messaggio.
Questa sezione fornisce modelli di implementazione comuni per i collegamenti profondi. La configurazione esatta dipende dall’architettura dell’app e dal framework di routing.
iOS (collegamenti universali) ios-implementation
-
In Xcode, seleziona la destinazione tramite Firma e funzionalità > + funzionalità > Domini associati.
-
Aggiungi voci per i sottodomini delegati, ad esempio:
code language-text applinks:www.mybusiness.com applinks:data.email.mybusiness.com -
Gestisci i collegamenti universali nell’app e ottieni il collegamento originale dall’intestazione di risposta.
accordion Esempio: iOS 13+ con scene code language-swift class SceneDelegate: UIResponder, UIWindowSceneDelegate { func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { guard userActivity.activityType == NSUserActivityTypeBrowsingWeb, let incomingURL = userActivity.webpageURL else { return } handleUniversalLink(url: incomingURL) } private func handleUniversalLink(url: URL) { // Only handle AJO tracked mobile clicks guard url.host == "data.email.mybusiness.com", url.path.hasPrefix("/ee/v1/mclick") else { // Could also handle direct www.mybusiness.com links here return } resolveTrackedUrlAndRoute(url) } private func resolveTrackedUrlAndRoute(_ trackedUrl: URL) { var request = URLRequest(url: trackedUrl) request.httpMethod = "GET" URLSession.shared.dataTask(with: request) { _, response, error in guard error == nil, let httpResponse = response as? HTTPURLResponse, let locationValue = httpResponse.allHeaderFields["Location"] as? String, let finalUrl = URL(string: locationValue) else { return } DispatchQueue.main.async { self.routeToDestination(finalUrl) } }.resume() } private func routeToDestination(_ url: URL) { // Example: map URL paths to screens // https://www.mybusiness.com/dashboard/offers/coupons // → OffersViewController for Coupons } }
mclick e leggere l'intestazione Location, quindi indirizzare in base all'URL final.mclick in Safari; in questo modo si vanifica lo scopo dei collegamenti profondi.Android (collegamenti alle app) android-implementation
-
Aggiungi il filtro delle finalità del collegamento all’app nell’app Android.
code language-xml <activity android:name=".DeepLinkActivity" android:exported="true"> <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="data.email.mybusiness.com" android:pathPrefix="/ee/v1/mclick" /> </intent-filter> </activity> -
Implementa il gestore di collegamenti profondi.
accordion A Cotlino: code language-kotlin class DeepLinkActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val trackedUri = intent?.data if (trackedUri == null || trackedUri.host != "data.email.mybusiness.com" || !trackedUri.path.orEmpty().startsWith("/ee/v1/mclick")) { finish() return } resolveTrackedUrlAndRoute(trackedUri) } private fun resolveTrackedUrlAndRoute(trackedUri: Uri) { lifecycleScope.launch(Dispatchers.IO) { try { val finalUrl = followRedirect(trackedUri.toString()) withContext(Dispatchers.Main) { routeToDestination(finalUrl) finish() } } catch (e: Exception) { // Optionally log error, fallback to browser finish() } } } private fun followRedirect(trackedUrl: String): Uri { val client = OkHttpClient.Builder() .followRedirects(false) // We want to read Location ourselves .build() val request = Request.Builder() .url(trackedUrl) .get() .build() client.newCall(request).execute().use { response -> val location = response.header("Location") ?: throw IllegalStateException("Missing Location header") return Uri.parse(location) } } private fun routeToDestination(finalUri: Uri) { // Example: interpret https://www.mybusiness.com/dashboard/offers/coupons // and open the correct Activity / Fragment } }
mclick e utilizzare l'intestazione Location per determinare la destinazione finale.followRedirects(false) per controllare la gestione dei reindirizzamenti e registrare accuratamente le analisi se necessario.Procedure consigliate deeplink-best-practices
- Usa percorsi stabili: preferisci route resilienti alle modifiche dell’interfaccia utente dell’app (ad esempio
/account/ordersanziché/tab/3/view/2). - Account per percorsi tracciati: quando è abilitato il tracciamento dei collegamenti, il collegamento su cui è stato fatto clic può utilizzare modelli di percorsi tracciati (ad esempio
/ee/v1/mclick/). Assicurati che il router possa analizzare l’URL finale dopo aver risolto il collegamento tracciato. - Mantieni i parametri prevedibili: definisci uno schema di parametri coerente (ad esempio
?orderId=12345). - Evita dati sensibili negli URL: non inserire segreti o dati personali direttamente nell’URL del collegamento profondo.
- Verifica il collegamento profondo: invia una bozza e fai clic sul collegamento profondo in un dispositivo in cui è installata l’app.
- Convalida su dispositivi reali: i collegamenti universali e i comportamenti di risoluzione dei collegamenti tracciati sono più affidabili per la convalida su dispositivi fisici anziché su simulatori.
- Convalida il routing lato app: se il collegamento profondo non apre la schermata prevista, convalida il routing lato app e il formato URL (host/percorso/query e codifica URL).
- Tieni presente l’inizializzazione dell’app: il comportamento Collegamenti app/Collegamenti universali è più affidabile dopo che l’app è stata installata e aperta almeno una volta.
Risoluzione dei problemi e domande frequenti troubleshooting-faq
- Verificare che l’URL corrisponda ai pattern di host e percorso che l’app è registrata per gestire, inclusi i percorsi di clic tracciati quando è abilitato il tracciamento dei collegamenti (ad esempio, percorsi in
/ee/v1/mclick/). - Per i collegamenti universali iOS e i collegamenti alle app Android, l’associazione del dominio (AASA /
assetlinks.json) è configurata correttamente ed è raggiungibile. - Eseguire il test su un dispositivo reale (i simulatori/emulatori possono comportarsi in modo diverso per l’associazione dei collegamenti).
- Conferma che il router lato app analizzi correttamente il percorso/query dell’URL.
- Verifica codifica URL: i caratteri riservati devono essere codificati in URL.
- Verificare che i nomi e i valori dei parametri corrispondano a quanto previsto dal router.
- Se lo stesso URL HTTPS può essere servito dal sito web, il collegamento può aprire una pagina web come fallback quando l’app non è installata (configura di conseguenza la destinazione web e il routing).
-
Crea una bozza con un collegamento profondo; fai clic su di essa sui dispositivi iOS e Android (scenari installati e non installati).
-
Convalida:
- Il valore finale del collegamento e-mail o SMS (host/percorso/query)
- Associazione a livello di sistema operativo (se si utilizzano collegamenti universali/collegamenti alle app)
- Risultato del routing in-app
assetlinks.json per ogni sottodominio che deve supportare la funzione.appname://path)?appname://path), ma l’approccio consigliato è un collegamento universale o un collegamento all’app (https://), che corrisponde alla configurazione basata su HTTPS nelle sezioni di configurazione e implementazione di questa pagina.Location quando l’app esegue un GET sull’URL mclick, quindi puoi utilizzarli per l’analisi in-app./ee/v1/click/ URL?mclick descritto in questa pagina.