Guía de vinculación en profundidad para iOS
Esta guía te ayuda a elegir la estrategia de vinculación en profundidad adecuada para tu aplicación iOS. Tu elección depende del canal de mensajería que utilices y de si usas un proveedor de vínculos externo como Branch.
Para obtener más información sobre la implementación, consulta Vinculación en profundidad. Para solucionar problemas, consulta Solución de problemas de vinculación en profundidad.
Elegir un tipo de vínculo
Hay tres formas de gestionar los vínculos de los mensajes de Braze en tu aplicación para iOS. Cada una funciona de manera distinta y se adapta a distintos canales y casos de uso.
| Tipo de vínculo | Ejemplo | Ideal para | ¿Se abre sin la aplicación instalada? |
|---|---|---|---|
| Esquema personalizado | myapp://products/123 |
Push, mensajes dentro de la aplicación, Content Cards y Banners | No: el vínculo falla |
| Vínculo universal | https://myapp.com/products/123 |
Correo electrónico, SMS y canales con seguimiento de clics | Sí: recurre a la web |
| Open Web URL Inside App | Cualquier URL https:// |
Mostrar contenido web en un WebView modal | No aplica: se muestra en un WebView |
Vínculos profundos con esquema personalizado
Los vínculos profundos con esquema personalizado (por ejemplo, myapp://products/123) abren tu aplicación directamente en una pantalla específica. Son la opción más sencilla para los canales en los que ningún tercero modifica los vínculos.
Usa vínculos profundos con esquema personalizado cuando:
- Envíes notificaciones push, mensajes dentro de la aplicación, Content Cards o Banners
- No necesites que el vínculo funcione si la aplicación no está instalada
- No necesites seguimiento de clics (encapsulado de vínculos del ESP de correo electrónico)
No uses vínculos profundos con esquema personalizado cuando:
- Envíes correos electrónicos: los ESP encapsulan los vínculos para el seguimiento de clics, lo que rompe los esquemas personalizados
- Necesites que el vínculo recurra a una página web si la aplicación no está instalada
Vínculos universales
Los vínculos universales (por ejemplo, https://myapp.com/products/123) son URL HTTPS estándar que iOS puede dirigir a tu aplicación en lugar de abrirlas en un navegador. Requieren configuración en el servidor (un archivo AASA) y configuración en la aplicación (el entitlement de Associated Domains).
Usa vínculos universales cuando:
- Envíes correos electrónicos. Tu ESP encapsula los vínculos para el seguimiento de clics, así que los vínculos deben ser HTTPS.
- Envíes SMS u otros canales en los que los vínculos se encapsulan o se acortan.
- Necesites que el vínculo recurra a una página web cuando la aplicación no esté instalada.
- Uses un proveedor de vínculos de terceros como Branch o AppsFlyer.
No uses vínculos universales cuando:
- Solo necesites vínculos profundos desde push, mensajes dentro de la aplicación, Banners o Content Cards. Los esquemas personalizados son más sencillos.
“Open Web URL Inside App”
Esta opción abre una página web dentro de un WebView modal en tu aplicación. El Braze SDK la gestiona por completo mediante Braze.WebViewController, así que no necesitas escribir ningún código para gestionar URL.
Usa “Open Web URL Inside App” cuando:
- Quieras mostrar una página web (como una promoción o un artículo) sin salir de tu aplicación.
- La URL sea una página web HTTPS estándar, no un vínculo profundo a una pantalla específica de la aplicación.
No uses “Open Web URL Inside App” cuando:
- Necesites navegar a una vista específica de tu aplicación. En su lugar, usa un esquema personalizado o un vínculo universal.
- La página web requiera autenticación o tenga encabezados de Content Security Policy que bloqueen la inserción.
Qué necesitas para cada tipo de vínculo
Vínculos profundos de esquema personalizado
| Requisito | Detalles |
|---|---|
| Archivo AASA | No es necesario |
Info.plist |
Registra tu esquema en CFBundleURLTypes y agrégalo a LSApplicationQueriesSchemes |
| Método del delegado de la aplicación | Implementa application(_:open:options:), o scene(_:openURLContexts:) si tu aplicación usa escenas, para gestionar los vínculos de esquema personalizado. Esto incluye los vínculos de esquema personalizado abiertos desde mensajes de Braze |
| Configuración del SDK de Braze | Ninguna. El SDK abre las URL de esquema personalizado de forma predeterminada, a menos que braze(_:shouldOpenURL:) devuelva false |
Vínculos universales
| Requisito | Detalles |
|---|---|
| Archivo AASA | Obligatorio: alójalo en https://yourdomain.com/.well-known/apple-app-site-association |
| Associated Domains | Agrega applinks:yourdomain.com en Xcode, en Signing & Capabilities |
| Método del delegado de la aplicación | Implementa application(_:continue:restorationHandler:) para gestionar NSUserActivity |
| Configuración del SDK de Braze | Establece configuration.forwardUniversalLinks = true |
| BrazeDelegate (opcional) | Implementa braze(_:shouldOpenURL:) para un enrutamiento personalizado (por ejemplo, Branch) |

Si envías correos electrónicos a través de Braze, tu ESP (SendGrid, SparkPost o Amazon SES) envuelve los vínculos en un dominio de seguimiento de clics. Debes alojar el archivo AASA también en tu dominio de seguimiento de clics, no solo en tu dominio principal. Para ver la configuración completa, consulta Vínculos universales y App Links. Si todos los vínculos de correo electrónico abren la aplicación, consulta Todos los vínculos de correo electrónico abren la aplicación.
“Abrir URL web dentro de la aplicación”
| Requisito | Detalles |
|---|---|
| Archivo AASA | No es necesario |
| Método del delegado de la aplicación | No es necesario: el SDK lo gestiona automáticamente |
| Configuración del SDK de Braze | Ninguna: selecciona Abrir URL web dentro de la aplicación en el creador de Campaign |
Cuándo necesitas un archivo AASA
Solo se requiere un archivo Apple App Site Association (AASA) cuando utilizas enlaces universales. Le indica a iOS qué URL puede gestionar tu aplicación.
Necesitas un archivo AASA cuando:
- Envías vínculos profundos en Campaigns de correo electrónico (porque los ESP envuelven los vínculos en URL de seguimiento de clics HTTPS).
- Envías vínculos profundos en Campaigns de SMS (porque los vínculos pueden acortarse a URL HTTPS).
- Utilizas Branch, AppsFlyer u otro proveedor de vínculos (porque utilizan sus propios dominios HTTPS).
- Utilizas enlaces universales desde notificaciones push, mensajes dentro de la aplicación o Content Cards (menos habitual, pero posible con
forwardUniversalLinks = true).
No necesitas un archivo AASA cuando:
- Solo utilizas vínculos profundos con esquema personalizado (por ejemplo,
myapp://) desde notificaciones push, mensajes dentro de la aplicación, Content Cards o Banners. - Utilizas la opción Abrir URL web dentro de la aplicación.
Para obtener instrucciones sobre la configuración de AASA, consulta Enlaces universales y enlaces de aplicaciones.
Cuándo necesitas código de aplicación para gestionar enlaces
El método delegado que implementes depende del tipo de enlace que utilices y de si necesitas una lógica de enrutamiento personalizada:
| Método delegado | Gestiona | Cuándo implementar |
|---|---|---|
BrazeDelegate.braze(_:shouldOpenURL:) |
Todas las URL abiertas por el SDK de Braze | Necesitas una lógica de enrutamiento personalizada (por ejemplo, Branch, gestión condicional, análisis) para los mensajes de Braze |
application(_:open:options:) o scene(_:openURLContexts:) |
Vínculos profundos con esquema personalizado (myapp://) |
Utilizas vínculos profundos con esquema personalizado desde cualquier canal, incluidos los mensajes de Braze |
application(_:continue:restorationHandler:) |
Enlaces universales (https://) |
Utilizas enlaces universales desde correo electrónico, SMS o con forwardUniversalLinks = true |
BrazeDelegate.shouldOpenURL frente a los métodos de apertura de URL de la aplicación
Para las notificaciones push, In-App Messages, Content Cards y Banners, el SDK de Braze llama a BrazeDelegate.braze(_:shouldOpenURL:) antes de abrir la URL. El contexto de la URL incluye el canal de origen. Utiliza este método para:
- Enrutar la URL a un proveedor externo (por ejemplo, Branch o AppsFlyer) antes de que Braze la abra
- Registrar análisis
- Devolver
falsepara que Braze no abra la URL
Si no implementas shouldOpenURL, el valor predeterminado del SDK devuelve true y Braze abre la URL. Los enlaces con esquema personalizado se abren a través del sistema, que llama a scene(_:openURLContexts:) o application(_:open:options:) de tu aplicación. Los enlaces web se abren en una WebView o en el navegador, según la configuración del mensaje.
Si implementas shouldOpenURL y devuelves false, gestiona la URL en ese método. Braze no la abre ni reenvía la URL a los métodos delegados de tu aplicación o escena.
Cuando Braze abre un enlace con esquema personalizado, iOS llama a application(_:open:options:), o a scene(_:openURLContexts:) si tu aplicación utiliza escenas. Cuando forwardUniversalLinks = true, Braze pasa los enlaces universales directamente a scene(_:continue:) o application(_:continue:restorationHandler:). Si ambos están implementados, Braze solo llama al método delegado de la escena.
Usar Branch con Braze
Si utilizas Branch como proveedor de vínculos, tu configuración requiere algunos pasos adicionales más allá de la configuración estándar de enlaces universales:
- SDK de Branch: Integra el SDK de Branch siguiendo la documentación de Branch.
- Dominios asociados: Añade tu dominio de Branch (por ejemplo,
applinks:yourapp.app.link) en Xcode, en Signing & Capabilities. - BrazeDelegate: Implementa
braze(_:shouldOpenURL:)para redirigir los enlaces de Branch al SDK de Branch. Devuelvefalsepara que Braze no abra la URL después de redirigirla. - Reenviar enlaces universales: Establece
configuration.forwardUniversalLinks = trueen tu configuración del SDK de Braze.
Para obtener detalles sobre la implementación y orientación sobre la depuración, consulta Branch para la vinculación en profundidad.