Identificar usuarios en el SDK de Capacitor
Cómo gestionas las compras de tus usuarios depende del modelo de autenticación de tu app:
- Si tu app no usa autenticación de backend y no almacena datos de usuario, consulta la sección sobre usuarios anónimos.
- Si tu app tiene (o tendrá) autenticación de backend, consulta la sección sobre usuarios identificados.
Conceptos clave:
- Los perfiles son las entidades necesarias para que el SDK funcione. Adapty los crea automáticamente. Pueden ser anónimos (sin customer user ID) o identificados (con customer user ID).
- Los customer user IDs son identificadores opcionales que tú creas para que Adapty vincule a tus usuarios con sus perfiles de Adapty.
Esto es lo que distingue a los usuarios anónimos de los identificados:
| Usuarios anónimos | Usuarios identificados | |
|---|---|---|
| Purchase management | Restauración de compras a nivel de store | Mantienen el historial de compras en todos los dispositivos mediante su customer user ID |
| Profile management | Nuevos perfiles en cada reinstalación | El mismo perfil en todas las sesiones y dispositivos |
| Data persistence | Los datos de usuarios anónimos están ligados al dispositivo/instalación | Los datos de usuarios identificados persisten en todos los dispositivos y sesiones |
Usuarios anónimos
Si no tienes autenticación en el backend, no necesitas gestionar la autenticación en el código de la app:
- Cuando el SDK se activa en el primer lanzamiento de la app, Adapty crea un nuevo perfil para el usuario.
- Cuando el usuario compra algo en la app, esa compra queda asociada a su perfil de Adapty y a su cuenta en el store.
- Cuando el usuario reinstala la app o la instala desde un nuevo dispositivo, Adapty crea un nuevo perfil vacío al activarse.
- Si el usuario ya había realizado compras en tu app, por defecto sus compras se sincronizan automáticamente desde el App Store al activar el SDK.
Las restauraciones desde copia de seguridad se comportan de forma diferente a las reinstalaciones. Por defecto, cuando un usuario restaura desde una copia de seguridad, el SDK conserva los datos en caché y no crea un nuevo perfil. Puedes configurar este comportamiento con el ajuste clearDataOnBackup. Más información.
Usuarios identificados
- Si un perfil todavía no tiene un customer user ID (es decir, el usuario no ha iniciado sesión), cuando envías un customer user ID, este se asocia a ese perfil.
- Si se trata de una reinstalación, inicio de sesión o instalación desde un nuevo dispositivo, y ya has enviado su customer user ID anteriormente, no se crea un nuevo perfil. En su lugar, cambiamos al perfil existente asociado al customer user ID.
Tienes dos opciones para identificar usuarios en la app:
-
Durante el inicio/registro de sesión: Si los usuarios inician sesión después de que la app arranca, llama a
identify()con el customer user ID cuando se autentiquen. -
Durante la activación del SDK: Si ya tienes un customer user ID almacenado cuando la app se lanza, envíalo al llamar a
activate().
Por defecto, cuando Adapty recibe una compra de un Customer User ID que está asociado con otro Customer User ID, el nivel de acceso se comparte, de modo que ambos perfiles tienen acceso de pago. Puedes configurar este ajuste para transferir el acceso de pago de un perfil a otro o deshabilitar el uso compartido por completo. Consulta el artículo para más detalles.
Durante el inicio de sesión/registro
Si identificas a los usuarios después de que se inicie la app (por ejemplo, después de que inicien sesión o se registren), usa el método identify para establecer su customer user ID.
- Si no has utilizado este customer user ID antes, Adapty lo vinculará automáticamente al perfil actual.
- Si ya has utilizado este customer user ID para identificar al usuario, Adapty cambiará al perfil asociado a ese customer user ID.
Al crear un ID de usuario personalizado, guárdalo junto con los datos del usuario para poder enviar el mismo ID cuando inicie sesión desde nuevos dispositivos o reinstale la app.
Usa siempre await con identify antes de llamar a otros métodos del SDK. Las llamadas concurrentes generan #3006 profileWasChanged o aterrizan en el perfil anónimo. Consulta Orden de llamadas en el SDK de Capacitor.
try {
await adapty.identify({ customerUserId: "YOUR_USER_ID" });
// successfully identified
} catch (error) {
// handle the error
}
Durante la activación del SDK
Si ya conoces el customer user ID en el momento de activar el SDK, puedes enviarlo directamente en el método activate en lugar de llamar a identify por separado.
Si conoces el customer user ID pero lo asignas después de la activación, al activarse el SDK, Adapty creará un nuevo perfil vacío y cambiará al perfil existente solo cuando llames a identify.
Puedes pasar un customer user ID existente (el que hayas usado antes) o uno nuevo. Si pasas uno nuevo, el perfil creado en la activación se vinculará automáticamente a ese customer user ID.
Para excluir los perfiles vacíos creados de las analíticas del dashboard, ve a App settings y configura Installs definition for analytics.
await adapty.activate({
apiKey: "YOUR_PUBLIC_SDK_KEY",
params: {
customerUserId: "YOUR_USER_ID"
}
});
Cerrar sesión de usuarios
Si tienes un botón para cerrar la sesión de los usuarios, usa el método logout. Esto crea un nuevo ID de perfil anónimo para el usuario.
try {
await adapty.logout();
// successful logout
} catch (error) {
// handle the error
}
Para volver a iniciar sesión en la app, usa el método identify.
Permitir compras sin inicio de sesión
Si tus usuarios pueden realizar compras tanto antes como después de iniciar sesión en tu aplicación, no necesitas ninguna configuración adicional: Así es como funciona:
- Cuando un usuario sin sesión iniciada realiza una compra, Adapty la vincula a su ID de perfil anónimo.
- Cuando el usuario inicia sesión en su cuenta, Adapty pasa a trabajar con su perfil identificado.
- Si el customer user ID ya existe (ya está vinculado a un perfil), Adapty sincroniza sus transacciones automáticamente.
- Si es un customer user ID nuevo (por ejemplo, la compra se realizó antes del registro), Adapty asigna el customer user ID al perfil actual, por lo que todo el historial de compras se conserva.