En esta página: Aprenda a crear vínculos profundos en el contenido de correo electrónico y SMS, configurarlos en Adobe Journey Optimizer y administrar los vínculos rastreados en las aplicaciones de iOS y Android para que los destinatarios aterricen en la pantalla correcta de la aplicación.
Los vínculos profundos le ayudan a llevar a los destinatarios de un mensaje de correo electrónico o SMS a una pantalla o fragmento de contenido específico en su aplicación móvil. Ayuda a llevar a las personas directamente a la experiencia en la aplicación deseada, sin enrutarlas a través de un explorador web o una tienda de aplicaciones, de modo que el recorrido sigue siendo relevante y se adapta a la marca.
Cuando los destinatarios hacen clic en el vínculo profundo, se les redirige directamente al contenido previsto en la aplicación: siempre que haya completado:
-
los pasos de configuración en Journey Optimizer;
-
los pasos de la implementación de la aplicación móvil para iOS y Android en su aplicación móvil.
/ee/v1/mclick/*) para garantizar la compatibilidad y el rastreo de clics.Creación de vínculos profundos authoring
Correo electrónico authoring-email
Para los mensajes de correo electrónico, tiene dos opciones para insertar un vínculo profundo:
-
Enviar correo electrónico a Designer: Asegúrate de que el seguimiento de vínculos está habilitado. Seleccione el elemento que desea vincular (texto, botón o imagen), haga clic en Insertar vínculo en la barra de herramientas contextual y elija Vínculo profundo para introducir la URL del vínculo profundo. Más información sobre cómo insertar vínculos
-
Editor de Personalization (código): inserte el vínculo profundo directamente en HTML utilizando el siguiente fragmento de código:
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 Reemplace <<deeplink_url>>por su URL de vínculo profundo real y use unidúnico para cada bloque a fin de evitar conflictos.
SMS authoring-sms
Para los SMS, los vínculos profundos se crean mediante la función de ayuda Url en el editor de personalización. Aprenda a agregar vínculos al contenido de SMS en esta sección.
Para insertar vínculos profundos en contenido SMS, utilice la siguiente sintaxis:
{{url originalUrl='<<url>>' type='DEEPLINK' action='CLICK'}}
<<url>> por su URL de vínculo profundo real.Configuración en Journey Optimizer configuration
Para poder utilizar vínculos profundos en correos electrónicos y SMS para sus aplicaciones móviles, complete los pasos de configuración a continuación.
-
En Journey Optimizer, delegue el subdominio donde la vinculación profunda esté habilitada. Más información
-
Aloje el archivo AASA para iOS y el archivo assetLinks.json para Android en su subdominio. Póngase en contacto con el servicio de atención al cliente de Adobe o con su representante de Adobe y proporcione los siguientes detalles:
-
Para iOS (AASA):
- Subdominio delegado
- ID de paquete de aplicaciones
-
Para Android (assetLinks.json):
- Subdominio delegado
- ID de paquete de aplicaciones
- Huella digital del certificado SHA-256
-
/ee/v1/mclick/*, que Adobe aloja y resuelve.Implementación de aplicación móvil mobile-implementation
En esta sección se explica cómo implementar vínculos profundos móviles con Adobe Journey Optimizer de modo que, en una configuración típica de HTTPS (vínculos universales y de aplicación), una sola dirección URL pueda:
- Abra una pantalla específica dentro de la aplicación móvil cuando esta esté instalada, o
- Abra el sitio web como alternativa cuando la aplicación no esté instalada.
Cuando el seguimiento de vínculos está habilitado para el mensaje, Journey Optimizer continúa realizando el seguimiento de estos clics, los incluye en los informes y puede usarlos en experimentos de contenido si los ejecuta en el mensaje.
Esta sección proporciona patrones de implementación comunes para los vínculos profundos. La configuración exacta depende de la arquitectura de la aplicación y del marco de enrutamiento.
iOS (vínculos universales) ios-implementation
-
En Xcode, seleccione su destino mediante Firma y capacidades > + capacidad > Dominios asociados.
-
Agregue entradas para los subdominios delegados, por ejemplo:
code language-text applinks:www.mybusiness.com applinks:data.email.mybusiness.com -
Controle los vínculos universales en la aplicación y obtenga el vínculo original del encabezado de respuesta.
accordion Ejemplo: iOS 13+ con escenas 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, leer el encabezado Location y luego enrutar según la dirección URL final.mclick en Safari, ya que esto no cumple el propósito de la vinculación profunda.Android (vínculos de la aplicación) android-implementation
-
Añada el filtro de intención Vínculo de aplicación en la aplicación de 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> -
Implemente el controlador de vínculos profundos.
accordion En Kotlin: 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 y utilizar el encabezado Location para determinar el destino final.followRedirects(false) para controlar la administración de redirecciones y poder registrar análisis con precisión si es necesario.Prácticas recomendadas deeplink-best-practices
- Usar rutas estables: prefiere rutas resistentes a los cambios en la interfaz de usuario de la aplicación (por ejemplo,
/account/ordersen lugar de/tab/3/view/2). - Cuenta para rutas de acceso rastreadas: Cuando el seguimiento de vínculos está habilitado, el vínculo en el que se hizo clic puede usar patrones de ruta rastreada (por ejemplo
/ee/v1/mclick/). Asegúrese de que el enrutador pueda analizar la dirección URL final después de resolver el vínculo rastreado. - Mantener parámetros predecibles: defina un esquema de parámetros coherente (por ejemplo,
?orderId=12345). - Evite los datos confidenciales en las direcciones URL: no coloque secretos ni datos personales directamente en la dirección URL del vínculo profundo.
- Pruebe el vínculo profundo: envíe una prueba y haga clic en el vínculo profundo en un dispositivo en el que la aplicación esté instalada.
- Validar en dispositivos reales: Los vínculos universales y los comportamientos de resolución de vínculos rastreados son más fiables de validar en dispositivos físicos que en simuladores.
- Validar el enrutamiento del lado de la aplicación: Si el vínculo profundo no abre la pantalla esperada, valide el enrutamiento del lado de la aplicación y el formato de URL (host/ruta/consulta y codificación de URL).
- Tenga en cuenta la inicialización de la aplicación: El comportamiento de los vínculos universales y de la aplicación es más confiable después de que la aplicación se haya instalado y abierto al menos una vez.
Resolución de problemas y preguntas frecuentes troubleshooting-faq
- Compruebe que la dirección URL coincida con los patrones de host y ruta que administra su aplicación, incluidas las rutas de clics seguidos cuando el seguimiento de vínculos está habilitado (por ejemplo, las rutas en
/ee/v1/mclick/). - Para los vínculos universales iOS y los vínculos de la aplicación Android, confirme que la asociación de dominios (AASA /
assetlinks.json) está configurada correctamente y es accesible. - Realizar pruebas en un dispositivo real (los simuladores/emuladores pueden comportarse de forma diferente para la asociación de vínculos).
- Confirme que el enrutador del lado de la aplicación analiza correctamente la ruta o consulta de la URL.
- Comprobar codificación de URL: los caracteres reservados deben estar codificados en URL.
- Valide los nombres y valores de los parámetros para que coincidan con lo que espera el enrutador.
- Si el sitio web puede proporcionar la misma URL HTTPS, el vínculo puede abrir una página web como alternativa cuando la aplicación no está instalada (configure el destino web y el enrutamiento en consecuencia).
-
Cree una prueba con un vínculo profundo, haga clic en ella en dispositivos iOS y Android (escenarios instalados y no instalados).
-
Validar:
- El valor final del vínculo de correo electrónico o SMS (host/ruta/consulta)
- La asociación a nivel del sistema operativo (si se utilizan vínculos universales o de aplicación)
- El resultado del enrutamiento en la aplicación
assetlinks.json para cada subdominio que admita la característica.appname://path)?appname://path), pero el método recomendado es un vínculo universal o de aplicación (https://), que coincide con la configuración basada en HTTPS de las secciones de configuración e implementación de esta página.Location cuando la aplicación realiza una GET en la dirección URL mclick, de modo que puede utilizarlos para el análisis en la aplicación./ee/v1/click/?mclick descrito en esta página.This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.
For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.
- TL;DR: This page explains how to author deep links in email and SMS content, configure them in Journey Optimizer, and handle the tracked links in iOS and Android apps so recipients land on the right in-app screen.
Intents:
- Author a deep link in email (Email Designer or Personalization editor code) and in SMS (Url helper function)
- Complete the Journey Optimizer configuration for universal links (iOS) and app links (Android)
- Implement mobile app handling of tracked
mclicklinks in iOS and Android - Follow recommended practices and troubleshoot deep links that do not open the app or the expected screen
- Test deep links end-to-end by sending a proof and clicking on real devices
Glossary:
- Deep link: A link that takes recipients from an email or SMS message directly to a specific screen or content in a mobile app (product-specific)
- Universal links (iOS) / App links (Android): HTTPS-based deep links the configuration on this page applies to (product-specific)
- AASA / assetLinks.json: The association files hosted on your delegated subdomain for iOS (AASA) and Android (assetLinks.json) (product-specific)
/ee/v1/mclick/*: Tracked URLs that Adobe hosts and resolves for deep link clicks when link tracking is enabled (product-specific)
Guardrails:
- Deep links will not work unless you complete both the configuration and the mobile app implementation steps on this page.
- Deep linking is supported for both iOS and Android using tracked URLs (
/ee/v1/mclick/*) for compatibility and click tracking. - The configuration section applies when you use universal links (iOS) and app links (Android), which are HTTPS-based deep links.
- Tracked deep link clicks use URLs under
/ee/v1/mclick/*, which Adobe hosts and resolves, and apply when link tracking is enabled for the message. - For non-tracked links, the URL is not rewritten through Adobe systems; you must configure universal links or app links on your own domains and hosting.
- The app must perform a GET on the
mclickURL and read theLocationheader, then route based on the final URL; do not simply open themclickURL in a browser. - Hosting the AASA (iOS) and assetLinks.json (Android) files requires contacting Adobe Customer Care with the delegated subdomain and app bundle ID; Android also requires the SHA-256 certificate fingerprint.
Terminology:
- Canonical name: Deep link — Acronym: n/a — variants: deeplink, Deeplink (Insert link option)
- Synonyms: “universal links” (iOS) and “app links” (Android) = the HTTPS-based deep link setup
- Do not confuse: “
/ee/v1/mclick/*” (tracked deep link flow handled as an app deep link) ≠ “/ee/v1/click/” (opens in the device’s default web browser, standard click tracking) - Do not confuse: “tracked links” (rewritten through Adobe, use
mclick) ≠ “non-tracked links” (not rewritten; configured on your own domains)
FAQ:
- Q: What must be done before deep links work? — Complete both the configuration steps in Journey Optimizer and the mobile app implementation steps for iOS and Android.
- Q: How should the app handle the tracked link? — Perform a GET on the
mclickURL, read theLocationheader, and route based on the final URL; do not open themclickURL directly in a browser. - Q: What happens if the app is not installed? — If the same HTTPS URL can be served by your website, the link can open a web page as a fallback.
- Q: Are UTM parameters available in the app? — Yes; UTM parameters configured in Journey Optimizer are included in the final URL returned in the
Locationheader. - Q: How do I test end-to-end? — Send a proof (create a proof with a deep link) and click it on iOS and Android devices, for both installed and not-installed scenarios, validating on real devices.
- Q: Should I use a custom URL scheme like
appname://path? — You can, but the recommended approach is a universal link or app link (https://) matching the HTTPS-based setup on this page.