Studi Kasus

Cara Uber mengurangi login manual sebanyak 4 juta per tahun dengan Restore Credentials API

Waktu baca: 5 menit
Niharika Arora
Developer Relations Engineer

Uber adalah perusahaan transportasi online terbesar di dunia, yang mengantarkan jutaan orang dari satu tempat ke tempat lain sekaligus mendukung pengiriman makanan, transportasi layanan kesehatan, dan logistik pengiriman barang. Kemudahan akses sangat penting untuk keberhasilannya. Saat beralih ke perangkat baru, pengguna mengharapkan transisi yang lancar tanpa perlu login kembali ke aplikasi Uber atau melalui autentikasi sandi sekali pakai berbasis SMS. Pergantian perangkat yang sering ini menghadirkan tantangan, sekaligus peluang untuk retensi pengguna yang kuat. 

Untuk mempertahankan kontinuitas pengguna, engineer Uber beralih ke fitur Restore Credentials, alat penting untuk saat ketika 40% orang di Amerika Serikat mengganti smartphone mereka setiap tahun. Setelah melakukan penilaian terhadap permintaan pengguna dan pembuatan prototipe kode, mereka memperkenalkan dukungan Pemulihan Kredensial di aplikasi pengemudi Uber. Untuk memvalidasi bahwa pemulihan kredensial membantu menghilangkan hambatan untuk login ulang, tim Uber menjalankan eksperimen A/B yang berhasil selama periode lima minggu. Integrasi ini menyebabkan penurunan jumlah login manual yang, jika diproyeksikan di seluruh basis pengguna Uber yang sangat besar, diperkirakan akan menghilangkan 4 juta login manual setiap tahunnya.

Menghilangkan hambatan login dengan Fitur Pulihkan Kredensial

restore-credentials.gif

Sebelumnya ada upaya pemulihan akun di perangkat baru menggunakan solusi seperti pencadangan data reguler dan BlockStore, meskipun kedua solusi tersebut mengharuskan berbagi token autentikasi secara langsung, dari perangkat sumber ke perangkat tujuan. Karena informasi token sangat sensitif, solusi ini hanya digunakan sampai batas tertentu, untuk mengisi otomatis kolom login di perangkat tujuan dan mengurangi beberapa hambatan selama alur login. Kunci sandi juga digunakan untuk menyediakan metode login yang aman dan cepat, tetapi sifatnya yang dimulai oleh pengguna membatasi dampaknya pada transisi perangkat yang lancar.

“Sebagian pengguna tidak menggunakan aplikasi Uber setiap hari, tetapi mereka berharap aplikasi tersebut akan berfungsi saat mereka membutuhkannya,” kata Thomás Oliveira Horta, seorang engineer Android di Uber. “Mengetahui bahwa Anda logout tepat saat Anda membuka aplikasi untuk meminta perjalanan di ponsel Android baru Anda dapat menjadi pengalaman yang tidak menyenangkan dan menjengkelkan.”

Dengan Pulihkan Kredensial, engineer kami dapat menjembatani kesenjangan ini. API membuat token unik di perangkat lama, yang dipindahkan secara lancar dan diam-diam ke perangkat baru saat pengguna memulihkan data aplikasinya selama proses orientasi standar. Proses ini memanfaatkan mekanisme pencadangan dan pemulihan bawaan Android OS, sehingga memastikan transfer kunci pemulihan yang aman bersama dengan data aplikasi. Pendekatan yang disederhanakan ini menjamin transfer akun yang sederhana dan aman, memenuhi persyaratan keamanan Uber tanpa input pengguna tambahan atau biaya pengembangan.

Catatan: Kunci pemulihan dan kunci sandi menggunakan penerapan server pokok yang sama. Namun, saat menyimpannya di database, Anda harus membedakannya. Perbedaan ini sangat penting karena kunci sandi yang dibuat pengguna dapat dikelola langsung oleh pengguna, sedangkan kunci pemulihan dikelola sistem dan disembunyikan dari antarmuka pengguna.

“Dengan penerapan Fitur Pemulihan Kredensial di aplikasi penumpang Uber, kami mulai melihat penggunaan yang konsisten,” kata Thomás. “Rata-rata 10.000 pengguna harian unik telah login dengan Pulihkan Kredensial dalam tahap peluncuran saat ini, dan mereka menikmati pengalaman yang lancar saat membuka aplikasi untuk pertama kalinya di perangkat baru. Kami memperkirakan jumlah tersebut akan berlipat ganda setelah kami memperluas peluncuran ke seluruh basis pengguna kami.”

image_thomas2.png

Pertimbangan Penerapan

“Integrasinya cukup mudah dengan sedikit penyesuaian di sisi Android dengan mengikuti kode contoh dan dokumentasi,” kata Thomás. “Aplikasi kami sudah menggunakan Credential Manager untuk kunci sandi, dan backend hanya memerlukan beberapa penyesuaian kecil. Oleh karena itu, kami hanya perlu mengupdate dependensi Credential Manager ke versi terbarunya untuk mendapatkan akses ke Restore Credentials API yang baru. Kami membuat kunci pemulihan melalui alur pembuatan kunci sandi yang sama dan saat aplikasi kami diluncurkan di perangkat baru, aplikasi secara proaktif memeriksa kunci ini dengan mencoba pengambilan kunci sandi tanpa interaksi pengguna. Jika kunci pemulihan ditemukan, kunci tersebut akan langsung digunakan untuk membuat pengguna login secara otomatis, melewati login manual apa pun.”

Selama proses pengembangan, para engineer Uber menghadapi beberapa tantangan selama penerapan—mulai dari memilih titik entri yang tepat hingga mengelola siklus proses kredensial di backend.

Memilih titik entri Pulihkan Kredensial

Para engineer dengan cermat mempertimbangkan kompromi antara pengalaman pengguna yang lancar sempurna dan kesederhanaan penerapan saat memilih titik entri Restore Credentials yang akan digunakan untuk pemulihan. Pada akhirnya, mereka memprioritaskan solusi yang menawarkan keseimbangan ideal.

“Hal ini dapat terjadi selama Peluncuran Aplikasi atau di latar belakang selama pemulihan dan penyiapan perangkat, menggunakan BackupAgent,” kata Thomás. “Titik entri login di latar belakang lebih lancar bagi pengguna, tetapi menimbulkan tantangan dengan operasi di latar belakang dan memerlukan penggunaan BackupAgent API, yang akan menyebabkan peningkatan kompleksitas dalam codebase sebesar Uber.” Mereka memutuskan untuk menerapkan fitur tersebut selama peluncuran aplikasi pertama, yang jauh lebih cepat daripada login manual.

Mengatasi tantangan sisi server 

Beberapa tantangan sisi server muncul selama integrasi dengan WebAuthn API backend, karena desainnya mengasumsikan bahwa verifikasi pengguna akan selalu diperlukan, dan semua kredensial akan dicantumkan di setelan akun pengguna; kedua asumsi ini tidak berfungsi untuk kunci Pemulihan Kredensial yang tidak dikelola pengguna.

Tim Uber menyelesaikan masalah ini dengan melakukan perubahan kecil pada layanan WebAuthn, membuat jenis kredensial baru untuk membedakan kunci sandi dari Pulihkan Kredensial dan memprosesnya dengan tepat.

Mengelola siklus proses Restore Credentials

Para engineer Uber menghadapi beberapa tantangan dalam mengelola kunci kredensial di backend, dengan dukungan khusus dari engineer backend Ryan O’Laughlin:

  • Mencegah kunci yang tidak terkait: Tantangan signifikan adalah menentukan strategi untuk menghapus Kunci Publik terdaftar agar tidak menjadi "tidak terkait". Misalnya, menghapus aplikasi akan menghapus kredensial lokal, tetapi karena tindakan ini tidak memberi sinyal ke backend, kunci yang tidak digunakan akan tetap ada di server.
  • Menyeimbangkan masa aktif kunci: Kunci memerlukan "waktu aktif" yang cukup lama untuk menangani kasus ekstrem. Misalnya, jika pengguna melakukan pencadangan dan pemulihan, lalu logout secara manual dari perangkat lama, kunci akan dihapus dari perangkat lama tersebut. Namun, kunci harus tetap valid di server agar perangkat baru dapat terus menggunakannya.
  • Mendukung beberapa perangkat: Karena pengguna dapat memiliki beberapa perangkat (dan dapat memulai pencadangan dan pemulihan dari perangkat mana pun), backend perlu mendukung beberapa Kredensial Pemulihan per pengguna (satu untuk setiap perangkat).

Para engineer Uber mengatasi tantangan ini dengan menetapkan aturan untuk penghapusan kunci sisi server berdasarkan pendaftaran kredensial baru dan penggunaan kredensial.

Fitur ini dikembangkan dan diuji dalam proses yang cepat selama dua bulan, mulai dari desain hingga peluncuran. Setelah itu, eksperimen A/B selama lima minggu (waktu untuk memvalidasi fitur dengan pengguna) berjalan lancar dan menghasilkan hasil yang tidak dapat disangkal.  

Mencegah pengguna keluar dengan fitur Pulihkan Kredensial

Dengan menghilangkan login manual di perangkat baru, Uber mempertahankan pengguna yang mungkin akan menghentikan alur login di perangkat baru. Peningkatan kemudahan pelanggan ini tercermin dalam berbagai peningkatan, dan meskipun sekilas tampak kecil, dampaknya sangat besar pada skala basis pengguna Uber: 

  • Penurunan 3,4% pada login manual (OTP SMS, sandi, login dengan akun media sosial).
  • Pengurangan biaya sebesar 1,2% untuk login yang memerlukan OTP SMS.
  • Peningkatan 0,575% pada tingkat akses Uber (% perangkat yang berhasil mencapai layar utama aplikasi).
  • Peningkatan 0,614% pada perangkat dengan perjalanan yang selesai. 

Saat ini, Pulihkan Kredensial dalam proses menjadi bagian standar dari aplikasi penumpang Uber, dengan lebih dari 95% pengguna dalam grup uji coba yang terdaftar. 

uber-devices.png

Selama penyiapan perangkat baru, pengguna dapat memulihkan data dan kredensial aplikasi dari cadangan. Setelah memilih Uber untuk dipulihkan dan proses latar belakang selesai, aplikasi akan otomatis membuat pengguna login di peluncuran pertama perangkat baru.

image_thomas.png

Dampak Pemulihan Kredensial yang tidak terlihat namun sangat besar

Dalam beberapa bulan mendatang, Uber berencana memperluas integrasi fitur Pulihkan Kredensial. Dengan memproyeksikan hasil uji coba, mereka memperkirakan perubahan ini akan menghilangkan 4 juta login manual setiap tahun. Dengan menyederhanakan akses aplikasi dan menghilangkan masalah utama, mereka secara aktif membangun basis pelanggan yang lebih puas dan loyal, satu perjalanan pada satu waktu.

"Dengan mengintegrasikan RestoreCredentials Google, kami dapat memberikan pengalaman 'langsung berfungsi' yang lancar seperti yang diharapkan pengguna kami di perangkat baru,” kata Matt Mueller, Lead Product Manager (Core Identity) di Uber. “Hal ini secara langsung menghasilkan peningkatan pendapatan yang terukur, sehingga membuktikan bahwa mengurangi hambatan login adalah kunci untuk engagement dan retensi pengguna."

Siap meningkatkan pengalaman login aplikasi Anda?

Pelajari cara memfasilitasi pengalaman login yang lancar saat beralih perangkat dengan Pulihkan Kredensial dan baca selengkapnya di postingan blog. Di canary terbaru Android Studio Otter, Anda dapat memvalidasi integrasi, karena fitur baru membantu meniru mekanisme pencadangan dan pemulihan. 

Jika Anda baru menggunakan Credential Manager, Anda dapat melihat dokumentasi, codelab, dan contoh resmi kami untuk mendapatkan bantuan terkait integrasi

Ditulis oleh:

Lanjutkan membaca