Enlaces profundos
Losenlaces profundos son URL que dirigen a los usuarios a contenidos específicos dentro de una aplicación. Cuando un usuario toca un enlace profundo en un dispositivo en el que ya está instalada la aplicación, ésta se abre directamente en la página del producto o la experiencia deseada. Los enlaces de seguimiento singulares admiten tanto la vinculación profunda como la vinculación profunda diferida. Para obtener más información, consulte nuestras Preguntas frecuentes sobre enlaces profundos y Preguntas frecuentes sobre enlaces singulares.
Requisitos
-
Cumpla los requisitos previos de Singular Links.
Implementación
Actualice iOS AppDelegate
Requisitos previos de iOS
Para permitir que Singular SDK procese datos relacionados con el lanzamiento y gestione enlaces profundos en su aplicación iOS, debe pasar los objetos launchOptions y userActivity a Singular SDK en su archivo AppDelegate.m. Estos objetos, proporcionados por iOS, contienen información crítica sobre cómo y por qué se lanzó su aplicación, que Singular utiliza para el seguimiento de la atribución y la navegación de enlaces profundos.
// Top of AppDelegate.m
#import "SingularAppDelegate.h"
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GeneratedPluginRegistrant registerWithRegistry:self];
[SingularAppDelegate shared].launchOptions = launchOptions;
return [super application:application
didFinishLaunchingWithOptions:launchOptions];
}
- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>>
*restorableObjects))restorationHandler {
[[SingularAppDelegate shared] continueUserActivity:userActivity
restorationHandler:restorationHandler];
return [super application:application continueUserActivity:userActivity
restorationHandler:restorationHandler ];
}
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
[[SingularAppDelegate shared] handleOpenUrl:url options:options];
return [super application:app openURL:url options: options];
}
import singular_flutter_sdk
override func application(_ application: UIApplication,
didFinishLaunchingWithOptions
launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
GeneratedPluginRegistrant.register(with: self) if
let singularAppDelegate = SingularAppDelegate.shared() {
singularAppDelegate.launchOptions = launchOptions
}
return super.application(application, didFinishLaunchingWithOptions:launchOptions)
}
override func application(_ application: UIApplication,
continue userActivity:NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?)-> Void) -> Bool {
if let singularAppDelegate = SingularAppDelegate.shared() {
singularAppDelegate.continueUserActivity(userActivity, restorationHandler:nil)
}
return super.application(application, continue:userActivity,
restorationHandler: restorationHandler);
}
override func application(_ app: UIApplication,
open url: URL, options:[UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
if let singularAppDelegate = SingularAppDelegate.shared() {
singularAppDelegate.handleOpen(url, options: options)
}
return super.application(app, open: url, options: options);
}
Actualización de Android MainActivity
Requisitos previos de Android
Para permitir que Singular SDK procese los datos relacionados con el lanzamiento y gestione los enlaces profundos en su aplicación de Android, debe modificar el archivo MainActivity para pasar el objeto Intent a Singular SDK. El objeto Intent, proporcionado por el sistema Android, contiene información sobre cómo y por qué se lanzó su aplicación, que Singular utiliza para el seguimiento de atribución y la navegación de enlaces profundos.
// Add as part of the imports at the top of the class
import android.content.Intent;
import com.singular.flutter_sdk.SingularBridge;
// Add to the MainActivity class
@Override
public void onNewIntent(Intent intent) {
if(intent.getData() != null) {
setIntent(intent);
super.onNewIntent(intent);
SingularBridge.onNewIntent(intent);
}
}
// Add as part of the imports at the top of the class
import android.content.Intent
import com.singular.flutter_sdk.SingularBridge
// Add to the MainActivity class
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
if (intent.data != null) {
setIntent(intent)
SingularBridge.onNewIntent(intent)
}
}
Actualice el objeto SingularConfig
-
Añada el callback singularLinksHandler al objeto SingularConfig durante la inicialización del SDK para gestionar los datos de enlaces profundos entrantes y diferidos.
Nota: El singularLinksHandler 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 (consulte las preguntas frecuentes sobre Singular Links).
Notas sobre la devolución de llamada de singularLinksHandler Comportamiento:
-
En una instalación nueva, no hay ninguna URL abierta cuando se inicia la aplicación. Por lo tanto, Singular debe completar la atribución al último punto de contacto y determinar si el enlace de seguimiento contenía un valor Deep Link o Deferred Deep Link (DDL ) configurado. Este proceso tiene lugar cuando Singular SDK envía la primera sesión a los servidores de Singular. Si procede, el valor del enlace profundo se devuelve a la llamada de retorno singularLinksHandler del SDK y se presenta en el parámetro "deeplink".
Para probar este escenario
- Desinstala la aplicación del dispositivo (si está instalada).
- Restablece tu ID de publicidad de Google (GAID).
- Haz clic en el enlace de seguimiento Singular desde el dispositivo. Asegúrate de que el enlace de seguimiento Singular está configurado con un valor de enlace profundo.
- Instala y abre la aplicación.
Consejo profesional: Cuando pruebes enlaces profundos o enlaces profundos diferidos en una versión de desarrollo de tu aplicación con un nombre de paquete diferente (por ejemplo, com.example.dev en lugar de com.example.prod), asegúrate de que el enlace de seguimiento esté configurado específicamente para el nombre de paquete de la aplicación de desarrollo, no para el de la aplicación de producción. Además, después de hacer clic en el enlace de prueba en su dispositivo, instale la compilación de desarrollo directamente en el dispositivo de prueba (por ejemplo, a través de Android Studio o un APK) en lugar de descargar la aplicación de producción de la tienda de aplicaciones.
La atribución debería completarse correctamente y el valor DDL se pasará a la aplicación.
- Si se incluye un parámetro passthrough (_p) en el enlace de seguimiento, el parámetro de transferencia de la devolución de llamada singularLinksHandler contendrá los datos correspondientes. Esto es útil para capturar datos adicionales del clic en la aplicación.
- Para capturar todos los parámetros de consulta de la URL del enlace de seguimiento, añada el parámetro _forward_params=2 al enlace de seguimiento. Todos los parámetros de consulta se incluirán en el parámetro deeplink de la llamada de retorno singularLinksHandler.
- Si la aplicación ya está instalada, al hacer clic en un enlace Singular se abrirá la aplicación. Para ello, Singular utiliza la tecnología Android App Links. El sistema operativo Android proporcionará una URL abierta que contendrá todo el enlace de seguimiento de Singular. Durante la inicialización del SDK, el SDK de Singular analizará Android Intent, extraerá los valores deeplink y passthrough, y los devolverá a través del callback singularLinksHandler.