Cómo Uber reduce los inicios de sesión manuales en 4 millones por año con la API de Restore Credentials
Lectura de 5 min
Uber es la empresa de viajes compartidos más grande del mundo, ya que transporta a millones de personas de un lugar a otro y, además, admite la entrega de comida, el transporte de atención médica y la logística de carga. La simplicidad del acceso es fundamental para su éxito. Cuando los usuarios cambian a un dispositivo nuevo, esperan una transición fluida sin necesidad de volver a acceder a la app de Uber ni pasar por la autenticación con contraseña de un solo uso basada en SMS. Esta rotación frecuente de dispositivos presenta un desafío, así como una oportunidad para lograr una sólida retención de usuarios.
Para mantener la continuidad del usuario, los ingenieros de Uber recurrieron a la función Restore Credentials, una herramienta esencial en un momento en el que el 40% de las personas en Estados Unidos reemplazan su smartphone cada año. Después de evaluar la demanda de los usuarios y crear un prototipo de código, introdujeron la compatibilidad con la función de restablecimiento de credenciales en la app para pasajeros de Uber. Para validar que el restablecimiento de credenciales ayuda a eliminar la fricción en los nuevos accesos, el equipo de Uber ejecutó un experimento A/B exitoso durante un período de cinco semanas. La integración generó una reducción en los accesos manuales que, cuando se proyecta en la enorme base de usuarios de Uber, se estima que elimina 4 millones de accesos manuales al año.
Elimina la fricción del acceso con Restore Credentials
En el pasado, se intentó restablecer cuentas en dispositivos nuevos con soluciones como la copia de seguridad de datos habitual y BlockStore, aunque ambas soluciones requerían compartir tokens de autenticación directamente, desde el dispositivo de origen al dispositivo de destino. Dado que la información de los tokens es muy sensible, estas soluciones solo se usan en cierta medida para completar previamente los campos de acceso en el dispositivo de destino y reducir la fricción durante los flujos de acceso. Las llaves de acceso también se usan para proporcionar un método de acceso seguro y rápido, pero su naturaleza iniciada por el usuario limita su impacto en las transiciones fluidas entre dispositivos.
"Algunos usuarios no usan la app de Uber a diario, pero esperan que funcione cuando la necesiten", dijo Thomás Oliveira Horta, ingeniero de Android en Uber. "Descubrir que cerraste sesión justo cuando abres la app para solicitar un viaje en tu nuevo teléfono Android puede ser una experiencia desagradable y desalentadora".
Con Restablecer credenciales, los ingenieros pudieron cerrar esta brecha. La API genera un token único en el dispositivo anterior, que se transfiere de forma fluida y silenciosa al dispositivo nuevo cuando el usuario restablece los datos de la app durante el proceso de incorporación estándar. Este proceso aprovecha el mecanismo nativo de copia de seguridad y restablecimiento del SO Android, lo que garantiza la transferencia segura de la clave de restablecimiento junto con los datos de la app. El enfoque optimizado garantiza una transferencia de cuenta simple y segura, que cumple con los requisitos de seguridad de Uber sin necesidad de que el usuario realice acciones adicionales ni de incurrir en costos de desarrollo.
Nota: Las claves de restablecimiento y las llaves de acceso usan la misma implementación del servidor subyacente. Sin embargo, cuando los guardes en tu base de datos, debes diferenciarlos. Esta distinción es fundamental porque el usuario puede administrar directamente las llaves de acceso creadas por él, mientras que las claves de recuperación son administradas por el sistema y están ocultas en la interfaz de usuario.
"Con la adopción de Restore Credentials en la app para usuarios de Uber, comenzamos a ver un uso constante", dijo Thomás. "En promedio, 10,000 usuarios únicos por día accedieron con la opción Restaurar credenciales en la etapa de lanzamiento actual, y disfrutaron de una experiencia fluida cuando abrieron la app por primera vez en un dispositivo nuevo. Esperamos que esa cifra se duplique una vez que expandamos el lanzamiento a toda nuestra base de usuarios”.
Consideraciones sobre la implementación
"La integración fue bastante sencilla con pequeños ajustes en el lado de Android siguiendo el código de muestra y la documentación", dijo Thomás. "Nuestra app ya usaba Credential Manager para las llaves de acceso, y el backend solo requirió algunos ajustes menores. Por lo tanto, solo necesitábamos actualizar la dependencia de Credential Manager a su versión más reciente para acceder a la nueva API de Restore Credentials. Creamos una clave de recuperación a través del mismo flujo de creación de llaves de acceso y, cuando se inicia nuestra app en un dispositivo nuevo, esta verifica de forma proactiva la existencia de esta clave intentando una recuperación silenciosa de la llave de acceso. Si se encuentra la clave de restablecimiento, se utiliza de inmediato para acceder automáticamente, sin necesidad de ingresar manualmente”.
A lo largo del proceso de desarrollo, los ingenieros de Uber superaron algunos desafíos durante la implementación, desde elegir el punto de entrada adecuado hasta administrar el ciclo de vida de las credenciales en el backend.
Cómo elegir el punto de entrada Restore Credentials
Los ingenieros analizaron cuidadosamente las ventajas y desventajas entre una experiencia del usuario perfectamente fluida y la simplicidad de la implementación al seleccionar qué punto de entrada de Restore Credentials usar para la recuperación. En última instancia, priorizaron una solución que ofrecía un equilibrio ideal.
"Esto puede ocurrir durante el inicio de la app o en segundo plano durante la restauración y configuración del dispositivo, con BackupAgent", explicó Thomás. "El punto de entrada de acceso en segundo plano es más fluido para el usuario, pero presentó desafíos con las operaciones en segundo plano y requirió el uso de la API de BackupAgent, lo que habría aumentado la complejidad en una base de código tan grande como la de Uber". Decidieron implementar la función durante el primer inicio de la app, que fue significativamente más rápido que el acceso manual.
Cómo abordar los desafíos del servidor
Durante la integración con las APIs de WebAuthn de backend, surgieron algunos desafíos del servidor, ya que su diseño suponía que siempre se requeriría la verificación del usuario y que todas las credenciales se enumerarían en la configuración de la cuenta del usuario. Ninguno de estos supuestos funcionó para las claves de Restore Credential no administradas por el usuario.
El equipo de Uber resolvió este problema realizando pequeños cambios en los servicios de WebAuthn, creando nuevos tipos de credenciales para distinguir las llaves de acceso de las credenciales de recuperación y procesarlas de forma adecuada.
Administración del ciclo de vida de las credenciales de recuperación
Los ingenieros de Uber enfrentaron varios desafíos para administrar las claves de credenciales en el backend, con la asistencia especializada del ingeniero de backend Ryan O’Laughlin:
- Prevención de claves huérfanas: Un desafío importante fue definir una estrategia para borrar las claves públicas registradas y evitar que se conviertan en "huérfanas". Por ejemplo, desinstalar la app borra la credencial local, pero, como esta acción no le indica al backend, deja una clave sin usar en el servidor.
- Equilibrio de la vida útil de las claves: Las claves necesitaban un "tiempo de vida" lo suficientemente largo como para controlar los casos extremos. Por ejemplo, si un usuario realiza una copia de seguridad y la restablece, y, luego, cierra la sesión de forma manual en el dispositivo anterior, la clave se borra de ese dispositivo. Sin embargo, la clave debe seguir siendo válida en el servidor para que el dispositivo nuevo pueda usarla.
- Compatibilidad con varios dispositivos: Dado que un usuario puede tener varios dispositivos (y podría iniciar una copia de seguridad y restablecimiento desde cualquiera de ellos), el backend debía admitir varias credenciales de restablecimiento por usuario (una para cada dispositivo).
Los ingenieros de Uber abordaron estos desafíos estableciendo reglas para el borrado de claves del servidor basadas en el registro y el uso de credenciales nuevas.
La función pasó del diseño a la entrega en un rápido proceso de desarrollo y prueba de dos meses. Luego, un experimento A/B de cinco semanas (tiempo para validar la función con los usuarios) se desarrolló sin problemas y arrojó resultados innegables.
Cómo evitar que los usuarios abandonen el proceso con Restore Credentials
Al eliminar los accesos manuales en dispositivos nuevos, Uber retuvo a los usuarios que, de otro modo, podrían haber abandonado el flujo de acceso en un dispositivo nuevo. Este aumento en la facilidad para los clientes se reflejó en una amplia variedad de mejoras y, aunque a primera vista pueden parecer leves, el impacto es enorme a la escala de la base de usuarios de Uber:
- Se redujo en un 3.4% la cantidad de accesos manuales (OTP por SMS, contraseñas y acceso con redes sociales).
- Reducción del 1.2% en los gastos de los accesos que requieren un OTP por SMS.
- Aumento del 0.575% en la tasa de acceso de Uber (porcentaje de dispositivos que llegaron correctamente a la pantalla principal de la app)
- Aumento del 0.614% en los dispositivos con viajes completados.
Actualmente, la función Restaurar credenciales está en camino de convertirse en una parte estándar de la app para usuarios de Uber, con más del 95% de los usuarios del grupo de prueba registrados.
Durante la configuración de un dispositivo nuevo, los usuarios pueden restablecer los datos y las credenciales de las apps desde una copia de seguridad. Después de seleccionar Uber para la restauración y de que finalice el proceso en segundo plano, la app accederá automáticamente a la cuenta del usuario en el primer inicio del dispositivo nuevo.
El impacto invisible pero masivo de la función Restablecer credenciales
En los próximos meses, Uber planea expandir la integración de Restore Credentials. Según las proyecciones de los resultados de la prueba, estiman que el cambio eliminará 4 millones de inicios de sesión manuales por año. Al simplificar el acceso a la app y eliminar un punto clave de dificultad, están creando activamente una base de clientes más satisfechos y leales, un viaje a la vez.
"La integración de RestoreCredentials de Google nos permitió brindar la experiencia fluida de'simplemente funciona ' que nuestros usuarios esperan en un dispositivo nuevo", dijo Matt Mueller, jefe de Producto (Identidad principal) en Uber. "Esto se tradujo directamente en un aumento medible de los ingresos, lo que demuestra que reducir la fricción en el acceso es clave para la participación y retención de los usuarios".
¿Todo listo para mejorar la experiencia de acceso a tu app?
Obtén información para facilitar una experiencia de acceso sin inconvenientes cuando cambies de dispositivo con Restore Credentials y lee más en la entrada de blog. En la versión canary más reciente de Android Studio Otter, puedes validar tu integración, ya que las nuevas funciones ayudan a simular los mecanismos de copia de seguridad y restauración.
Si no conoces Credential Manager, puedes consultar nuestra documentación, codelab y muestras oficiales para obtener ayuda con la integración.
-
Casos de éxitoDesde noticias de último momento y entretenimiento hasta deportes y política, X es una app de redes sociales que tiene como objetivo ayudar a casi 500 millones de usuarios de todo el mundo a conocer la historia completa con todos los comentarios en vivo.
Niharika Arora, Tracy Agyemang • Lectura de 3 min -
Casos de éxitoKarrot es una app de mercado hiperlocal y basada en la comunidad que permite a los usuarios comprar, vender y canjear artículos con otros usuarios verificados. Desde su lanzamiento en Corea del Sur en 2015, la plataforma se expandió a los mercados globales y acumuló más de 43 millones de usuarios registrados.
Thomas Ezan, Tracy Agyemang • Lectura de 2 min -
Casos de éxitoMonzo es un banco digital del Reino Unido con 15 millones de clientes y en crecimiento. A medida que la app crecía, el equipo de ingeniería identificó el tiempo de inicio de la app como un área crítica para mejorar, pero le preocupaba que requiriera cambios significativos en su código base.
Ben Weiss, Tracy Agyemang • Lectura de 2 min
Recibe la información más reciente sobre el desarrollo de Android en tu bandeja de entrada todas las semanas.