Estudos de caso
Como o Uber está reduzindo os logins manuais em 4 milhões por ano 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, além de oferecer serviços de entrega de comida, transporte para saúde e logística de frete. A simplicidade de acesso é fundamental para o sucesso da empresa. Quando os usuários mudam para um novo dispositivo, eles esperam uma transição perfeita, sem precisar fazer login novamente no app do Uber ou passar pela autenticação de senha única por SMS. Essa rotatividade frequente de dispositivos apresenta um desafio, bem como uma oportunidade para uma forte retenção de usuários.
Para manter a continuidade do usuário, os engenheiros do Uber recorreram ao recurso Restore Credentials, uma ferramenta essencial para 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 prototipagem de código, eles introduziram o suporte do Restore Credentials no app do Uber para passageiros. Para validar se a restauração de credenciais ajuda a remover a dificuldade de fazer login novamente, 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 na enorme base de usuários do Uber, estima-se que elimine 4 milhões de logins manuais anualmente.
Eliminação da dificuldade de login com o Restore Credentials
Houve tentativas anteriores de restauração de contas em novos dispositivos usando soluções como backup de dados regular e BlockStore, embora ambas as soluções exigissem o compartilhamento de tokens de autenticação diretamente, do dispositivo de origem para o dispositivo de destino. Como as informações de token são altamente confidenciais, essas soluções são usadas apenas em certa medida, para preencher previamente os campos de login no dispositivo de destino e reduzir algumas dificuldades durante os fluxos de login. As chaves de acesso também são usadas para fornecer um método de login rápido e seguro, mas a natureza iniciada pelo usuário limita o impacto nas transições de dispositivos.
"Alguns usuários não usam o app do Uber diariamente, mas esperam que ele funcione quando precisarem", disse Thomás Oliveira Horta, engenheiro do Android no Uber. Descobrir que você está desconectado assim que abre o app para pedir uma viagem no seu novo smartphone Android pode ser uma experiência desagradável e desanimadora.
Com o Restore Credentials, os engenheiros conseguiram superar essa dificuldade. 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 aproveita o mecanismo nativo de backup e restauração do SO Android, garantindo a transferência segura da chave de restauração junto com os dados do app. A abordagem simplificada garante uma transferência de conta simples e segura, atendendo aos requisitos de segurança do Uber sem nenhuma entrada adicional do usuário ou sobrecarga de desenvolvimento.
Observação:as chaves de restauração e as chaves de acesso usam a mesma implementação de servidor subjacente. No entanto, ao salvá-las no banco de dados, é necessário diferenciá-las. Essa distinção é fundamental porque as chaves de acesso criadas pelo usuário podem ser gerenciadas diretamente por ele, enquanto as chaves de restauração são gerenciadas pelo sistema e ficam ocultas da interface do usuário.
"Com a adoção do Restore Credentials no app do Uber para passageiros, começamos a observar um uso consistente", disse Thomás. "Uma média de 10.000 usuários diários únicos fez login com o Restore Credentials na fase de lançamento atual, 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 "Nosso app já usava o Credential Manager para chaves de acesso, e o back-end exigia apenas alguns pequenos ajustes. Portanto, só precisamos atualizar a dependência do Credential Manager para a versão mais recente para ter acesso à nova API Restore Credentials. Criamos uma chave de restauração pelo mesmo fluxo de criação de chaves de acesso e, 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 automático do usuário, ignorando qualquer login manual."
Durante todo o processo de desenvolvimento, os engenheiros do Uber enfrentaram alguns desafios durante a implementação, desde a escolha do ponto de entrada certo até o gerenciamento do ciclo de vida das credenciais no back-end.
Escolha do ponto de entrada do Restore Credentials
Os engenheiros avaliaram cuidadosamente as vantagens e desvantagens entre uma experiência do usuário perfeitamente integrada e a simplicidade de implementação ao selecionar qual Restore Credentials ponto de entrada usar para recuperação. Por fim, eles priorizaram uma solução que oferecesse um equilíbrio ideal.
"Isso pode ocorrer 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 integrado para o usuário, mas apresentou desafios com operações em segundo plano e exigiu o uso da API BackupAgent, o que teria levado a uma maior complexidade em uma base de código tão grande quanto a do Uber." Eles decidiram implementar o recurso durante a primeira inicialização do app, que foi significativamente mais rápida do que o login manual.
Como resolver 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 sempre seria necessária e que todas as credenciais seriam listadas nas configurações da conta de um usuário. Nenhuma dessas suposições funcionou para as chaves de credenciais de restauração não gerenciadas pelo usuário.
A equipe do Uber resolveu isso fazendo pequenas mudanças nos serviços WebAuthn, criando novos tipos de credenciais para distinguir as chaves de acesso das credenciais de restauração e processá-las adequadamente.
Como gerenciar o ciclo de vida do Restore Credentials
Os engenheiros do Uber enfrentaram vários desafios no gerenciamento das chaves de credenciais no back-end, com suporte especializado do engenheiro de back-end Ryan O'Laughlin:
- Como evitar chaves órfãs: um desafio significativo foi definir uma estratégia para excluir chaves públicas registradas para 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.
- Como equilibrar a vida útil da chave: as chaves precisavam de um "tempo de vida" longo o suficiente para lidar com casos extremos. Por exemplo, se um usuário fizer um backup e uma restauração e, em seguida, sair manualmente do dispositivo antigo, a chave será excluída desse dispositivo. No entanto, a chave precisa permanecer válida no servidor para que o novo dispositivo ainda possa usá-la.
- Como oferecer suporte a vários dispositivos: como um usuário pode ter vários dispositivos (e pode 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 do Uber resolveram esses desafios estabelecendo regras para a exclusão de chaves do lado do servidor com base no novo registro e uso de 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.
Como evitar o abandono do usuário com o Restore Credentials
Ao eliminar os logins manuais em novos dispositivos, o Uber reteve usuários que, de outra forma, poderiam ter abandonado o fluxo de login em um novo dispositivo. Esse aumento na facilidade do cliente foi refletido em uma ampla variedade de melhorias e, embora possam parecer 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 social).
- Redução de 1,2% nas despesas de logins que exigem OTP 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 Restore Credentials está a caminho de se tornar uma parte padrão do app do Uber para passageiros, 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 e credenciais do app de um backup. Depois de selecionar o Uber para restauração e o processo em segundo plano terminar, o app fará login automático do usuário na primeira inicialização do novo dispositivo.
O impacto invisível, mas enorme, do Restore Credentials
Nos próximos meses, o Uber planeja expandir a integração do Restore Credentials. Com base nos resultados do teste, eles estimam que a mudança vai eliminar 4 milhões de logins manuais anualmente. 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 integrada 'é só usar' que nossos usuários esperam em um novo dispositivo", disse Matt Mueller, gerente de produtos líder (identidade principal) do Uber. Isso se traduziu diretamente em um aumento mensurável na receita, comprovando que a redução da dificuldade de login é fundamental para o engajamento do usuário e a retenção.
Tudo pronto para melhorar a experiência de login do seu app?
Saiba como facilitar uma experiência de login integrada ao trocar de dispositivo com o Restore Credentials e leia mais na postagem do blog. 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
O 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 e entretenimento a esportes e política, o X é um app de mídia social que tem como objetivo ajudar quase 500 milhões de usuários em todo o mundo a ter acesso a toda a história com todos os comentários ao vivo.
Niharika Arora • Leitura de 3 minutos
-
Estudos de caso
O Monzo é um banco digital do Reino Unido com 15 milhões de clientes e em crescimento. À medida que o app crescia, 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 na base de código.
Ben Weiss • Leitura de 2 minutos
Fique por dentro
Receba os insights mais recentes sobre o desenvolvimento do Android na sua caixa de entrada semanalmente.