กรณีศึกษา

วิธีที่ Uber ใช้ลดการเข้าสู่ระบบด้วยตนเองได้ 4 ล้านครั้งต่อปีด้วย Restore Credentials API

ใช้เวลาอ่าน 5 นาที
Niharika Arora
วิศวกรนักพัฒนาซอฟต์แวร์สัมพันธ์

Uber เป็นบริษัทร่วมเดินทางที่ใหญ่ที่สุดในโลก โดยให้บริการแก่ผู้คนหลายล้านคนทั่วโลก พร้อมทั้งสนับสนุนการนำส่งอาหาร การเดินทางเพื่อรับการรักษาพยาบาล และโลจิสติกส์การขนส่งสินค้า ความสะดวกในการเข้าถึงเป็นสิ่งสำคัญต่อความสำเร็จของฟีเจอร์นี้ เมื่อผู้ใช้เปลี่ยนไปใช้อุปกรณ์ใหม่ ผู้ใช้คาดหวังว่าจะได้รับการเปลี่ยนผ่านที่ราบรื่นโดยไม่ต้องกลับไปเข้าสู่ระบบแอป Uber หรือผ่านการตรวจสอบสิทธิ์รหัสผ่านที่สามารถใช้งานได้เพียงครั้งเดียวผ่าน SMS การเปลี่ยนอุปกรณ์บ่อยครั้งเช่นนี้เป็นทั้งความท้าทายและโอกาสในการคงผู้ใช้ไว้

วิศวกรของ Uber จึงหันมาใช้ฟีเจอร์กู้คืนข้อมูลเข้าสู่ระบบ ซึ่งเป็นเครื่องมือสำคัญสำหรับช่วงเวลาที่ 40% ของผู้คนในสหรัฐอเมริกาเปลี่ยนสมาร์ทโฟนทุกปี หลังจากประเมินความต้องการของผู้ใช้และการสร้างต้นแบบโค้ดแล้ว ทีม Uber ก็ได้เปิดตัวการรองรับการกู้คืนข้อมูลเข้าสู่ระบบในแอป Uber สำหรับผู้โดยสาร เพื่อตรวจสอบว่าการกู้คืนข้อมูลเข้าสู่ระบบช่วยลดอุปสรรคในการเข้าสู่ระบบอีกครั้งได้ ทีม Uber จึงได้ทำการทดสอบ A/B เป็นเวลา 5 สัปดาห์จนประสบความสำเร็จ การผสานรวมนี้ช่วยลดการเข้าสู่ระบบด้วยตนเอง ซึ่งเมื่อคาดการณ์จากฐานผู้ใช้จำนวนมากของ Uber แล้ว คาดว่าจะช่วยลดการเข้าสู่ระบบด้วยตนเองได้ 4 ล้านครั้งต่อปี

ลดความยุ่งยากในการเข้าสู่ระบบด้วยการกู้คืนข้อมูลเข้าสู่ระบบ

restore-credentials.gif

ก่อนหน้านี้เราเคยพยายามกู้คืนบัญชีในอุปกรณ์ใหม่โดยใช้โซลูชันต่างๆ เช่น การสำรองข้อมูลปกติและ BlockStore แต่ทั้ง 2 โซลูชันนี้ต้องแชร์โทเค็นการตรวจสอบสิทธิ์โดยตรงจากอุปกรณ์ต้นทางไปยังอุปกรณ์ปลายทาง เนื่องจากข้อมูลโทเค็นมีความละเอียดอ่อนสูง โซลูชันเหล่านี้จึงใช้ในระดับหนึ่งเท่านั้นเพื่อกรอกข้อมูลในช่องเข้าสู่ระบบล่วงหน้าในอุปกรณ์ปลายทาง และลดอุปสรรคบางอย่างในระหว่างขั้นตอนการลงชื่อเข้าใช้ นอกจากนี้ พาสคีย์ยังใช้เพื่อมอบวิธีการเข้าสู่ระบบที่รวดเร็วและปลอดภัย แต่ลักษณะที่ผู้ใช้เป็นผู้เริ่มทำให้พาสคีย์มีผลกระทบต่อการเปลี่ยนอุปกรณ์อย่างราบรื่นได้จำกัด

"ผู้ใช้บางรายไม่ได้ใช้แอป Uber ทุกวัน แต่คาดหวังว่าแอปจะทำงานได้เมื่อต้องการใช้งาน" Thomás Oliveira Horta วิศวกร Android ของ Uber กล่าว การพบว่าระบบได้ออกจากระบบไปแล้วในขณะที่คุณเปิดแอปเพื่อขอใช้บริการเรียกรถในโทรศัพท์ Android เครื่องใหม่เป็นประสบการณ์ที่ไม่พึงประสงค์และน่ารำคาญ

กู้คืนข้อมูลเข้าสู่ระบบช่วยให้วิศวกรของเราสามารถอุดช่องโหว่นี้ได้ API จะสร้างโทเค็นที่ไม่ซ้ำกันในอุปกรณ์เครื่องเก่า ซึ่งจะย้ายไปยังอุปกรณ์เครื่องใหม่โดยอัตโนมัติและเงียบๆ เมื่อผู้ใช้กู้คืนข้อมูลแอปในระหว่างกระบวนการเริ่มต้นใช้งานมาตรฐาน กระบวนการนี้ใช้ประโยชน์จากกลไกการสำรองและกู้คืนดั้งเดิมของระบบปฏิบัติการ Android เพื่อให้มั่นใจว่าการโอนคีย์การกู้คืนพร้อมกับข้อมูลของแอปจะปลอดภัย แนวทางที่ปรับปรุงแล้วนี้รับประกันการโอนบัญชีที่ง่ายและปลอดภัย ซึ่งเป็นไปตามข้อกำหนดด้านความปลอดภัยของ Uber โดยไม่ต้องมีการป้อนข้อมูลจากผู้ใช้เพิ่มเติมหรือค่าใช้จ่ายในการพัฒนา

หมายเหตุ: คีย์การกู้คืนและพาสคีย์ใช้การติดตั้งใช้งานเซิร์ฟเวอร์พื้นฐานเดียวกัน อย่างไรก็ตาม เมื่อบันทึกไว้ในฐานข้อมูล คุณต้องแยกความแตกต่างระหว่างทั้ง 2 รายการ ความแตกต่างนี้มีความสำคัญอย่างยิ่งเนื่องจากผู้ใช้สามารถจัดการพาสคีย์ที่สร้างขึ้นได้โดยตรง ในขณะที่คีย์การกู้คืนจะได้รับการจัดการโดยระบบและซ่อนจากอินเทอร์เฟซผู้ใช้

"เมื่อนำการกู้คืนข้อมูลเข้าสู่ระบบมาใช้ในแอป Uber สำหรับผู้โดยสาร เราก็เริ่มเห็นการใช้งานที่สม่ำเสมอ" Thomás กล่าว โดยเฉลี่ยแล้วมีผู้ใช้ที่ไม่ซ้ำกัน 10,000 รายต่อวันที่ลงชื่อเข้าใช้ด้วยข้อมูลเข้าสู่ระบบที่กู้คืนได้ในระยะการเปิดตัวปัจจุบัน และผู้ใช้ได้รับประสบการณ์ที่ราบรื่นเมื่อเปิดแอปเป็นครั้งแรกในอุปกรณ์ใหม่ เราคาดว่าตัวเลขดังกล่าวจะเพิ่มขึ้นเป็น 2 เท่าเมื่อขยายการเปิดตัวไปยังฐานผู้ใช้ทั้งหมด"

image_thomas2.png

ข้อควรพิจารณาในการติดตั้งใช้งาน

"การผสานรวมนั้นค่อนข้างง่าย โดยมีการปรับเล็กน้อยในฝั่ง Android ด้วยการทำตามโค้ดตัวอย่างและเอกสารประกอบ" Thomás กล่าว แอปของเราใช้ Credential Manager สำหรับพาสคีย์อยู่แล้ว และแบ็กเอนด์ก็ต้องมีการปรับแต่งเล็กๆ น้อยๆ เพียงไม่กี่อย่าง ดังนั้น เราจึงเพียงแค่อัปเดตทรัพยากร Dependency ของ Credential Manager เป็นเวอร์ชันล่าสุดเพื่อให้เข้าถึง Restore Credentials API ใหม่ได้ เราสร้างคีย์การกู้คืนผ่านขั้นตอนการสร้างพาสคีย์เดียวกัน และเมื่อเปิดแอปในอุปกรณ์เครื่องใหม่ แอปจะตรวจสอบคีย์นี้โดยพยายามดึงพาสคีย์แบบเงียบๆ หากพบคีย์การกู้คืน ระบบจะใช้คีย์ดังกล่าวทันทีเพื่อลงชื่อเข้าใช้ผู้ใช้โดยอัตโนมัติ โดยข้ามการเข้าสู่ระบบด้วยตนเอง"

ตลอดกระบวนการพัฒนา วิศวกรของ Uber ได้พบกับความท้าทายบางอย่างระหว่างการติดตั้งใช้งาน ตั้งแต่การเลือกจุดแรกเข้าที่เหมาะสมไปจนถึงการจัดการวงจรข้อมูลเข้าสู่ระบบในแบ็กเอนด์

การเลือกจุดแรกเข้าของกู้คืนข้อมูลเข้าสู่ระบบ

วิศวกรได้พิจารณาอย่างรอบคอบถึงข้อแลกเปลี่ยนระหว่างประสบการณ์ของผู้ใช้ที่ราบรื่นอย่างสมบูรณ์แบบกับความเรียบง่ายในการติดตั้งใช้งานเมื่อเลือก จุดแรกเข้าของ "กู้คืนข้อมูลเข้าสู่ระบบ" ที่จะใช้สำหรับการกู้คืน ท้ายที่สุดแล้ว พวกเขาจึงเลือกโซลูชันที่ให้ความสมดุลที่เหมาะสม

"การดำเนินการนี้อาจเกิดขึ้นระหว่างการเปิดตัวแอปหรือในเบื้องหลังระหว่างการกู้คืนและการตั้งค่าอุปกรณ์โดยใช้ BackupAgent" Thomás กล่าว "จุดแรกเข้าสำหรับการเข้าสู่ระบบเบื้องหลังราบรื่นกว่าสำหรับผู้ใช้ แต่ก็ทำให้เกิดความท้าทายในการดำเนินการเบื้องหลังและต้องใช้ BackupAgent API ซึ่งจะทำให้ฐานของโค้ดขนาดใหญ่เท่าของ Uber มีความซับซ้อนเพิ่มขึ้น" พวกเขาจึงตัดสินใจติดตั้งใช้งานฟีเจอร์นี้ในการเปิดตัวแอปครั้งแรก ซึ่งเร็วกว่าการเข้าสู่ระบบด้วยตนเองอย่างมาก

การรับมือกับความท้าทายฝั่งเซิร์ฟเวอร์ 

ความท้าทายฝั่งเซิร์ฟเวอร์บางอย่างเกิดขึ้นระหว่างการผสานรวมกับแบ็กเอนด์ของ WebAuthn API เนื่องจากดีไซน์ของ API เหล่านั้นถือว่าต้องมีการยืนยันผู้ใช้เสมอ และข้อมูลเข้าสู่ระบบทั้งหมดจะแสดงในการตั้งค่าบัญชีของผู้ใช้ แต่สมมติฐานทั้ง 2 อย่างนี้ใช้ไม่ได้กับคีย์ข้อมูลเข้าสู่ระบบการกู้คืนที่ไม่ได้จัดการโดยผู้ใช้

ทีม Uber แก้ปัญหานี้ด้วยการเปลี่ยนแปลงบริการ WebAuthn เพียงเล็กน้อย สร้างประเภทข้อมูลเข้าสู่ระบบใหม่เพื่อแยกความแตกต่างระหว่างพาสคีย์กับข้อมูลเข้าสู่ระบบการกู้คืน และประมวลผลอย่างเหมาะสม

การจัดการวงจรของข้อมูลเข้าสู่ระบบการกู้คืน

วิศวกรของ Uber พบความท้าทายหลายประการในการจัดการคีย์ข้อมูลเข้าสู่ระบบในแบ็กเอนด์ โดยได้รับการสนับสนุนเฉพาะทางจาก Ryan O’Laughlin วิศวกรแบ็กเอนด์

  • การป้องกันคีย์ที่ไม่มีเจ้าของ: ความท้าทายที่สำคัญคือการกำหนดกลยุทธ์สำหรับการลบคีย์สาธารณะที่ลงทะเบียนเพื่อป้องกันไม่ให้คีย์เหล่านั้นกลายเป็น "คีย์ที่ไม่มีเจ้าของ" ตัวอย่างเช่น การถอนการติดตั้งแอปจะลบข้อมูลเข้าสู่ระบบในเครื่อง แต่เนื่องจากการดำเนินการนี้ไม่ได้ส่งสัญญาณไปยังแบ็กเอนด์ จึงทำให้มีคีย์ที่ไม่ได้ใช้ในเซิร์ฟเวอร์
  • การปรับอายุการใช้งานของคีย์: คีย์ต้องมี "Time to Live (TTL)" นานพอที่จะจัดการกรณีที่ซับซ้อน เช่น หากผู้ใช้สำรองและกู้คืนข้อมูล แล้วออกจากระบบจากอุปกรณ์เครื่องเก่าด้วยตนเอง ระบบจะลบคีย์ออกจากอุปกรณ์เครื่องเก่าดังกล่าว อย่างไรก็ตาม คีย์จะต้องยังคงใช้งานได้บนเซิร์ฟเวอร์เพื่อให้ยังคงใช้อุปกรณ์ใหม่ได้
  • การรองรับอุปกรณ์หลายเครื่อง: เนื่องจากผู้ใช้อาจมีอุปกรณ์หลายเครื่อง (และอาจเริ่มการสำรองข้อมูลและกู้คืนจากอุปกรณ์ใดก็ได้) แบ็กเอนด์จึงต้องรองรับข้อมูลเข้าสู่ระบบการกู้คืนหลายรายการต่อผู้ใช้ (1 รายการต่ออุปกรณ์)

วิศวกรของ Uber ได้แก้ไขความท้าทายเหล่านี้ด้วยการกำหนดกฎสำหรับการลบคีย์ฝั่งเซิร์ฟเวอร์ตามการลงทะเบียนข้อมูลเข้าสู่ระบบใหม่และการใช้งานข้อมูลเข้าสู่ระบบ

ฟีเจอร์นี้ผ่านกระบวนการออกแบบจนถึงการนำส่งในกระบวนการพัฒนาและการทดสอบอย่างรวดเร็วในระยะเวลา 2 เดือน หลังจากนั้น การทดสอบ A/B เป็นเวลา 5 สัปดาห์ (ระยะเวลาในการตรวจสอบฟีเจอร์กับผู้ใช้) ก็เป็นไปอย่างราบรื่นและให้ผลลัพธ์ที่ปฏิเสธไม่ได้  

ป้องกันไม่ให้ผู้ใช้เลิกใช้บริการด้วยการกู้คืนข้อมูลเข้าสู่ระบบ

การยกเลิกการเข้าสู่ระบบด้วยตนเองในอุปกรณ์ใหม่ช่วยให้ Uber รักษาผู้ใช้ที่อาจละทิ้งขั้นตอนการลงชื่อเข้าใช้ในอุปกรณ์ใหม่ไว้ได้ ความสะดวกสบายที่เพิ่มขึ้นของลูกค้าสะท้อนให้เห็นในการปรับปรุงที่หลากหลาย และแม้ว่าการปรับปรุงเหล่านี้อาจดูเล็กน้อยเมื่อมองผ่านๆ แต่ก็ส่งผลอย่างมากต่อฐานผู้ใช้ของ Uber

  • การเข้าสู่ระบบด้วยตนเองลดลง 3.4% (OTP ทาง SMS, รหัสผ่าน, การเข้าสู่ระบบด้วยบัญชีโซเชียล)
  • ลดค่าใช้จ่าย 1.2% สำหรับการเข้าสู่ระบบที่ต้องใช้ OTP ทาง SMS
  • อัตราการเข้าถึงของ Uber เพิ่มขึ้น 0.575% (% ของอุปกรณ์ที่เข้าถึงหน้าจอหลักของแอปได้สำเร็จ)
  • อุปกรณ์ที่มีการเดินทางเสร็จสมบูรณ์เพิ่มขึ้น 0.614% 

ปัจจุบันฟีเจอร์กู้คืนข้อมูลเข้าสู่ระบบกำลังจะกลายเป็นส่วนมาตรฐานของแอป Uber สำหรับผู้โดยสาร โดยมีผู้ใช้กว่า 95% ในกลุ่มทดลองที่ลงทะเบียนแล้ว 

uber-devices.png

ในระหว่างการตั้งค่าอุปกรณ์ใหม่ ผู้ใช้จะกู้คืนข้อมูลแอปและข้อมูลเข้าสู่ระบบจากข้อมูลสำรองได้ หลังจากเลือก Uber เพื่อกู้คืนและกระบวนการเบื้องหลังเสร็จสิ้นแล้ว แอปจะลงชื่อเข้าใช้ให้ผู้ใช้ในอุปกรณ์ใหม่โดยอัตโนมัติเมื่อเปิดแอปเป็นครั้งแรก

image_thomas.png

ผลกระทบที่มองไม่เห็นแต่ยิ่งใหญ่ของการกู้คืนข้อมูลเข้าสู่ระบบ

ในอีกไม่กี่เดือนข้างหน้า Uber มีแผนที่จะขยายการผสานรวมฟีเจอร์กู้คืนข้อมูลเข้าสู่ระบบ จากการคาดการณ์ผลลัพธ์ของการทดลองดังกล่าว ทีมคาดว่าการเปลี่ยนแปลงนี้จะช่วยลดการเข้าสู่ระบบด้วยตนเองได้ 4 ล้านครั้งต่อปี การลดความซับซ้อนในการเข้าถึงแอปและการขจัดปัญหาสำคัญช่วยให้บริษัทสร้างฐานลูกค้าที่พึงพอใจและภักดีมากขึ้นได้ทีละเที่ยว

"การผสานรวม RestoreCredentials ของ Google ช่วยให้เรามอบประสบการณ์การใช้งานที่ราบรื่นและ "ใช้งานได้ทันที" ตามที่ผู้ใช้คาดหวังไว้ในอุปกรณ์เครื่องใหม่" Matt Mueller หัวหน้าฝ่ายจัดการผลิตภัณฑ์ (ข้อมูลประจำตัวหลัก) ที่ Uber กล่าว ซึ่งส่งผลโดยตรงต่อการเพิ่มรายได้ที่วัดผลได้ และพิสูจน์ให้เห็นว่าการลดความยุ่งยากในการเข้าสู่ระบบเป็นกุญแจสำคัญในการมีส่วนร่วมของผู้ใช้และการคงผู้ใช้ไว้

พร้อมยกระดับประสบการณ์การเข้าสู่ระบบของแอปแล้วใช่ไหม

ดูวิธีมอบประสบการณ์การเข้าสู่ระบบที่ราบรื่นเมื่อเปลี่ยนอุปกรณ์ด้วยกู้คืนข้อมูลเข้าสู่ระบบ และอ่านเพิ่มเติมในบล็อกโพสต์ ใน Android Studio Otter เวอร์ชัน Canary ล่าสุด คุณสามารถตรวจสอบการผสานรวมได้ เนื่องจากฟีเจอร์ใหม่จะช่วยจำลองกลไกการสำรองข้อมูลและการกู้คืน 

หากเพิ่งเริ่มใช้ Credential Manager โปรดดูเอกสารประกอบ Codelab และตัวอย่างอย่างเป็นทางการของเราเพื่อรับความช่วยเหลือในการผสานรวม

เขียนโดย

อ่านต่อ