Añadir soporte para enlaces profundos
Los enlaces profundosdirigen a los usuarios a contenidos específicos dentro de su aplicación. Cuando los usuarios tocan un enlace profundo en un dispositivo con su aplicación instalada, la aplicación se abre directamente al contenido deseado, como una página de producto o una experiencia específica.
Los enlaces de seguimiento singulares admiten tanto enlaces profundos estándar (para aplicaciones instaladas) como enlaces profundos diferidos (para nuevas instalaciones). Para más información, consulte las preguntas frecuentes sobre deep linkingy las preguntas frecuentes sobre Singular Links.
Requisitos
Requisitos previos
Complete los requisitosprevios de Singular Linkspara habilitar la vinculación profunda para su aplicación.
Notas:
- Este artículo asume que su organización está utilizando Singular Links- la tecnología de enlaces de seguimiento de Singular. Los clientes más antiguos pueden estar utilizando enlaces de seguimiento heredados. Para admitir enlaces profundos con enlaces heredados, consulte la sección Enlaces heredados al final de esta guía.
- Los destinos de enlaces profundos de su aplicación deben configurarse en la página Aplicaciones de Singular (consulte Configuración de su aplicación para el seguimiento de atribución).
Implementación de Singular Links Handler
SingularLinkHandler proporciona un mecanismo de devolución de llamada para recuperar los parámetros de enlace profundo, enlace profundo diferido y passthrough de los enlaces de seguimiento de Singular cuando se abre la aplicación.
Parámetros disponibles:
- Enlace profundo (_dl): La URL de destino dentro de su aplicación para los usuarios que hacen clic en el enlace
- Enlace profundo diferido (_ddl): La URL de destino para los usuarios que instalan la aplicación después de hacer clic en el enlace
- Passthrough (_p): Datos personalizados pasados a través del enlace de seguimiento para un contexto adicional
Configuración de la plataforma
Configuración de Android
Configure su aplicación Android para que admita enlaces profundos a través de la tecnología Android App Links.
Paso 1: Configurar la actividad
Abra Project > Assets > Plugins > Android > AndroidManifest.xmly actualice el nombre de la actividad.
Cambiar de:
<activity android:name="com.unity3d.player.UnityPlayerActivity"
Cambiar a:
<activity android:name="com.singular.unitybridge.SingularUnityActivity"
Implementación de actividad personalizada: Si ha implementado una actividad personalizada, añada lo siguiente al método onNewIntent de su actividad:
import com.singular.unitybridge.SingularUnityBridge;
@Override
protected void onNewIntent(Intent intent) {
setIntent(intent);
// Call this method from your custom activity in onNewIntent
SingularUnityBridge.onNewIntent(intent);
}
Paso 2: Añadir Filtro de Intento
Añada un Intent Filter para soportar Android App Links. El valor android:host debe coincidir con su dominio de Singular Links.
<!-- Added Intent Filter for Singular Android Links Deeplinking -->
<!-- Replace example.sng.link with your Singular Links domain -->
<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="http" />
<data android:scheme="https" />
<data android:host="example.sng.link" />
<data android:pathPrefix="/A"/>
<data android:pathPrefix="/B"/>
<data android:pathPrefix="/E"/>
<data android:pathPrefix="/F"/>
</intent-filter>
Complete los requisitos previos de Singular Links Androidpara obtener instrucciones de configuración detalladas.
Configuración de iOS
Configure su aplicación iOS para que admita enlaces profundos a través de Universal Links y esquemas de URL personalizados.
Paso 1: Activar Universal Links
- Configure el dominio de Singular Links: Configure al menos un subdominio en la página Atribución > Gestionar enlacesen Singular.
- Habilite los dominios asociados: En el portal para desarrolladores de Apple, vaya a Identificadores, seleccione su aplicación y active Dominios asociados en el menú Capacidades.
-
Añade dominios a Xcode: En tu proyecto Xcode, ve a Ajustes del proyecto > Capacidades > Dominios asociadosy añade tus dominios de Singular Links en el formato
applinks:yourdomain.sng.link - Configure el ID de equipo : Copie su "App Prefix" (ID de equipo) del portal para desarrolladores de Apple.
-
Añada el ID de equipo a Singular: En Singular, ve a Configuración de Apps, encuentra tu app, expande los Ajustes Avanzados de la App iOS, y pega el Team ID. Esto permite a Singular alojar el archivo
apple-app-site-associationpara Universal Links.
Paso 2: Configurar el esquema de URL (Fallback)
Añada un esquema de URL personalizado como alternativa cuando Universal Links no funcione.
- En la configuración avanzada de la aplicación iOS de Singular (debajo del ID de equipo), introduzca el esquemade su aplicación iOS.
- Registre el esquema de la aplicación como "Tipo de URL" en su proyecto Xcode en Información > Tipos de URL.
Para obtener información detallada sobre los esquemas de URL de iOS, consulte la documentación para desarrolladores de Apple.
Configuración del SDK
Añada SingularLinkHandler a su aplicación
Configure el SingularLinkHandler para procesar los datos de enlace profundo entrantes y los datos de enlace profundo diferidos cuando se inicie su aplicación.
Pasos de implementación
- Añada la interfaz SingularLinkHandler a su clase principal o cree una clase dedicada y adjúntela al SingularSDKObject.
-
Añada la directiva Singular en la parte superior de su script:
using Singular; - Implemente la interfaz SingularLinkHandler en su clase
-
Llame a
SetSingularLinkHandler()para registrar el manejador (recomendado en la funciónAwake()) -
Sobreescriba
OnSingularLinkResolved()para procesar los parámetros del enlace profundo
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Singular;
public class DeepLinkManager : MonoBehaviour, SingularLinkHandler
{
void Awake()
{
Debug.Log("Registering Singular Link Handler");
// Register this class as the Singular Link handler
// This will fetch the tracking link details and call OnSingularLinkResolved
SingularSDK.SetSingularLinkHandler(this);
}
// Callback method that receives deep link parameters
public void OnSingularLinkResolved(SingularLinkParams linkParams)
{
Debug.Log("Singular Link Resolved");
// Extract parameters from the tracking link
string deeplink = linkParams.Deeplink;
string passthrough = linkParams.Passthrough;
bool isDeferred = linkParams.IsDeferred;
// Log the parameters
Debug.Log($"Deeplink: {deeplink ?? "null"}");
Debug.Log($"Passthrough: {passthrough ?? "null"}");
Debug.Log($"Is Deferred: {isDeferred}");
// Handle deep link routing
if (!string.IsNullOrEmpty(deeplink))
{
HandleDeepLink(deeplink, isDeferred);
}
}
private void HandleDeepLink(string url, bool isDeferred)
{
// Your deep link routing logic here
Debug.Log($"Routing to: {url} (Deferred: {isDeferred})");
// Example: Parse the URL and navigate to the appropriate screen
// if (url.Contains("product"))
// {
// NavigateToProduct(url);
// }
}
}
Nota: El SingularLinkHandler sólo se activa cuando la aplicación se abre a través de un Singular Link. Para obtener más información, consulte las preguntas frecuentes sobre Singular Links.
Comportamiento del Handler
Comprensión de la ejecución de SingularLinkHandler
El SingularLinkHandler se comporta de forma diferente dependiendo de si la aplicación está recién instalada o ya instalada.
Nueva instalación (enlace profundo diferido)
En una instalación nueva, no existe ninguna URL abierta cuando se inicia la aplicación. Singular completa la atribución para determinar si el enlace de seguimiento contenía un valor de enlace profundo o de enlace profundo diferido.
Flujode enlace profundo diferido:
- El usuario hace clic en un enlace de seguimiento de Singular configurado con un valor de enlace profundo.
- El usuario instala y abre la aplicación por primera vez
- Singular SDK envía la primera sesión a los servidores de Singular
- La atribución se completa e identifica el enlace profundo a partir del enlace de seguimiento
-
El valor del enlace profundo vuelve al SingularLinkHandler en el parámetro
deeplinkconisDeferred = true
Pruebade enlaces profundos diferidos:
- Desinstala la app del dispositivo de prueba (si está instalada actualmente)
- iOS: Reinicie su IDFA. Android:Restablezca su ID de publicidad de Google (GAID)
- Haz clic en el enlace de seguimiento Singular desde el dispositivo (asegúrate de que está configurado con un valor de enlace profundo)
- Instale y abra la aplicación
La atribución debería completarse correctamente, y el valor de enlace profundo diferido se pasará al SingularLinkHandler.
Consejo profesional: Cuando pruebe enlaces profundos con una compilación de desarrollo que utilice un nombre de paquete o ID de paquete diferente, configure el enlace de seguimiento específicamente para el identificador de la aplicación de desarrollo. Después de hacer clic en el enlace de prueba, instale la compilación de desarrollo directamente en el dispositivo mediante Unity o herramientas específicas de la plataforma, en lugar de descargar la aplicación de producción de la tienda de aplicaciones.
Ya instalada (enlace profundo inmediato)
Cuando la aplicación ya está instalada, al hacer clic en un enlace singular se abre la aplicación inmediatamente mediante la tecnología Universal Links (iOS) o Android App Links.
Flujo de enlace profundo inmediato:
- El usuario hace clic en un enlace de seguimiento Singular
- El sistema operativo proporciona una URL abierta que contiene el enlace de seguimiento Singular completo
- Durante la inicialización del SDK, Singular analiza la URL
-
Singular extrae los valores
deeplinkypassthrough -
Los valores vuelven a través del SingularLinkHandler con
isDeferred = false
Parámetros Passthrough
Capture datos adicionales del clic en el enlace de seguimiento utilizando parámetros passthrough.
Si se incluye un parámetro passthrough (_p) en el enlace de seguimiento, el parámetro passthrough del SingularLinkHandler contiene los datos correspondientes. Utilícelo para capturar metadatos de campaña, datos de segmentación de usuarios o cualquier información personalizada que necesite en la aplicación.
Reenviar todos los parámetros de consulta
Capture todos los parámetros de consulta de la URL del enlace de seguimiento añadiendo el parámetro _forward_params=2.
Cuando se añade _forward_params=2 al enlace de seguimiento, todos los parámetros de consulta se incluyen en el parámetro deeplink del SingularLinkHandler, dándole acceso a la URL completa con todos sus parámetros.
Ejemplo de enlace de seguimiento:
https://yourapp.sng.link/A1b2c/abc123?_dl=myapp://product/123&_forward_params=2&utm_source=facebook&promo=SALE2024
El SingularLinkHandler recibirá:
deeplink = "myapp://product/123?utm_source=facebook&promo=SALE2024"