Establecer un ID de usuario
Envíe su ID de usuario interno a Singular para permitir el seguimiento entre dispositivos y la generación de informes de datos a nivel de usuario.
Nota: Si utiliza la solución Cross-Device de Singular, debe recopilar el ID de usuario en todas las plataformas.
Requisitos de ID de usuario
Privacidad y buenas prácticas
Siga estas directrices cuando implemente el seguimiento de ID de usuario para garantizar el cumplimiento de la privacidad y la medición adecuada entre dispositivos.
- Sin PII: El ID de usuario no debe exponer información personal identificable (PII) como direcciones de correo electrónico, nombres de usuario o números de teléfono. Utilice un valor hash único para sus datos de origen.
- Coherencia entre plataformas: El valor del ID de usuario debe ser el mismo identificador interno que capture en todas las plataformas (Web/Móvil/PC/Consola/Offline) para una medición precisa entre dispositivos.
- Datos de primera parte: Singular incluye el ID de Usuario en las exportaciones a nivel de usuario, ETL y postbacks de BI Interno (si está configurado). El ID de usuario es un dato de origen y no se comparte con terceros.
-
Persistencia: El ID de usuario persiste hasta que se anula explícitamente mediante
unsetCustomUserId()o hasta que se desinstala la aplicación. Cerrar o reiniciar la aplicación no borra el ID de usuario.
Resumen de la implementación
Cuándo establecer el ID de usuario
Utilice Singular.setCustomUserId() para establecer el identificador de usuario y Singular.unsetCustomUserId() para borrarlo durante el cierre de sesión.
Práctica recomendada: Si varios usuarios comparten un mismo dispositivo, implementa un flujo de cierre de sesión que llame a setCustomUserId() al iniciar sesión y a unsetCustomUserId() al finalizarla.
Si ya conoce el identificador de usuario cuando se abre la aplicación, configúrelo mediante la propiedad customUserId antes de inicializar Singular SDK. Esto garantiza que Singular reciba el ID de usuario desde la primera sesión. Sin embargo, el ID de usuario no suele estar disponible hasta que el usuario se registra o inicia sesión, en cuyo caso llame a setCustomUserId() una vez finalizado el flujo de registro o autenticación.
Métodos SDK
Establecer ID de usuario personalizado
Envíe su ID de usuario interno a Singular para el seguimiento entre dispositivos y la generación de informes a nivel de usuario.
import 'package:singular_flutter_sdk/singular.dart';
// Set the user ID after login or registration
Singular.setCustomUserId('user_123456');
Firma del método:
static void setCustomUserId(String customUserId)
Ejemplo: Establecer ID de usuario después del inicio de sesión
Llame a setCustomUserId() inmediatamente después de que el usuario complete con éxito la autenticación para asegurarse de que todos los eventos posteriores se asocian con su ID de usuario.
import 'package:singular_flutter_sdk/singular.dart';
Future<void> handleUserLogin(String email, String password) async {
try {
// Your authentication logic
final response = await authenticateUser(email, password);
if (response.success) {
// Set the user ID in Singular after successful login
Singular.setCustomUserId(response.userId);
print('User ID set: ${response.userId}');
// Navigate to home screen
navigateToHome();
}
} catch (error) {
print('Login failed: $error');
}
}
Desactivar ID de usuario personalizado
Borre el ID de usuario cuando un usuario cierre la sesión para garantizar un seguimiento preciso de la sesión en dispositivos multiusuario.
import 'package:singular_flutter_sdk/singular.dart';
// Unset the user ID on logout
Singular.unsetCustomUserId();
Firma del método:
static void unsetCustomUserId()
Ejemplo: Anulación del ID de usuario al cerrar la sesión
Llame a unsetCustomUserId() durante el flujo de cierre de sesión para borrar el ID de usuario y evitar la atribución incorrecta de eventos posteriores.
import 'package:singular_flutter_sdk/singular.dart';
Future<void> handleUserLogout() async {
try {
// Clear app data and user session
await clearUserSession();
// Unset the user ID in Singular
Singular.unsetCustomUserId();
print('User ID cleared');
// Navigate to login screen
navigateToLogin();
} catch (error) {
print('Logout failed: $error');
}
}
Establecer ID de usuario durante la inicialización
Si el ID de usuario está disponible cuando se inicia la aplicación (por ejemplo, el usuario ya ha iniciado sesión), configúrelo durante la inicialización del SDK utilizando la propiedad customUserId. Esto asegura que la primera sesión incluya el ID de usuario.
import 'package:flutter/material.dart';
import 'package:singular_flutter_sdk/singular.dart';
import 'package:singular_flutter_sdk/singular_config.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
initializeSingular();
}
Future<void> initializeSingular() async {
// Check if user is already logged in
final prefs = await SharedPreferences.getInstance();
final userId = prefs.getString('user_id');
// Create configuration
SingularConfig config = SingularConfig(
'YOUR_SDK_KEY',
'YOUR_SDK_SECRET'
);
// If user ID exists, set it during initialization
if (userId != null) {
config.customUserId = userId;
}
// Initialize SDK
Singular.start(config);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: MyHomePage(),
);
}
}
Propiedad de configuración:
String? customUserId
Recomendación: Utilice la propiedad de configuración customUserIddurante la inicialización para aplicaciones con sesiones de inicio de sesión persistentes. Para aplicaciones en las que los usuarios deben iniciar sesión cada vez, llame a setCustomUserId() después de la autenticación.