Case study

In che modo Uber riesce a evitare 4 milioni di login manuali all'anno con l'API Restore Credentials

5 minuti di lettura
Niharika Arora
Ingegnere per le relazioni con gli sviluppatori

Uber è la più grande società di ride sharing al mondo, che trasporta milioni di persone da un luogo all'altro e supporta anche la consegna di cibo, il trasporto sanitario e la logistica delle merci. La semplicità di accesso è fondamentale per il suo successo. Quando gli utenti passano a un nuovo dispositivo, si aspettano una transizione senza interruzioni, senza dover accedere di nuovo all'app Uber o eseguire l'autenticazione con password monouso basata su SMS. Questo frequente turnover dei dispositivi rappresenta una sfida, ma anche un'opportunità per una forte fidelizzazione degli utenti. 

Per mantenere la continuità degli utenti, gli ingegneri di Uber si sono rivolti alla funzionalità Restore Credentials, uno strumento essenziale in un momento in cui il 40% delle persone negli Stati Uniti sostituisce lo smartphone ogni anno. Dopo aver valutato la domanda degli utenti e aver creato un prototipo di codice, hanno introdotto il supporto di Restore Credentials nell'app Uber per i passeggeri. Per verificare che il ripristino delle credenziali contribuisca a eliminare gli attriti durante i nuovi accessi, il team di Uber ha eseguito un esperimento A/B di successo per un periodo di cinque settimane. L'integrazione ha portato a una riduzione degli accessi manuali che, se proiettata sull'enorme base di utenti di Uber, si stima che eliminerà 4 milioni di accessi manuali all'anno.

Eliminare gli attriti durante l'accesso con Restore Credentials

restore-credentials.gif

In passato sono stati fatti tentativi di ripristino dell'account sui nuovi dispositivi utilizzando soluzioni come il backup regolare dei dati e BlockStore, ma entrambe le soluzioni richiedevano la condivisione diretta dei token di autenticazione dal dispositivo di origine al dispositivo di destinazione. Poiché le informazioni sui token sono altamente sensibili, queste soluzioni vengono utilizzate solo in una certa misura, per precompilare i campi di accesso sul dispositivo di destinazione e ridurre alcuni attriti durante i flussi di accesso. Le passkey vengono utilizzate anche per fornire un metodo di accesso sicuro e veloce, ma la loro natura avviata dall'utente ne limita l'impatto sulle transizioni dei dispositivi senza interruzioni.

"Alcuni utenti non utilizzano l'app Uber quotidianamente, ma si aspettano che funzioni quando ne hanno bisogno", ha affermato Thomás Oliveira Horta, ingegnere Android di Uber. Scoprire di aver eseguito la disconnessione proprio quando apri l'app per richiedere una corsa sul tuo nuovo smartphone Android può essere un'esperienza spiacevole e scoraggiante.

Con Restore Credentials, gli ingegneri sono riusciti a colmare questa lacuna. L'API genera un token univoco sul vecchio dispositivo, che viene spostato in modo semplice e silenzioso sul nuovo dispositivo quando l'utente ripristina i dati dell'app durante la procedura di onboarding standard. Questa procedura sfrutta il meccanismo di backup e ripristino nativo del sistema operativo Android, garantendo il trasferimento sicuro della chiave di ripristino insieme ai dati dell'app. L'approccio semplificato garantisce un trasferimento dell'account semplice e sicuro, soddisfacendo i requisiti di sicurezza di Uber senza ulteriori input dell'utente o costi di sviluppo.

Nota:le chiavi di ripristino e le passkey utilizzano la stessa implementazione del server sottostante. Tuttavia, quando le salvi nel database, devi distinguerle. Questa distinzione è fondamentale perché le passkey create dall'utente possono essere gestite direttamente dall'utente, mentre le chiavi di ripristino sono gestite dal sistema e nascoste all'interfaccia utente.

"Con l'adozione di Restore Credentials nell'app Uber per i passeggeri, abbiamo iniziato a vedere un utilizzo coerente", ha affermato Thomás. "In media, 10.000 utenti unici al giorno hanno eseguito l'accesso con Restore Credentials nella fase di implementazione attuale e hanno usufruito di un'esperienza senza interruzioni quando hanno aperto l'app per la prima volta su un nuovo dispositivo. Prevediamo che questo numero raddoppierà una volta che avremo esteso l'implementazione a tutta la nostra base di utenti".

image_thomas2.png

Considerazioni sull'implementazione

L'integrazione è stata piuttosto semplice, con piccole modifiche sul lato Android seguendo il codice campione e la documentazione La nostra app utilizzava già Gestore delle credenziali per le passkey e il backend richiedeva solo un paio di piccole modifiche. Pertanto, abbiamo semplicemente dovuto aggiornare la dipendenza di Gestore delle credenziali alla versione più recente per accedere alla nuova API Restore Credentials. Abbiamo creato una chiave di ripristino tramite lo stesso flusso di creazione della passkey e, quando la nostra app viene avviata su un nuovo dispositivo, l'app verifica in modo proattivo la presenza di questa chiave tentando di recuperare la passkey in modo silenzioso. Se viene trovata la chiave di ripristino, viene utilizzata immediatamente per accedere automaticamente all'utente, bypassando qualsiasi accesso manuale".

Durante la procedura di sviluppo, gli ingegneri di Uber hanno dovuto affrontare alcune sfide durante l'implementazione, dalla scelta del punto di ingresso corretto alla gestione del ciclo di vita delle credenziali nel backend.

Scegliere il punto di ingresso di Restore Credentials

Gli ingegneri hanno valutato attentamente i compromessi tra un'esperienza utente perfettamente fluida e la semplicità di implementazione quando hanno selezionato il punto di ingresso di Restore Credentials da utilizzare per il recupero. Alla fine, hanno dato la priorità a una soluzione che offrisse un equilibrio ideale.

"Questa operazione può avvenire durante l'avvio dell'app o in background durante il ripristino e la configurazione del dispositivo, utilizzando BackupAgent", ha affermato Thomás. "Il punto di ingresso dell'accesso in background è più semplice per l'utente, ma ha presentato delle sfide con le operazioni in background e ha richiesto l'utilizzo dell'API BackupAgent, il che avrebbe comportato una maggiore complessità in una codebase grande come quella di Uber". Hanno deciso di implementare la funzionalità durante il primo avvio dell'app, che è stato notevolmente più veloce dell'accesso manuale.

Affrontare le sfide lato server

Durante l'integrazione con le API WebAuthn del backend sono sorte alcune sfide lato server, poiché la loro progettazione presupponeva che la verifica dell'utente fosse sempre obbligatoria e che tutte le credenziali fossero elencate nelle impostazioni dell'account utente. Nessuno di questi presupposti funzionava per le chiavi di Restore Credentials non gestite dall'utente.

Il team di Uber ha risolto il problema apportando piccole modifiche ai servizi WebAuthn, creando nuovi tipi di credenziali per distinguere le passkey da Restore Credentials ed elaborarle in modo appropriato.

Gestire il ciclo di vita di Restore Credentials

Gli ingegneri di Uber hanno dovuto affrontare diverse sfide nella gestione delle chiavi delle credenziali nel backend, con il supporto specializzato dell'ingegnere del backend Ryan O'Laughlin:

  • Impedire la creazione di chiavi orfane: una sfida significativa è stata la definizione di una strategia per eliminare le chiavi pubbliche registrate per evitare che diventassero "orfane". Ad esempio, la disinstallazione dell'app elimina la credenziale locale, ma poiché questa azione non segnala il backend, lascia una chiave inutilizzata sul server.
  • Bilanciare la durata delle chiavi: le chiavi avevano bisogno di un "tempo di vita" sufficientemente lungo da gestire i casi limite. Ad esempio, se un utente esegue un backup e un ripristino, quindi esegue la disconnessione manuale dal vecchio dispositivo, la chiave viene eliminata dal vecchio dispositivo. Tuttavia, la chiave deve rimanere valida sul server in modo che il nuovo dispositivo possa comunque utilizzarla.
  • Supportare più dispositivi: poiché un utente potrebbe avere più dispositivi (e potrebbe avviare un backup e un ripristino da uno qualsiasi di essi), il backend doveva supportare più Restore Credentials per utente (una per ogni dispositivo).

Gli ingegneri di Uber hanno affrontato queste sfide stabilendo regole per l'eliminazione delle chiavi lato server in base alla nuova registrazione delle credenziali e all'utilizzo delle credenziali.

La funzionalità è passata dalla progettazione alla distribuzione in una procedura di sviluppo e test rapida di due mesi. Successivamente, un esperimento A/B di cinque settimane (tempo per convalidare la funzionalità con gli utenti) è andato a buon fine e ha prodotto risultati innegabili.  

Evitare l'abbandono degli utenti con Restore Credentials

Eliminando gli accessi manuali sui nuovi dispositivi, Uber ha mantenuto gli utenti che altrimenti avrebbero potuto abbandonare il flusso di accesso su un nuovo dispositivo. Questo aumento della facilità d'uso per i clienti si è tradotto in una vasta gamma di miglioramenti e, sebbene possano sembrare lievi a prima vista, l'impatto è enorme sulla base di utenti di Uber: 

  • Riduzione del 3,4% degli accessi manuali (OTP via SMS, password, accesso social).
  • Riduzione dell'1,2% delle spese per gli accessi che richiedono l'OTP via SMS.
  • Aumento dello 0,575% del tasso di accesso di Uber (% di dispositivi che hanno raggiunto correttamente la schermata Home dell'app).
  • Aumento dello 0,614% dei dispositivi con corse completate. 

Oggi, Restore Credentials è sulla buona strada per diventare una parte standard dell'app Uber per i passeggeri, con oltre il 95% degli utenti del gruppo di prova registrati. 

uber-devices.png

Durante la configurazione di un nuovo dispositivo, gli utenti possono ripristinare i dati e le credenziali dell'app da un backup. Dopo aver selezionato Uber per il ripristino e al termine della procedura in background, l'app accederà automaticamente all'utente al primo avvio del nuovo dispositivo.

image_thomas.png

L'impatto invisibile ma enorme di Restore Credentials

Nei prossimi mesi, Uber prevede di espandere l'integrazione di Restore Credentials. Proiettando i risultati della prova, stimano che la modifica eliminerà 4 milioni di accessi manuali all'anno. Semplificando l'accesso all'app e rimuovendo un punto critico chiave, stanno attivamente costruendo una base di clienti più soddisfatta e fedele, una corsa alla volta.

"L'integrazione di RestoreCredentials di Google ci ha permesso di offrire l'esperienza semplice e funzionale che i nostri utenti si aspettano su un nuovo dispositivo", ha affermato Matt Mueller, Lead Product Manager (Core Identity) di Uber. Questo si è tradotto direttamente in un aumento misurabile delle entrate, dimostrando che la riduzione degli attriti durante l'accesso è fondamentale per il coinvolgimento e la fidelizzazione degli utenti.

Vuoi migliorare l'esperienza di accesso della tua app?

Scopri come facilitare un'esperienza di accesso senza interruzioni quando passi da un dispositivo all'altro con Restore Credentials e leggi di più nel post del blog. Nell'ultima versione canary di Android Studio Otter puoi convalidare l'integrazione, poiché le nuove funzionalità aiutano a simulare i meccanismi di backup e ripristino. 

Se non hai familiarità con Gestore delle credenziali, puoi consultare la nostra documentazione, il codelab e gli esempi ufficiali per ricevere assistenza con l'integrazione.

Scritto da:

Continua a leggere