Estudos de caso

Como a Uber está reduzindo os logins manuais em 4 milhões por ano com a API Restore Credentials

Leitura de 5 minutos

A 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 de saúde e logística de frete. A simplicidade do acesso é crucial para o sucesso do recurso. Quando os usuários trocam de dispositivo, eles esperam uma transição simples, sem precisar fazer login novamente no app da Uber ou passar pela autenticação de senha única por SMS. Essa troca frequente de dispositivos é um desafio, mas também uma oportunidade para uma forte retenção de usuários. 

Para manter a continuidade do usuário, os engenheiros da Uber recorreram ao recurso Restaurar credenciais, uma ferramenta essencial para uma época em que 40% das pessoas nos Estados Unidos trocam de smartphone todos os anos. Após uma avaliação da demanda dos usuários e da prototipagem de código, eles introduziram o suporte à restauração de credenciais no app Uber para passageiros. Para validar se a restauração de credenciais ajuda a remover o atrito para novos logins, a equipe da 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 projetada na enorme base de usuários da Uber, deve eliminar 4 milhões de logins manuais por ano.

Eliminar o atrito de login com a restauração de credenciais

restore-credentials.gif

Houve tentativas anteriores de restauração de contas em novos dispositivos usando soluções como backup de dados regular 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 até certo ponto, para preencher automaticamente os campos de login no dispositivo de destino e reduzir o atrito 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 nas transições de dispositivo.

"Alguns usuários não usam o app Uber diariamente, mas esperam que ele funcione quando precisarem", disse Thomás Oliveira Horta, engenheiro do Android na Uber. "Descobrir que você foi desconectado ao abrir 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 resolver esse problema. 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 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. No entanto, ao salvá-los no banco de dados, é preciso diferenciá-los. Essa distinção é crucial 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 na interface do usuário.

"Com a adoção das credenciais de restauração no app da Uber para passageiros, começamos a notar um uso consistente", disse Thomás. "Uma média de 10 mil usuários únicos por dia fizeram login com as credenciais de restauração na fase de lançamento atual e tiveram uma experiência perfeita 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."

image_thomas2.png

Considerações de implementação

"A integração foi bem fácil, com pequenos ajustes no 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 exigia apenas alguns pequenos ajustes. Portanto, só precisamos atualizar a dependência do Gerenciador de credenciais para a versão mais recente para ter acesso à nova API Restore Credentials. Criamos uma chave de restauração usando o mesmo fluxo de criação de chave de acesso. Quando o app é iniciado em um novo dispositivo, ele verifica proativamente essa chave tentando uma recuperação silenciosa da chave 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 o processo de desenvolvimento, os engenheiros da 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.

Como escolher o ponto de entrada de restauração de credenciais

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 ponto de entrada de Restore Credentials usar para a recuperação. Por fim, 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 simples 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 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 sempre seria necessária e que todas as credenciais seriam listadas nas configurações da conta do usuário. Nenhuma dessas suposições funcionou para as chaves de credencial de restauração não gerenciadas pelo usuário.

A equipe da 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 processá-las adequadamente.

Gerenciar o ciclo de vida da Restore Credentials

Os engenheiros da Uber enfrentaram vários desafios no gerenciamento das chaves de credencial no back-end, com o 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 para evitar que elas fiquem "ó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 a vida útil das chaves: 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.
  • 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 da Uber resolveram esses desafios estabelecendo regras para a exclusão de chaves do lado do servidor com base no registro e no uso de novas credenciais.

O recurso passou do design à entrega em um processo rápido de desenvolvimento e teste de dois meses. Depois, 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 a desistência do usuário com as credenciais de restauração

Ao eliminar os logins manuais em novos dispositivos, a Uber reteve usuários que, de outra forma, poderiam ter abandonado o fluxo de login em um novo dispositivo. Essa facilidade para os clientes se refletiu em uma ampla gama de melhorias e, embora possam parecer pequenas à primeira vista, o impacto é enorme na escala da base de usuários da Uber: 

  • Redução de 3,4% nos logins manuais (OTP por SMS, senhas, login social).
  • Redução de 1,2% nas despesas com logins que exigem OTP por SMS.
  • Aumento de 0,575% na taxa de acesso da Uber (porcentagem de dispositivos que chegaram à tela inicial do app).
  • Aumento de 0,614% nos dispositivos com viagens concluídas. 

Hoje, as credenciais de restauração estão se tornando uma parte padrão do app da Uber para passageiros, com mais de 95% dos usuários no grupo de teste registrados. 

uber-devices.png

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 conectar o usuário automaticamente na primeira inicialização do novo dispositivo.

image_thomas.png

O impacto invisível, mas enorme, da API Restore Credentials

Nos próximos meses, a Uber planeja expandir a integração da API Restore Credentials. 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 grande problema, eles estão construindo uma base de clientes mais satisfeita e fiel, uma corrida de cada vez.

"A integração da RestoreCredentials do Google nos permitiu oferecer a experiência integrada que nossos usuários esperam em um novo dispositivo", disse Matt Mueller, gerente de produtos líder (identidade principal) na 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 integrada ao trocar de dispositivo com a Restore Credentials e leia mais na postagem do blog. No Canary mais recente do Android Studio Otter, é possível validar sua integração, já que os novos recursos ajudam a simular os mecanismos de backup e restauração. 

Se você não conhece o Credential Manager, consulte nossa documentação oficial, o codelab e os exemplos para receber ajuda com a integração.

Escrito por:
Continue lendo