Estudos de caso
Como a Uber está reduzindo em 4 milhões por ano os logins manuais com a API Restore Credentials
Leitura de 5 minutos
O Uber é a maior empresa de transporte por aplicativo do mundo, levando milhões de pessoas de um lugar para outro e também oferecendo suporte para entrega de comida, transporte de saúde e logística de frete. A simplicidade de acesso é crucial para o sucesso. Quando os usuários trocam de dispositivo, eles esperam uma transição perfeita sem precisar fazer login novamente no app Uber ou passar pela autenticação de senha única baseada em SMS. Essa rotatividade frequente de dispositivos apresenta um desafio e uma oportunidade para uma forte retenção de usuários.
Para manter a continuidade do usuário, os engenheiros do Uber usaram o recurso Restaurar credenciais, uma ferramenta essencial em um momento em que 40% das pessoas nos Estados Unidos trocam de smartphone todos os anos. Após uma avaliação da demanda do usuário e da criação de protótipos de código, a equipe introduziu o suporte para restauração de credenciais no app Uber para passageiros. Para validar que a restauração de credenciais ajuda a remover o atrito em novos logins, a equipe do Uber realizou um experimento A/B bem-sucedido por um período de cinco semanas. A integração levou a uma redução nos logins manuais que, quando projetados em toda a enorme base de usuários do Uber, estima-se que eliminem 4 milhões de logins manuais por ano.
Eliminar o atrito de login com a restauração de credenciais
Já houve tentativas de restauração de contas em novos dispositivos usando soluções como backup regular de dados e BlockStore, mas ambas exigiam o compartilhamento direto de tokens de autenticação do dispositivo de origem para o de destino. Como as informações do token são altamente sensíveis, essas soluções são usadas apenas em certa medida para preencher previamente os campos de login no dispositivo de destino e reduzir alguns atritos durante os fluxos de login. As chaves de acesso também são usadas para oferecer um método de login seguro e rápido, mas a natureza iniciada pelo usuário limita o impacto delas em transições de dispositivos sem problemas.
"Alguns usuários não usam o app da Uber todos os dias, mas esperam que ele funcione quando precisarem", disse Thomás Oliveira Horta, engenheiro do Android na Uber. Descobrir que você saiu da conta assim que abre o app para pedir uma corrida no seu novo smartphone Android pode ser uma experiência desagradável e desanimadora.
Com a Restauração de credenciais, os engenheiros conseguiram preencher essa lacuna. A API gera um token exclusivo no dispositivo antigo, que é movido de forma integrada e silenciosa para o novo dispositivo quando o usuário restaura os dados do app durante o processo de integração padrão. Esse processo usa o mecanismo nativo de backup e restauração do SO Android, garantindo a transferência segura da chave de restauração com os dados do app. A abordagem simplificada garante uma transferência de conta simples e segura, atendendo aos requisitos de segurança da Uber sem entrada adicional do usuário ou sobrecarga de desenvolvimento.
Observação:as chaves de recuperação e as chaves de acesso usam a mesma implementação de servidor subjacente. No entanto, ao salvar no banco de dados, é preciso diferenciar os dois. Essa distinção é crucial porque as chaves de acesso criadas pelo usuário podem ser gerenciadas diretamente por ele, enquanto as chaves de recuperação são gerenciadas pelo sistema e ficam ocultas da interface do usuário.
"Com a adoção da opção "Restaurar credenciais" no app de passageiros da Uber, começamos a notar um uso consistente", disse Thomás. Uma média de 10.000 usuários diários únicos fez login com a Restauração de credenciais na fase atual de lançamento, e eles tiveram uma experiência integrada ao abrir o app pela primeira vez em um novo dispositivo. Esperamos que esse número dobre quando expandirmos o lançamento para toda a nossa base de usuários".
Considerações sobre a implementação
"A integração foi bem fácil com pequenos ajustes no lado do Android seguindo o exemplo de código e a documentação", disse Thomás. "Nosso app já usava o Gerenciador de credenciais para chaves de acesso, e o back-end exigiu apenas alguns pequenos ajustes. Portanto, só precisamos atualizar a dependência do Credential Manager para a versão mais recente e ter acesso à nova API Restore Credentials. Criamos uma chave de restauração usando o mesmo fluxo de criação de chaves de acesso. Quando nosso app é iniciado em um novo dispositivo, ele verifica proativamente essa chave tentando uma recuperação silenciosa de chaves de acesso. Se a chave de restauração for encontrada, ela será usada imediatamente para fazer login automaticamente no usuário, ignorando qualquer login manual."
Durante todo o processo de desenvolvimento, os engenheiros do Uber enfrentaram alguns desafios na implementação, desde a escolha do ponto de entrada certo até o gerenciamento do ciclo de vida das credenciais no back-end.
Escolher o ponto de entrada "Restaurar credenciais"
Os engenheiros avaliaram cuidadosamente as compensações entre uma experiência do usuário perfeitamente integrada e a simplicidade da implementação ao selecionar qual ponto de entrada de Restaurar credenciais usar para recuperação. No fim das contas, eles priorizaram uma solução que oferecia um equilíbrio ideal.
"Isso pode acontecer durante a inicialização do app ou em segundo plano durante a restauração e configuração do dispositivo, usando o BackupAgent", disse Thomás. "O ponto de entrada de login em segundo plano é mais fácil para o usuário, mas apresentou desafios com operações em segundo plano e exigiu o uso da API BackupAgent, o que teria aumentado a complexidade em uma base de código tão grande quanto a do Uber". Eles decidiram implementar o recurso durante o primeiro lançamento do app, que foi significativamente mais rápido do que o login manual.
Como lidar com desafios do lado do servidor
Alguns desafios do lado do servidor surgiram durante a integração com as APIs WebAuthn de back-end, já que o design delas pressupunha que a verificação do usuário seria sempre necessária e que todas as credenciais seriam listadas nas configurações da conta de um usuário. Nenhuma dessas premissas funcionou para as chaves de recuperação de credenciais não gerenciadas pelo usuário.
A equipe do Uber resolveu isso fazendo pequenas mudanças nos serviços do WebAuthn, criando novos tipos de credenciais para distinguir as chaves de acesso das credenciais de restauração e processando-as adequadamente.
Gerenciar o ciclo de vida das credenciais de restauração
Os engenheiros da Uber enfrentaram vários desafios ao gerenciar as chaves de credenciais no back-end, com suporte especializado do engenheiro de back-end Ryan O’Laughlin:
- Prevenção de chaves órfãs: um desafio significativo foi definir uma estratégia para excluir chaves públicas registradas e evitar que elas se tornassem "órfãs". Por exemplo, desinstalar o app exclui a credencial local, mas como essa ação não sinaliza o back-end, ela deixa uma chave não utilizada no servidor.
- Equilibrar o ciclo de vida das chaves: as chaves precisavam de um "time to live (TTL)" longo o suficiente para lidar com casos extremos. Por exemplo, se um usuário fizer backup e restauração e depois sair manualmente do dispositivo antigo, a chave será excluída dele. No entanto, a chave precisa permanecer válida no servidor para que o novo dispositivo ainda possa usá-la.
- Suporte a vários dispositivos: como um usuário pode ter vários dispositivos (e iniciar um backup e uma restauração em qualquer um deles), o back-end precisava oferecer suporte a várias credenciais de restauração por usuário (uma para cada dispositivo).
Os engenheiros da Uber resolveram esses desafios estabelecendo regras para exclusão de chaves do lado do servidor com base no registro e uso de novas credenciais.
O recurso passou do design à entrega em um processo rápido de desenvolvimento e teste de dois meses. Depois disso, um experimento A/B de cinco semanas (tempo para validar o recurso com os usuários) ocorreu sem problemas e gerou resultados inegáveis.
Evitar a desistência do usuário com a restauração de credenciais
Ao eliminar os logins manuais em novos dispositivos, a Uber manteve usuários que poderiam ter abandonado o fluxo de login em um novo dispositivo. Esse aumento na facilidade para o cliente se refletiu em uma ampla gama de melhorias. Embora pareçam pequenas à primeira vista, o impacto é enorme na escala da base de usuários do Uber:
- Redução de 3,4% nos logins manuais (OTP por SMS, senhas, login em redes sociais).
- Redução de 1,2% nas despesas com logins que exigem senha única por SMS.
- Aumento de 0,575% na taxa de acesso do Uber (% de dispositivos que acessaram a tela inicial do app).
- Aumento de 0,614% nos dispositivos com viagens concluídas.
Hoje, o recurso "Restaurar credenciais" está quase se tornando uma parte padrão do app de passageiro da Uber, com mais de 95% dos usuários no grupo de teste registrados.
Durante a configuração de um novo dispositivo, os usuários podem restaurar dados do app e credenciais de um backup. Depois de selecionar o Uber para restauração e o processo em segundo plano terminar, o app vai fazer login automaticamente no primeiro lançamento do novo dispositivo.
O impacto invisível, mas enorme, de "Restaurar credenciais"
Nos próximos meses, a Uber planeja expandir a integração do recurso "Restaurar credenciais". Com base nos resultados do teste, eles estimam que a mudança vai eliminar 4 milhões de logins manuais por ano. Ao simplificar o acesso ao app e remover um ponto problemático importante, eles estão construindo ativamente uma base de clientes mais satisfeita e fiel, uma corrida por vez.
"A integração do RestoreCredentials do Google nos permitiu oferecer a experiência perfeita de'é só usar ' que nossos usuários esperam em um novo dispositivo", disse Matt Mueller, gerente de produtos líder (identidade principal) da Uber. "Isso se traduziu diretamente em um aumento mensurável na receita, provando que reduzir o atrito no login é fundamental para o engajamento e a retenção de usuários."
Tudo pronto para melhorar a experiência de login do seu app?
Saiba como facilitar uma experiência de login perfeita ao trocar de dispositivo com a Restauração de credenciais e leia mais na postagem do blog (em inglês). No canary mais recente do Android Studio Otter, você pode validar sua integração, já que novos recursos ajudam a simular os mecanismos de backup e restauração.
Se você não conhece o Credential Manager, consulte nossa documentação, codelab e exemplos oficiais para receber ajuda com a integração.
Continuar lendo
-
Estudos de caso
A Zoho, um conjunto de softwares abrangente baseado na nuvem e focado em segurança e experiências integradas, alcançou melhorias significativas ao adotar chaves de acesso no app Android OneAuth.
Niharika Arora, Joseph Lewis • Leitura de 10 minutos
-
Estudos de caso
De notícias de última hora e entretenimento a esportes e política, o X é um app de mídia social que ajuda quase 500 milhões de usuários no mundo todo a ter acesso a todas as informações com comentários ao vivo.
Niharika Arora • 3 min de leitura
-
Estudos de caso
O Monzo é um banco digital do Reino Unido com 15 milhões de clientes e crescendo. À medida que o app escalonava, a equipe de engenharia identificou o tempo de inicialização do app como uma área crítica para melhoria, mas se preocupou com a necessidade de mudanças significativas no codebase.
Ben Weiss • 2 min de leitura
Fique por dentro
Receba os insights mais recentes sobre desenvolvimento Android na sua caixa de entrada semanalmente.