Истории успеха

Как Uber сокращает число входов вручную на 4 миллиона в год с помощью Restore Credentials API

Время на чтение: 5 минут
Посмотреть профиль Нихарики Ароры Посмотреть профиль пользователя Tracy Agyemang
Niharika Arora и Tracy Agyemang

Uber – крупнейшая в мире компания по совместному использованию автомобилей, которая помогает миллионам людей добираться до места назначения, а также поддерживает доставку еды, медицинские перевозки и грузовую логистику. Простота доступа – залог успеха. Когда пользователи переходят на новое устройство, они ожидают, что смогут войти в приложение Uber без повторного ввода пароля или одноразового кода из SMS. Частая смена устройств – это не только проблема, но и возможность удержать пользователей. 

Чтобы обеспечить непрерывность работы пользователей, инженеры Uber обратились к функции Восстановление учетных данных, которая является важным инструментом в то время, когда 40% людей в США ежегодно меняют свои смартфоны. Оценив спрос пользователей и создав прототип кода, разработчики добавили поддержку Restore Credentials в приложение Uber. Чтобы убедиться, что восстановление учетных данных помогает упростить повторный вход, команда Uber провела успешный A/B-эксперимент в течение пяти недель. Интеграция позволила сократить количество входов вручную. По оценкам, в масштабах огромной пользовательской базы Uber это позволит устранить 4 миллиона входов вручную в год.

Упрощение входа с помощью восстановления учетных данных

restore-credentials.gif

Ранее мы пытались реализовать восстановление аккаунтов на новых устройствах с помощью таких решений, как регулярное резервное копирование данных и BlockStore. Однако в обоих случаях требовалось передавать токены аутентификации напрямую с исходного устройства на целевое. Поскольку информация о токенах является конфиденциальной, эти решения используются только в определенной степени, чтобы заранее загрузить данные в поля входа на целевом устройстве и уменьшить некоторые трения во время потоков входа. Ключи доступа также обеспечивают безопасный и быстрый метод входа, но поскольку они инициируются пользователем, их влияние на плавный переход между устройствами ограничено.

"Некоторые пользователи не открывают приложение Uber каждый день, но ожидают, что оно будет работать, когда понадобится, – говорит Томас Оливейра Орта (Thomás Oliveira Horta), Android-разработчик в Uber. – "Если вы открываете приложение на новом телефоне Android, чтобы заказать поездку, и обнаруживаете, что не вошли в аккаунт, это может быть неприятно и даже отталкивающе".

С помощью Restore Credentials инженерам удалось решить эту проблему. API генерирует уникальный токен на старом устройстве, который незаметно переносится на новое устройство, когда пользователь восстанавливает данные приложения в процессе стандартной настройки. При этом используется встроенный механизм резервного копирования и восстановления ОС Android, что обеспечивает безопасную передачу ключа восстановления вместе с данными приложения. Упрощенный подход гарантирует простой и безопасный перенос аккаунта, соответствующий требованиям безопасности Uber, без дополнительных действий со стороны пользователя или затрат на разработку.

Примечание. Ключи восстановления и ключи доступа используют одну и ту же серверную реализацию. Однако при сохранении в базе данных их необходимо различать. Это различие важно, поскольку ключами доступа, созданными пользователем, может управлять сам пользователь, а ключи восстановления управляются системой и скрыты в пользовательском интерфейсе.

"После внедрения Restore Credentials в приложении Uber для пассажиров мы заметили, что пользователи стали регулярно применять эту функцию, – говорит Томас. – "В среднем 10 000 уникальных пользователей в день входят в аккаунт с помощью функции восстановления учетных данных на текущем этапе развертывания. Они могут сразу начать пользоваться приложением, когда впервые открывают его на новом устройстве. Мы ожидаем, что это число удвоится, когда мы расширим развертывание на всю нашу пользовательскую базу".

image_thomas2.png

О чем важно помнить

"Интеграция прошла довольно легко. Мы внесли небольшие изменения в Android-версию, следуя образцу кода и документации", – говорит Томас. "В нашем приложении уже использовался Менеджер учетных данных для ключей доступа, и для серверной части потребовалось всего несколько небольших изменений. Поэтому нам нужно было просто обновить зависимость Менеджера учетных данных до последней версии, чтобы получить доступ к новому Restore Credentials API. Мы создали ключ восстановления с помощью того же процесса создания ключа доступа. Когда наше приложение запускается на новом устройстве, оно пытается получить ключ доступа в фоновом режиме. Если ключ восстановления найден, он сразу же используется для автоматического входа пользователя в систему, минуя ручной вход.

В процессе разработки инженеры Uber столкнулись с несколькими проблемами, от выбора правильной точки входа до управления жизненным циклом учетных данных на сервере.

Как выбрать точку входа для восстановления учетных данных

Инженеры тщательно взвесили компромиссы между идеальным пользовательским опытом и простотой реализации, выбирая, какую точку входа Restore Credentials использовать для восстановления. В конечном итоге они выбрали решение, которое обеспечивало идеальный баланс.

"Это может происходить при запуске приложения или в фоновом режиме во время восстановления и настройки устройства с помощью BackupAgent", – говорит Томас. "Фоновый вход удобнее для пользователя, но он усложняет фоновые операции и требует использования BackupAgent API, что привело бы к усложнению базы кода, которая у Uber и так большая". В итоге разработчики решили реализовать функцию при первом запуске приложения, что значительно быстрее, чем вход вручную.

Решение проблем на стороне сервера

При интеграции с серверными API WebAuthn возникло несколько проблем, поскольку их архитектура предполагала, что подтверждение пользователя будет требоваться всегда, а все учетные данные будут перечислены в настройках аккаунта пользователя. Ни одно из этих предположений не работало для ключей Restore Credentials, которыми пользователь не управляет.

Команда Uber решила эту проблему, внеся небольшие изменения в сервисы WebAuthn и создав новые типы учетных данных, чтобы отличать ключи доступа от учетных данных для восстановления и обрабатывать их соответствующим образом.

Управление жизненным циклом учетных данных для восстановления

Инженеры Uber столкнулись с несколькими проблемами при управлении ключами учетных данных на сервере. Им помогал Райан О'Лафлин (Ryan O'Laughlin), инженер по серверной части.

  • Предотвращение появления потерянных ключей. Одной из основных задач было определение стратегии удаления зарегистрированных открытых ключей, чтобы они не становились потерянными. Например, при удалении приложения удаляются локальные учетные данные, но поскольку это действие не сигнализирует серверной части, на сервере остается неиспользуемый ключ.
  • Баланс срока действия ключей. Ключам нужен был достаточно долгий срок действия, чтобы справляться с пограничными случаями. Например, если пользователь выполняет резервное копирование и восстановление, а затем вручную выходит из аккаунта на старом устройстве, ключ удаляется с этого устройства. Однако ключ должен оставаться действительным на сервере, чтобы новое устройство могло его использовать.
  • Поддержка нескольких устройств. Поскольку у пользователя может быть несколько устройств (и он может запустить резервное копирование и восстановление с любого из них), серверная часть должна поддерживать несколько учетных данных для восстановления на пользователя (по одному для каждого устройства).

Инженеры Uber решили эти проблемы, установив правила удаления ключей на стороне сервера на основе регистрации новых учетных данных и их использования.

Разработка и тестирование функции заняли всего два месяца. Затем в течение пяти недель проводился A/B-эксперимент, который позволил проверить функцию на пользователях и получить неоспоримые результаты.  

Как предотвратить уход пользователей с помощью восстановления учетных данных

Благодаря этому компании удалось удержать пользователей, которые могли бы отказаться от входа на новом устройстве. Это повышение удобства для клиентов отразилось в широком спектре улучшений, и хотя на первый взгляд они могут показаться незначительными, их влияние огромно в масштабах пользовательской базы Uber: 

  • Количество входов вручную (с помощью одноразовых кодов из SMS, паролей и аккаунтов социальных сетей) снизилось на 3, 4 %.
  • Расходы на входы, требующие одноразового кода из SMS, снизились на 1,2 %.
  • На 0,575 % увеличилась частота доступа к Uber (процент устройств, на которых успешно открывался главный экран приложения).
  • 0,614 % – рост числа устройств, на которых были завершены поездки.

Сегодня Restore Credentials становится стандартной частью приложения Uber для пассажиров. В экспериментальной группе зарегистрировано более 95% пользователей.

uber-devices.png

При настройке нового устройства пользователи могут восстановить данные приложений и учетные данные из резервной копии. После выбора Uber для восстановления и завершения фонового процесса приложение автоматически выполнит вход пользователя при первом запуске на новом устройстве.

image_thomas.png

Незаметное, но значительное влияние восстановления учетных данных

В ближайшие месяцы Uber планирует расширить интеграцию Restore Credentials. Основываясь на результатах тестирования, они подсчитали, что это изменение позволит избежать 4 миллионов входов в систему вручную в год. Упростив доступ к приложению и устранив ключевую проблему, компания активно формирует более удовлетворенную и лояльную клиентскую базу, поездка за поездкой.

"Интеграция RestoreCredentials от Google позволила нам обеспечить удобство, которого пользователи ожидают от нового устройства, – говорит Мэтт Мюллер, ведущий менеджер по продукту (Core Identity) в Uber. Это напрямую привело к заметному росту дохода и доказало, что упрощение входа – ключ к вовлечению и удержанию пользователей".

Готовы улучшить процесс входа в приложение?

Узнайте, как упростить вход в аккаунт при смене устройства с помощью Restore Credentials, и прочитайте запись в блоге. В последней версии Canary Android Studio Otter вы можете проверить интеграцию, поскольку новые функции помогают имитировать механизмы резервного копирования и восстановления. 

Если вы раньше не пользовались Менеджером учетных данных, ознакомьтесь с нашей официальной документацией, практической работой и примерами.

Автор:
Продолжить чтение