Personalización de la experiencia del usuario
En un mundo donde tenemos todo a nuestro alcance, las personas esperan recibir experiencias personalizadas. Tanto si mantenemos una conversación presencial como si compramos online, queremos ver únicamente las cosas que nos interesan. Con esta guía paso a paso, aprenderá a aprovechar todo el potencial de los atributos de usuario y a captar la atención de los usuarios con App ID.
Escenario
Es desarrollador de un minorista online, especializado en alimentación. Se le asigna la tarea de crear una experiencia personalizada para los usuarios de la app. Decide centrar sus esfuerzos en crear publicidad personalizada basada en lo que sabe sobre los usuarios. Para ello, cuando un usuario inicia sesión en su app, le formula algunas preguntas con respuestas a elegir. Por ejemplo, puede preguntarle lo siguiente:
¿Tiene alguna preferencia de dieta?
- Soy vegetariano.
- Soy semivegetariano.
- No consumo productos lácteos.
- No consumo gluten.
- Sigo una dieta baja en carbohidratos.
Puede correlacionar sus respuestas con atributos específicos que podrá utilizar para personalizar la publicidad que se les mostrará.
Aunque esta guía de aprendizaje está escrita para apps web que utilizan el Directorio en la nube, los atributos se pueden utilizar en un sentido mucho más amplio. Los atributos personalizados pueden ser cualquier cosa que quiera que sean. Si permanece por debajo de los 100.000 atributos y los formatea como un objeto JSON simple, puede almacenar todos los tipos de información.
Antes de empezar
¿Está preparado? ¡Empecemos!
Asegúrese de que tiene los requisitos previos siguientes antes de empezar:
- Una instancia del servicio App ID
- Un conjunto de credenciales de servicio
Configuración de la instancia de App ID
Antes de empezar a añadir atributos para los usuarios, tiene que configurar la instancia de App ID.
-
En el separador Proveedores de identidad del panel de control del servicio, habilite Directorio en la nube. Aunque esta guía de aprendizaje se centra en el Directorio en la nube, podría utilizar cualquier IdP, como SAML, Facebook, Google o un proveedor personalizado.
-
En el separador Directorio en la nube > Verificación de correo electrónico, habilite la verificación y establezca Permitir que los usuarios inicien sesión en la app sin verificar primero su dirección de correo electrónico en Sí.
-
Opcionalmente, en el separador Perfiles, establezca Cambiar los atributos personalizados de la app en Habilitado. Esta acción permite a los usuarios actualizar sus atributos después de responder a su cuestionario inicial.
¡Excelente! El panel de control está configurado y está listo para empezar a establecer atributos.
Creación de atributos de usuario
Cuando sus usuarios interactúan con su cuestionario, puede asignar sus respuestas a atributos específicos, y luego añadir esos atributos a su archivo.
Su aplicación es responsable de correlacionar las respuestas con los atributos específicos que desea añadir al perfil.
-
Actualizar el perfil con el atributo.
curl --request PUT \ https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users/<userID>/profile \ --header 'Authorization: Bearer <IAMToken>' \ --header 'Content-Type: application/json' \ -d '{ "profile": { "attributes": { “food-preference”: “vegetarian, glutten-free” } } }'
-
Compruebe el perfil para verificar que se ha actualizado correctamente.
curl --request GET https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users/<userID>/profile \ --header 'Authorization: Bearer <IAMToken>' \ --header 'Content-Type: application/json'
Salida de respuesta correcta:
{ "id": "5ce78e09-1356-4ef8-a45d-808b633101db", "identities": [], "attributes": { "food-preference": "vegetarian, gluten-free" } }
¡Buen trabajo!
Inyección de atributos a las señales
Al ganar popularidad, decide implementar la iniciativa "deal-of-the-day". Lo primero que quiere que los usuarios vean cuando inician sesión en su aplicación es un cupón para algo que concuerde con sus preferencias de dieta. Puede lograr este objetivo inyectando en sus tokens los atributos almacenados en sus perfiles. Al tener la información disponible durante el tiempo de ejecución, puede hacer que su aplicación tome una decisión personalizada en el lugar sobre qué acuerdo mostrar.
Configuración de señales es global, lo que significa que se aplica the todos los usuarios con el mismo atributo.
-
Realice una solicitud al punto final de configuración de la señal.
curl --request PUT \ https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/config/tokens \ --header 'Authorization: Bearer <IAMToken>' \ --header 'Content-Type: application/json' \ -d '{ "access": { "expires_in": 3601 }, "refresh": { "enabled": false, "expires_in": 2592001 }, "anonymousAccess": { "expires_in": 2592001 }, "accessTokenClaims": [ { "source": "attributes", "sourceClaim": "food-preference" } ] }'
Variables de configuración de tokens Variable Descripción tenantID
Un ID de arrendatario es la forma en la que se identifica la instancia de App ID en la solicitud. Puede encontrar el ID en el separador Credenciales de servicio del panel de control. Si no tienes un conjunto, puedes seguir los pasos de la consola para crear credenciales. source
Tanto para accessTokenClaim
como paraidTokenClaims
, establezca el origen enattribute
.sourceClaim
El atributo específico que desea correlacionar con la señal. En este caso, food-preference
.expires_in
Este valor se aplica a cada tipo de señal y debe establecerse en cada solicitud. Si ha establecido previamente el valor en la consola y, a continuación, ejecuta esta solicitud, los valores de la solicitud anulan los valores establecidos anteriormente. Asegúrese de establecer la caducidad en el valor correcto para la configuración. Salida de respuesta correcta:
{ "access": { "expires_in": 3601 }, "refresh": { "enabled": false, "expires_in": 2592001 }, "anonymousAccess": { "expires_in": 2592001 }, "accessTokenClaims": [ { "source": "attributes", "sourceClaim": "food-preference" } ] }
Visualización de la señal de acceso
Opcionalmente, puede verificar que el paso 4 se ha realizado correctamente visualizando una señal de acceso.
-
A efectos de prueba, cree un usuario del directorio en la nube utilizando la GUI de App ID.
- En el separador Usuarios, pulse Añadir usuario. Aparece un formulario.
- Escriba un nombre y un apellido, un correo electrónico y una contraseña.
- Pulse Guardar.
-
Codifique el ID de cliente y el secreto.
- En el separador Credenciales de servicio de la GUI de App ID, copie el ID de cliente y el secreto.
- Utilice un codificador base64 para codificar la información de autorización.
- Copie la salida que se va a utilizar en el mandato siguiente.
No se recomienda utilizar un codificador basado en el explorador en aplicaciones de producción.
-
Inicie sesión utilizando las API para obtener información de señal de acceso. La señal que se devuelve está codificada.
curl --request PUT \ https://appid.cloud.ibm.com/oauth/v4/<tenantID>/token \ --header 'Authorization: Basic {<encodedClient>:<secret>}' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header `Accept: application/json` -d 'grant_type=password&username=<userEmail>%40<userEmailDomain>&password=<userPassword>
-
Decodifique la señal de acceso.
- Copie la señal en la salida de la respuesta del mandato anterior.
- En un navegador, vaya a https://jwt.io/.
- Pegue la señal en el recuadro etiquetado Codificado.
No se recomienda utilizar un decodificador basado en el explorador en aplicaciones de producción.
-
En la sección Decodificado, verifique que puede ver la preferencia alimentaria.
{ "iss": "https://us-south.appid.cloud.ibm.com/oauth/v4/39a37f57-a227-4bfe-a044-93b6e6050a61", "exp": 1551903163, "aud": [ "968c2306-9aef-4109-bc06-4f5ed6axi24a" ], "sub": "2b96cc04-eca5-4122-a8de-6e07d14c13a5", "email_verified": true, "amr": [ "cloud_directory" ], "iat": 1551899553, "tenant": "39a37f57-a227-4bfe-a044-93b6e6050a61", "scope": "openid appid_default appid_readprofile appid_readuserattr appid_writeuserattr appid_authenticated" "food-preference": "vegetarian, gluten-free" }
Próximos pasos
¡Buen trabajo! Ha completado la guía de aprendizaje. A continuación, puede intentar configurar la autenticación de multifactores o configurar su propia GUI de acuerdo con su marca.