Añadir soporte para enlaces profundos
Cuando un usuario hace clic en un enlace profundo en un dispositivo que tiene instalada la aplicación, ésta se abre y muestra un producto o experiencia específicos.
Los enlaces de seguimiento de Singular pueden incluir la funcionalidad de enlaces profundos, así como enlaces profundos diferidos (consulte nuestras Preguntas frecuentes sobre enlaces profundos y las Preguntas frecuentes sobre enlaces singulares para obtener más información).
El Singular SDK Config, implementado en el paso anterior, hace referencia a una función de devolución de llamada ("handleDeeplink"). La función "handleDeeplink" es necesaria para activar la compatibilidad con enlaces profundos y enlaces profundos diferidos a través de Singular SDK.
Requisitos previos para implementar enlaces profundos
Asegúrese de haber completado los siguientes pasos:
- Siga las instrucciones de Singular Links Prerequisites.
- En Xcode, añada un subdominio personalizado de Singular a Signing & Capabilities > Associated Domains.
- Añada el esquema de la aplicación a sus Tipos de URL en Información > Tipos de URL.
- Añada su ID de equipo de desarrollador de Apple y su esquema en la página Apps de la plataforma Singular.
Notas:
- Si la aplicación ya está configurada para utilizar iOS Universal Links, el dominio Universal Link ya existe en Dominios asociados y puede permanecer. Este dominio debe añadirse a la opción de configuración Dominios admitidos, como se indica en la siguiente sección.
- También debe incluir el dominio de enlace personalizado de Singular, para que Singular pueda realizar un seguimiento de las atribuciones de las campañas de marketing y gestionar los enlaces profundos de estas campañas.
Creación del método de devolución de llamada para el controlador
El siguiente ejemplo de código crea un método de devolución de llamada denominado handleDeeplink (a este método se hace referencia en el ejemplo de código Config anterior).
La firma del bloque es void(^)(SingularLinkParams*). SingularLinkParams contiene el destino del enlace profundo, los parámetros passthrough y si el enlace es diferido o no.
func handleDeeplink(params: SingularLinkParams?) {
// Get Deeplink data from Singular Link
let deeplink = params?.getDeepLink()
let passthrough = params?.getPassthrough()
let isDeferredDeeplink = params?.isDeferred()
let urlParams = params?.getUrlParameters()
// Add deep link handling code here
//...
}
- (void)handleDeeplink:(SingularLinkParams*)params{
// Get Deeplink data from Singular Link
NSString *deeplink = [params getDeepLink];
NSString *passthrough = [params getPassthrough];
BOOL isDeferredDeeplink = [params isDeferred];
NSDictionary *urlParams = [params getUrlParameters];
// Add deep link handling code here
//...
}
Otras opciones de enlace
El SDK de Singular también admite enlaces universales que no son servidos por Singular. Esto es necesario para medir la atribución para socios que admiten enlaces profundos, como para Google Ads y Facebook.
Para las versiones 12.0.3 y superiores del SDK de Singular para iOS, los enlaces universales no servidos por Singular son compatibles por defecto.
Para admitir enlaces profundos de terceros en versiones antiguas del SDK:
- En versiones anteriores de Singular iOS SDK, es necesario añadir todos los dominios asociados (excluyendo sng.link) a la opción de configuración supportedDomains (en el objeto Config ) cada vez que se inicializa Singular SDK. Esto permite el comportamiento de enlace profundo de terceros, pero no permite la atribución al enlace profundo. Para la atribución, deberá seguir utilizando los enlaces de seguimiento de Singular.
- La funcionalidadsupportedDomains asume que ha configurado su aplicación para Universal Links y que actualmente aloja su propio archivo AASA en su dominio.
func getConfig() -> SingularConfig? {
// Singular Config Options
guard let config = SingularConfig(apiKey: Constants.APIKEY,
andSecret: Constants.SECRET) else {
return nil
}
//...
config.supportedDomains = ["subdomain.mywebsite.com",
"anothersubdomain.myotherwebsite.com"]
//...
return config
}
- (SingularConfig *)getConfig {
// Singular Config Options
SingularConfig* config = [[SingularConfig alloc] initWithApiKey:APIKEY
andSecret:SECRET];
//...
config.supportedDomains = @[@"subdomain.mywebsite.com",
"anothersubdomain.myotherwebsite.com"];
//...
return config;
}
Singular SDK admite Universal Links servidos por ESP (proveedores de servicios de correo electrónico).
El dominio ESP debe estar habilitado para HTTPS. Apple exige que las aplicaciones de iOS extraigan los archivos de asociación de sitios de aplicaciones de manzana desde un punto final habilitado para HTTPS sin redireccionamientos. Compruebe con su ESP cómo alojan este archivo para su aplicación, ya que puede requerir la configuración de DNS en el DNS de su sitio. Normalmente, el ESP proporcionará los pasos necesarios para habilitar HTTPS.
Para admitir un dominio ESP, añada el dominio de seguimiento personalizado a la opción de configuración espDomains (en el objeto config) cada vez que se inicialice Singular SDK.
func getConfig() -> SingularConfig? {
// Singular Config Options
guard let config = SingularConfig(apiKey: Constants.APIKEY,
andSecret: Constants.SECRET) else {
return nil
}
//...
config.espDomains = ["links.mywebsite.com"]
//...
return config
}
- (SingularConfig *)getConfig {
// Singular Config Options
SingularConfig* config = [[SingularConfig alloc] initWithApiKey:APIKEY
andSecret:SECRET];
//...
config.espDomains = @[@"links.mywebsite.com"];
//...
return config;
}