איך חברת Uber מצמצמת 4 מיליון כניסות ידניות בשנה באמצעות Restore Credentials API
משך הקריאה: 5 דקות
Uber היא החברה הגדולה בעולם לנסיעות שיתופיות. היא מסיעה מיליוני אנשים ממקום למקום, וגם מספקת שירותי משלוחי אוכל, הסעות לבדיקות רפואיות ולוגיסטיקה של הובלת מטענים. כדי שהאפליקציה תצליח, חשוב שהגישה אליה תהיה פשוטה. כשמשתמשים עוברים למכשיר חדש, הם מצפים למעבר חלק בלי צורך להתחבר מחדש לאפליקציית Uber או לעבור אימות באמצעות סיסמה חד-פעמית שנשלחת ב-SMS. התחלופה התכופה הזו של מכשירים מציבה אתגר, אבל גם הזדמנות לשימור משתמשים חזק.
כדי לשמור על רציפות השימוש, המהנדסים של Uber פנו לתכונה שחזור פרטי הכניסה, כלי חיוני בתקופה שבה 40% מהאנשים בארצות הברית מחליפים את הסמארטפון שלהם מדי שנה. אחרי שהם העריכו את דרישות המשתמשים ויצרו אב טיפוס של הקוד, הם הוסיפו תמיכה בשחזור פרטי הכניסה באפליקציית Uber לנוסעים. כדי לוודא ששחזור פרטי הכניסה עוזר להסיר את החיכוך בכניסות חוזרות, הצוות של Uber ערך ניסוי A/B מוצלח במשך חמישה שבועות. השילוב הוביל לצמצום במספר הכניסות הידניות. לפי ההערכות, בסיס המשתמשים העצום של Uber יחסוך 4 מיליון כניסות ידניות בשנה.
התחברות חלקה יותר באמצעות שחזור פרטי הכניסה
בעבר היו ניסיונות לשחזר חשבונות במכשירים חדשים באמצעות פתרונות כמו גיבוי נתונים רגיל ו-BlockStore, אבל שני הפתרונות האלה דרשו שיתוף של אסימוני אימות ישירות ממכשיר המקור למכשיר היעד. מכיוון שפרטי האסימון רגישים מאוד, הפתרונות האלה משמשים רק במידה מסוימת, כדי למלא אוטומטית מראש את שדות ההתחברות במכשיר היעד ולהפחית את החיכוך במהלך תהליכי הכניסה. גם מפתחות גישה משמשים כשיטת התחברות מאובטחת ומהירה, אבל המשתמשים צריכים ליזום את השימוש בהם, ולכן הם פחות יעילים במעבר חלק בין מכשירים.
"חלק מהמשתמשים לא משתמשים באפליקציית Uber על בסיס יומי, אבל הם מצפים שהיא פשוט תעבוד כשהם צריכים אותה", אמר תומאס אוליביירה הורטה, מהנדס Android ב-Uber. "כשאתם פותחים את האפליקציה בטלפון Android החדש שלכם כדי להזמין נסיעה, ומגלים שאתם לא מחוברים לחשבון, זו יכולה להיות חוויה לא נעימה ומרתיעה".
בעזרת שחזור פרטי הכניסה, המהנדסים הצליחו לגשר על הפער הזה. ה-API יוצר אסימון ייחודי במכשיר הישן, שמועבר בצורה חלקה ושקטה למכשיר החדש כשהמשתמש משחזר את נתוני האפליקציה במהלך תהליך ההגדרה הרגיל. התהליך הזה מתבסס על מנגנון הגיבוי והשחזור המובנה של Android OS, ומבטיח העברה בטוחה של מפתח השחזור יחד עם נתוני האפליקציה. הגישה היעילה הזו מבטיחה העברת חשבון פשוטה ובטוחה, שעומדת בדרישות האבטחה של Uber בלי צורך בהזנת מידע נוסף מצד המשתמשים או בהוצאות פיתוח נוספות.
הערה: מפתחות שחזור ומפתחות גישה משתמשים באותה הטמעה בסיסית של השרת. עם זאת, כששומרים אותם במסד הנתונים, צריך להבדיל ביניהם. ההבחנה הזו חשובה כי המשתמשים יכולים לנהל ישירות את מפתחות הגישה שהם יצרו, אבל מפתחות השחזור מנוהלים על ידי המערכת ומוסתרים מממשק המשתמש.
"אחרי שהטמענו את התכונה "שחזור פרטי הכניסה" באפליקציית Uber לנוסעים, התחלנו לראות שימוש עקבי", אמר תומאס. "בשלב ההשקה הנוכחי, 10,000 משתמשים ייחודיים ביום בממוצע נכנסו לחשבון באמצעות התכונה "שחזור פרטי הכניסה", ונהנו מחוויה חלקה בפתיחת האפליקציה בפעם הראשונה במכשיר חדש. אנחנו מצפים שהמספר הזה יכפיל את עצמו אחרי שנרחיב את ההשקה לכל בסיס המשתמשים שלנו".
שיקולים להטמעה
"השילוב היה די קל, עם שינויים קלים בצד של Android, לפי הקוד לדוגמה והמסמכים", אמר תומאס. "האפליקציה שלנו כבר השתמשה ב-Credential Manager למפתחות גישה, וה-backend דרש רק כמה שינויים קטנים. לכן, היינו צריכים רק לעדכן את התלות של Credential Manager לגרסה העדכנית כדי לקבל גישה ל-Restore Credentials API החדש. יצרנו מפתח שחזור דרך אותו תהליך ליצירת מפתח גישה. כשהאפליקציה שלנו מופעלת במכשיר חדש, היא בודקת באופן יזום אם המפתח הזה קיים על ידי ניסיון לאחזר את מפתח הגישה באופן שקט. אם מפתח השחזור נמצא, הוא משמש באופן מיידי לכניסה אוטומטית של המשתמש, בלי צורך בכניסה ידנית".
במהלך תהליך הפיתוח, המהנדסים של Uber נתקלו בכמה אתגרים בהטמעה – החל מבחירת נקודת הכניסה הנכונה ועד לניהול מחזור החיים של פרטי הכניסה בקצה העורפי.
בחירת נקודת הכניסה לשחזור פרטי הכניסה
המהנדסים שקלו בקפידה את היתרונות והחסרונות של חוויית משתמש חלקה לחלוטין לעומת פשטות ההטמעה, כשהם בחרו באיזו נקודת כניסה של "שחזור פרטי הכניסה" להשתמש לשחזור. בסופו של דבר, הם בחרו בפתרון שמציע איזון אידיאלי.
"זה יכול לקרות כשהאפליקציה מופעלת או ברקע בזמן השחזור וההגדרה של המכשיר, באמצעות BackupAgent", אמר תומאס. "נקודת הכניסה ברקע חלקה יותר למשתמש, אבל היא הציבה אתגרים בפעולות ברקע ודרשה שימוש ב-BackupAgent API, מה שהיה מוביל למורכבות מוגברת בבסיס קוד גדול כמו של Uber". הם החליטו להטמיע את התכונה במהלך ההפעלה הראשונה של האפליקציה, שהייתה מהירה משמעותית מההתחברות הידנית.
פתרון בעיות בצד השרת
במהלך השילוב עם ממשקי ה-API של WebAuthn בקצה העורפי, נתקלנו בכמה אתגרים בצד השרת. הסיבה לכך היא שהעיצוב של ממשקי ה-API האלה התבסס על ההנחה שתמיד יידרש אימות משתמש, וכל פרטי הכניסה יופיעו בהגדרות החשבון של המשתמש. שתי ההנחות האלה לא התאימו למפתחות של "שחזור פרטי הכניסה" שלא מנוהלים על ידי המשתמש.
כדי לפתור את הבעיה, הצוות של Uber ביצע שינויים קלים בשירותי WebAuthn, ויצר סוגים חדשים של פרטי כניסה כדי להבדיל בין מפתחות גישה לבין שחזור פרטי הכניסה ולעבד אותם בהתאם.
ניהול מחזור החיים של שחזור פרטי הכניסה
המהנדסים של Uber נתקלו בכמה אתגרים בניהול מפתחות פרטי הכניסה בקצה העורפי, וקיבלו תמיכה מיוחדת ממהנדס הקצה העורפי ריאן אולאפלין (Ryan O’Laughlin):
- מניעת מפתחות מיותמים: אתגר משמעותי היה להגדיר אסטרטגיה למחיקת מפתחות ציבוריים רשומים כדי למנוע מהם להפוך ל "מיותמים". לדוגמה, הסרת האפליקציה מוחקת את פרטי הכניסה המקומיים, אבל הפעולה הזו לא שולחת אות לקצה העורפי, ולכן נשאר מפתח לא בשימוש בשרת.
- איזון משך החיים של המפתחות: המפתחות היו צריכים "זמן חיים" ארוך מספיק כדי לטפל במקרי קצה. לדוגמה, אם משתמש מבצע גיבוי ושחזור, ואז מתנתק באופן ידני מהמכשיר הישן, המפתח נמחק מהמכשיר הישן. עם זאת, המפתח חייב להישאר תקף בשרת כדי שהמכשיר החדש עדיין יוכל להשתמש בו.
- תמיכה בכמה מכשירים: יכול להיות שלמשתמש יש כמה מכשירים (והוא יכול להתחיל גיבוי ושחזור מכל אחד מהם), לכן ה-backend היה צריך לתמוך בכמה פרטי כניסה לשחזור לכל משתמש (אחד לכל מכשיר).
המהנדסים של Uber התמודדו עם האתגרים האלה על ידי קביעת כללים למחיקת מפתחות בצד השרת, על סמך רישום של פרטי כניסה חדשים והשימוש בפרטי הכניסה.
התכונה עברה משלב התכנון לשלב ההשקה בתהליך פיתוח ובדיקה מהיר של חודשיים. לאחר מכן, ניסוי A/B שנמשך חמישה שבועות (הזמן שנדרש כדי לאמת את התכונה עם המשתמשים) עבר בצורה חלקה והניב תוצאות חד-משמעיות.
איך למנוע נטישת משתמשים באמצעות שחזור פרטי הכניסה
הכניסה הידנית למכשירים חדשים בוטלה, וכך Uber שימרה משתמשים שאחרת היו נוטשים את תהליך הכניסה במכשיר חדש. השיפור הזה בחוויית הלקוח בא לידי ביטוי במגוון רחב של שיפורים, ולמרות שבמבט ראשון הם נראים קלים, ההשפעה שלהם עצומה בהתחשב בהיקף של בסיס המשתמשים של Uber:
- ירידה של 3.4% בכניסות ידניות (סיסמה חד-פעמית ב-SMS, סיסמאות, התחברות דרך רשתות חברתיות).
- ירידה של 1.2% בהוצאות על התחברויות שדורשות סיסמה חד-פעמית ב-SMS.
- עלייה של 0.575% בשיעור הגישה של Uber (אחוז המכשירים שהגיעו בהצלחה למסך הבית של האפליקציה).
- עלייה של 0.614% במספר המכשירים שבהם הושלמו נסיעות.
היום, התכונה "שחזור פרטי הכניסה" בדרך להפוך לחלק סטנדרטי באפליקציית Uber לנוסעים, עם יותר מ-95% מהמשתמשים בקבוצת הניסוי שנרשמו.
במהלך הגדרת מכשיר חדש, המשתמשים יכולים לשחזר את נתוני האפליקציות ואת פרטי הכניסה מגיבוי. אחרי שבוחרים את Uber לשחזור והתהליך ברקע מסתיים, האפליקציה תכניס את המשתמש לחשבון באופן אוטומטי בהפעלה הראשונה של המכשיר החדש.
ההשפעה הבלתי נראית אך העצומה של שחזור פרטי הכניסה
בחודשים הקרובים, Uber מתכננת להרחיב את השילוב של שחזור פרטי הכניסה. לפי התוצאות של תקופת הניסיון, הם מעריכים שהשינוי יחסוך 4 מיליון התחברויות ידניות בשנה. הם מפשטים את הגישה לאפליקציה ומסירים נקודת חיכוך משמעותית, וכך בונים באופן פעיל בסיס לקוחות מרוצה ונאמן יותר, נסיעה אחר נסיעה.
"השילוב של RestoreCredentials של Google אפשר לנו לספק את החוויה החלקה של'זה פשוט עובד ' שהמשתמשים שלנו מצפים לה במכשיר חדש", אמר מאט מולר, מנהל מוצר ראשי (זהות ליבה) ב-Uber. "השינוי הזה הוביל ישירות לעלייה משמעותית בהכנסות, והוכיח שהפחתת החיכוך בתהליך ההתחברות היא המפתח למעורבות ולשימור של המשתמשים".
רוצים לשפר את חוויית ההתחברות באפליקציה?
בפוסט בבלוג מוסבר איך להשתמש בתכונה שחזור פרטי הכניסה כדי לאפשר למשתמשים להתחבר בצורה חלקה כשהם מחליפים מכשירים. בגרסת הקנרית האחרונה של Android Studio Otter אפשר לאמת את השילוב, כי תכונות חדשות עוזרות לדמות את מנגנוני הגיבוי והשחזור.
אם אתם משתמשים חדשים ב-Credential Manager, אתם יכולים לעיין במסמכי התיעוד הרשמיים, ב-Codelab ובדוגמאות שלנו כדי לקבל עזרה בשילוב.
-
מקרים לדוגמהוואטסאפ היא פלטפורמת ההודעות הגדולה בעולם, עם מיליארדי משתמשים ברחבי העולם. היא כלי התקשורת שמשמש כברירת מחדל אנשים באזורים שונים, ומחברת בין משתמשים באמצעות הודעות פרטיות, אמינות ומאובטחות.
Niharika Arora, Tracy Agyemang, Mayank Jain • משך הקריאה: 8 דקות -
מקרים לדוגמהמבזקי חדשות, בידור, ספורט ופוליטיקה – X היא אפליקציה של רשת חברתית שנועדה לעזור לכמעט 500 מיליון משתמשים ברחבי העולם לקבל את הסיפור המלא עם כל התגובות בשידור חי.
Niharika Arora, Tracy Agyemang • משך הקריאה: 3 דקות -
מקרים לדוגמה Grab מפחיתה את שגיאות ה-ANR ב-32% ומשפרת את זמן ההפעלה ב-35% באמצעות R8 ואופטימיזציה מבוססת-פרופיל
Grab היא אפליקציית-העל המובילה בדרום-מזרח אסיה, שמציעה משלוחים, ניידות ושירותים פיננסיים למיליוני משתמשים בשמונה מדינות באמצעות אפליקציה אחת.
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • משך הקריאה: 5 דקות
רוצים לקבל טיפים עדכניים לפיתוח Android ישירות לאימייל כל שבוע?