Uso y configuración de vínculos profundos en correos electrónicos y SMS deeplinks

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:

NOTE
Adobe Journey Optimizer admite la vinculación profunda tanto para iOS como para Android mediante el uso de direcciones URL rastreadas (/ee/v1/mclick/*) para garantizar la compatibilidad y el rastreo de clics.

Creación de vínculos profundos authoring

CAUTION
Los vínculos profundos no funcionarán a menos que haya completado los pasos de configuración e implementación de la aplicación móvil en esta página.

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 un id ú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'}}
TIP
Reemplace <<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.

NOTE
Esta sección se aplica cuando usa vínculos universales (iOS) y vínculos de aplicación (Android) (vínculos profundos basados en HTTPS).
  1. En Journey Optimizer, delegue el subdominio donde la vinculación profunda esté habilitada. Más información

  2. 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
IMPORTANT
La vinculación profunda a través de la infraestructura de Adobe se aplica cuando el seguimiento de vínculos está habilitado para su mensaje: en la configuración de seguimiento de correo electrónico o en la sección Seguimiento de acciones para campañas de SMS. El seguimiento de clics en vínculos profundos utiliza direcciones URL en /ee/v1/mclick/*, que Adobe aloja y resuelve.
Para vínculos sin seguimiento, la dirección URL no se reescribe a través de los sistemas de Adobe. Debe configurar los vínculos universales y los de la aplicación en sus propios dominios y alojamiento para que se abran correctamente en la aplicación.

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

  1. En Xcode, seleccione su destino mediante Firma y capacidades > + capacidad > Dominios asociados.

  2. Agregue entradas para los subdominios delegados, por ejemplo:

    code language-text
    applinks:www.mybusiness.com
    applinks:data.email.mybusiness.com
    
  3. 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
        }
    }
    
IMPORTANT
La aplicación debe realizar un GET en la dirección URL mclick, leer el encabezado Location y luego enrutar según la dirección URL final.
No abra simplemente la dirección URL 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

  1. 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>
    
  2. 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
        }
    }
    
IMPORTANT
Al igual que iOS, la aplicación debe llamar a la dirección URL mclick y utilizar el encabezado Location para determinar el destino final.
Use followRedirects(false) para controlar la administración de redirecciones y poder registrar análisis con precisión si es necesario.
La lógica de enrutamiento es específica de la aplicación. Defina una asignación clara entre las direcciones URL y las pantallas.
  • Usar rutas estables: prefiere rutas resistentes a los cambios en la interfaz de usuario de la aplicación (por ejemplo, /account/orders en 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

La aplicación no se abre al pulsar el vínculo profundo.
  • 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).
La aplicación se abre, pero no navega a la pantalla esperada.
  • 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.
¿Qué sucede si la aplicación no está instalada?
  • 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).
¿Cómo puedo incluir de forma segura caracteres especiales en los parámetros?
Valores de parámetro de consulta de codificación de URL. Esto reduce los problemas de envío y procesamiento y ayuda a evitar errores de análisis en la aplicación.
¿Cómo probamos de extremo a extremo?
  • 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
Tengo una aplicación, pero diferentes subdominios para la organización. ¿Debo solicitar que se cree AASA y assetLinks.json para cada subdominio?
Sí. Si desea establecer vínculos profundos en cada subdominio delegado, solicite la configuración AASA y assetlinks.json para cada subdominio que admita la característica.
¿La dirección URL que configuro debe tener un formato de vinculación profunda (por ejemplo, appname://path)?
Puede utilizar un esquema de dirección URL personalizado (por ejemplo, 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.
¿Estarán disponibles los parámetros de UTM de la dirección URL en la aplicación móvil de Analytics?
Sí. Los parámetros de UTM que configuró en Journey Optimizer se incluyen en la dirección URL final devuelta en el encabezado 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.
¿Cuál es la experiencia del usuario con las URL de /ee/v1/click/?
El vínculo se abre en el explorador web predeterminado del dispositivo (comportamiento estándar de rastreo de clics), en lugar de tratarse como un vínculo profundo de la aplicación a través del flujo mclick descrito en esta página.
AI Knowledge Reference

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 mclick links 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 mclick URL and read the Location header, then route based on the final URL; do not simply open the mclick URL 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 mclick URL, read the Location header, and route based on the final URL; do not open the mclick URL 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 Location header.
  • 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.
recommendation-more-help
journey-optimizer-help