Recopilación de datos de perfil
Obtenga información sobre cómo recopilar datos de perfil en una aplicación móvil.
Puede utilizar la extensión de perfil para almacenar atributos sobre el usuario en el cliente. Esta información se puede utilizar posteriormente para dirigir y personalizar mensajes durante escenarios en línea o sin conexión, sin tener que conectarse a un servidor para obtener un rendimiento óptimo.
La extensión de perfil administra el perfil de operación del lado del cliente (CSOP), proporciona una forma de reaccionar a las API, actualiza los atributos del perfil de usuario y comparte los atributos del perfil de usuario con el resto del sistema como un evento generado.
Otras extensiones utilizan los datos del perfil para realizar acciones relacionadas con el perfil. Un ejemplo es la extensión del motor de reglas, que consume los datos del perfil y ejecuta reglas basadas en los datos del perfil. Obtenga más información acerca de la extensión de perfil en la documentación
Requisitos previos
- La aplicación se ha creado y ejecutado correctamente con los SDK instalados y configurados.
Objetivos de aprendizaje
En esta lección, deberá hacer lo siguiente:
- Establecer o actualizar atributos de usuario.
- Recuperar atributos de usuario.
Establecer y actualizar atributos de usuario
Sería útil que los objetivos y la personalización de la aplicación supieran rápidamente si un usuario ha realizado una compra en el pasado o recientemente. Vamos a configurarlo en la aplicación de Luma.
-
Vaya a Luma > Luma > Utils > MobileSDK en el navegador del proyecto Xcode y busque la función
func updateUserAttribute(attributeName: String, attributeValue: String)
. Añada el siguiente código:code language-swift // Create a profile map, add attributes to the map and update profile using the map var profileMap = [String: Any]() profileMap[attributeName] = attributeValue UserProfile.updateUserAttributes(attributeDict: profileMap)
Este código:
-
Configura un diccionario vacío denominado
profileMap
. -
Agrega un elemento al diccionario utilizando
attributeName
(por ejemploisPaidUser
) yattributeValue
(por ejemployes
). -
Utiliza el diccionario
profileMap
como valor para el parámetroattributeDict
de la llamada a la APIUserProfile.updateUserAttributes
.
-
-
Vaya a Luma > Luma > Views > Products > ProductView en el navegador del proyecto Xcode y busque la llamada a
updateUserAttributes
(dentro del código del botón Comprascode language-swift // Update attributes MobileSDK.shared.updateUserAttribute(attributeName: "isPaidUser", attributeValue: "yes")
-
Vaya a Android
func updateUserAttribute(attributeName: String, attributeValue: String)
. Añada el siguiente código:code language-kotlin // Create a profile map, add attributes to the map and update profile using the map val profileMap = mapOf(attributeName to attributeValue) UserProfile.updateUserAttributes(profileMap)
Este código:
-
Establece un mapa vacío denominado
profileMap
. -
Agrega un elemento al mapa mediante
attributeName
(por ejemploisPaidUser
) yattributeValue
(por ejemployes
). -
Utiliza la asignación
profileMap
como valor para el parámetroattributeDict
de la llamada a la APIUserProfile.updateUserAttributes
.
-
-
Vaya a Android
updateUserAttributes
(dentro del código del botón Comprascode language-kotlin // Update attributes MobileSDK.shared.updateUserAttribute("isPaidUser", "yes")
Obtener atributos de usuario
Una vez que haya actualizado el atributo de un usuario, estará disponible para otros SDK de Adobe, pero también podrá recuperar atributos explícitamente para permitir que la aplicación se comporte como desee.
-
Vaya a Luma > Luma > Views > General > HomeView en el navegador del proyecto Xcode y busque el modificador
.onAppear
. Añada el siguiente código:code language-swift // Get attributes UserProfile.getUserAttributes(attributeNames: ["isPaidUser"]) { attributes, error in if attributes?.count ?? 0 > 0 { if attributes?["isPaidUser"] as? String == "yes" { showBadgeForUser = true } else { showBadgeForUser = false } } }
Este código:
- Llama a la API
UserProfile.getUserAttributes
con el nombre de atributoisPaidUser
como un solo elemento en la matrizattributeNames
. - Luego comprueba el valor del atributo
isPaidUser
y, cuandoyes
, coloca un distintivo en el icono
- Llama a la API
-
Vaya a Android
.onAppear
. Añada el siguiente código:code language-kotlin // Get attributes UserProfile.getUserAttributes(listOf("isPaidUser")) { attributes -> showBadgeForUser = attributes?.get("isPaidUser") == "yes" }
Este código:
- Llama a la API
UserProfile.getUserAttributes
con el nombre de atributoisPaidUser
como un solo elemento en la matrizattributeNames
. - Entonces comprueba el valor del atributo
isPaidUser
. Cuandoyes
, el código reemplaza el icono de la persona con un icono de distintivo en la barra de herramientas de la parte superior derecha.
- Llama a la API
Consulte la referencia de API para obtener más información.
Validar con Assurance
- Revise la sección instrucciones de configuración para conectar el simulador o dispositivo a Assurance.
- Ejecute la aplicación para iniciar sesión e interactuar con un producto.
-
Seleccione Inicio en la barra de fichas.
-
Mueva el icono de Assurance a la izquierda.
-
Para abrir la hoja Inicio de sesión, seleccione el botón
-
Para insertar un correo electrónico y un ID de cliente aleatorios, seleccione A Botón | .
-
Seleccione Iniciar sesión.
-
Seleccione Products en la barra de fichas.
-
Seleccione un producto.
-
Seleccione
-
Seleccione
-
Seleccione
-
Volver a la pantalla Inicio. Debería ver que se ha agregado una insignia
-
Seleccione Inicio en la barra de fichas.
-
Mueva el icono de Assurance a la izquierda.
-
Para abrir la hoja Inicio de sesión, seleccione el botón
-
Para insertar un correo electrónico y un ID de cliente aleatorios, seleccione Generar correo electrónico aleatorio .
-
Seleccione Iniciar sesión.
-
Seleccione Products en la barra de fichas.
-
Seleccione un producto.
-
Seleccionar
-
Seleccione
-
Seleccione
-
Volver a la pantalla Inicio. Debería ver que se ha actualizado el icono de la persona.
En la interfaz de usuario de Assurance, debería ver los eventos UserProfileUpdate y getUserAttributes con el valor profileMap
actualizado.
Siguiente: Usar lugares