دراسات الحالة

كيف تخفّض شركة Uber عمليات تسجيل الدخول اليدوية بمقدار 4 ملايين عملية سنويًا باستخدام Restore Credentials API

مدّة القراءة: 5 دقائق
عرض الملف الشخصي لـ "نيهاريكا أرورا" عرض الملف الشخصي لـ "تريسي أجيمانغ"
Niharika Arora و Tracy Agyemang

‫Uber هي أكبر شركة في العالم لخدمات النقل التشاركي، وتساعد الملايين من الأشخاص في التنقّل من مكان إلى آخر، كما توفّر خدمات توصيل الطعام والنقل في مجال الرعاية الصحية والخدمات اللوجستية للشحن. وتُعدّ سهولة الوصول أمرًا بالغ الأهمية لنجاح هذه الميزة، فعندما ينتقل المستخدمون إلى جهاز جديد، يتوقّعون انتقالاً سلسًا بدون الحاجة إلى تسجيل الدخول مرة أخرى إلى تطبيق Uber أو إجراء مصادقة بكلمة مرور صالحة لمرة واحدة عبر الرسائل القصيرة. ويشكّل هذا التغيير المتكرّر للأجهزة تحديًا، فضلاً عن فرصة للحفاظ على المستخدمين بشكل كبير. 

للحفاظ على استمرارية تجربة المستخدم، لجأ مهندسو Uber إلى ميزة استعادة بيانات الاعتماد، وهي أداة أساسية في وقت يستبدل فيه% 40 من الأشخاص في الولايات المتحدة هواتفهم الذكية كل عام. بعد تقييم طلبات المستخدمين وإنشاء نموذج أوّلي للرمز البرمجي، أضاف الفريق ميزة "استعادة بيانات الاعتماد" في تطبيق Uber rider. وللتحقّق من أنّ استعادة بيانات الاعتماد تساعد في إزالة الصعوبات التي تواجه المستخدمين عند إعادة تسجيل الدخول، أجرى فريق Uber تجربة A/B ناجحة لمدة خمسة أسابيع. أدّى هذا الدمج إلى تقليل عمليات تسجيل الدخول اليدوية، وعند تطبيقه على قاعدة مستخدمي Uber الضخمة، من المتوقّع أن يمنع 4 ملايين عملية تسجيل دخول يدوية سنويًا.

التخلّص من صعوبات تسجيل الدخول باستخدام ميزة "استعادة بيانات الاعتماد"

restore-credentials.gif

في السابق، كانت هناك محاولات لاستعادة الحسابات على الأجهزة الجديدة باستخدام حلول مثل الاحتفاظ بنسخة احتياطية من البيانات العادية وBlockStore، على الرغم من أنّ كلا الحلّين يتطلّبان مشاركة رموز المصادقة مباشرةً من الجهاز المصدر إلى الجهاز الوجهة. بما أنّ معلومات الرموز المميّزة حساسة للغاية، لا تُستخدم هذه الحلول إلا إلى حدٍّ ما، وذلك لتعبئة حقول تسجيل الدخول مسبقًا على الجهاز الوجهة وتقليل بعض الصعوبات أثناء عمليات تسجيل الدخول. تُستخدم مفاتيح المرور أيضًا لتوفير طريقة تسجيل دخول آمنة وسريعة، ولكن طبيعتها التي يبدأها المستخدم تحدّ من تأثيرها في عمليات نقل البيانات السلسة بين الأجهزة.

يقول "توماس أوليفيرا هورتا"، مهندس Android في شركة Uber: "لا يستخدم بعض المستخدمين تطبيق Uber يوميًا، ولكنهم يتوقعون أن يعمل بشكل جيد عندما يحتاجون إليه". "إنّ اكتشاف أنّك سجّلت الخروج من حسابك عند فتح التطبيق لطلب رحلة على هاتف Android الجديد قد يكون تجربة غير سارّة ومزعجة".

من خلال ميزة استعادة بيانات الاعتماد، تمكّن المهندسون من سدّ هذه الفجوة. تنشئ واجهة برمجة التطبيقات رمزًا مميّزًا فريدًا على الجهاز القديم، ويتم نقله بسلاسة وبشكل غير مرئي إلى الجهاز الجديد عندما يستعيد المستخدم بيانات التطبيق أثناء عملية الإعداد العادية. تستفيد هذه العملية من آلية الاحتفاظ بنسخة احتياطية والاستعادة الأصلية في نظام التشغيل Android، ما يضمن النقل الآمن لمفتاح الاستعادة مع بيانات التطبيق. يضمن هذا النهج المبسّط نقل الحسابات بطريقة بسيطة وآمنة، ما يلبّي متطلبات الأمان في Uber بدون الحاجة إلى أيّ إدخال إضافي من المستخدم أو أعباء تطوير إضافية.

ملاحظة: تستخدم مفاتيح الاسترداد ومفاتيح المرور عملية التنفيذ نفسها على الخادم الأساسي. ومع ذلك، عند حفظها في قاعدة البيانات، يجب التفريق بينها. هذا التمييز مهم لأنّ مفاتيح المرور التي ينشئها المستخدم يمكنه إدارتها مباشرةً، بينما تتم إدارة مفاتيح الاستعادة من خلال النظام وتكون مخفية عن واجهة المستخدم.

يقول "توماس": "بعد اعتماد ميزة "استعادة بيانات الاعتماد" في تطبيق Uber للركاب، بدأنا نلاحظ استخدامًا متسقًا". "سجّل ما متوسطه 10,000 مستخدم فريد يوميًا الدخول باستخدام ميزة "استعادة بيانات الاعتماد" في مرحلة الطرح الحالية، واستمتعوا بتجربة سلسة عند فتح التطبيق لأول مرة على جهاز جديد. ونتوقّع أن يتضاعف هذا الرقم بعد أن نوسّع نطاق طرح الميزة ليشمل قاعدة المستخدمين بأكملها".

image_thomas2.png

اعتبارات التنفيذ

يقول "توماس": "كانت عملية الدمج سهلة للغاية مع إجراء تعديلات طفيفة على Android باتّباع الرمز النموذجي والمستندات". "كان تطبيقنا يستخدم Credential Manager لمفاتيح المرور، ولم يتطلّب الخلفية سوى بعض التعديلات البسيطة. لذلك، كان علينا ببساطة تحديث تبعية Credential Manager إلى أحدث إصدار للوصول إلى واجهة برمجة التطبيقات Restore Credentials API الجديدة. أنشأنا مفتاح استعادة من خلال عملية إنشاء مفتاح المرور نفسها، وعند تشغيل تطبيقنا على جهاز جديد، يتحقّق التطبيق بشكل استباقي من هذا المفتاح من خلال محاولة استرداد مفتاح المرور بدون إشعار المستخدم. وإذا تم العثور على مفتاح الاستعادة، يتم استخدامه على الفور لتسجيل دخول المستخدم تلقائيًا، وتجاوز أي تسجيل دخول يدوي".

خلال عملية التطوير، واجه مهندسو Uber بعض التحديات أثناء التنفيذ، بدءًا من اختيار نقطة الدخول المناسبة وحتى إدارة مراحل نشاط بيانات الاعتماد في الخلفية.

اختيار نقطة الدخول إلى ميزة "استعادة بيانات الاعتماد"

درس المهندسون بعناية المفاضلات بين تجربة المستخدم السلسة تمامًا وبساطة التنفيذ عند اختيار نقطة الدخول التي سيتم استخدامها في ميزة "استعادة بيانات الاعتماد" للاسترداد. في النهاية، أعطت الأولوية لحلّ يوفّر توازنًا مثاليًا.

يقول "توماس": "يمكن أن يحدث ذلك أثناء تشغيل التطبيق أو في الخلفية أثناء استعادة الجهاز وإعداده، باستخدام BackupAgent". "تُعدّ نقطة الدخول لتسجيل الدخول في الخلفية أكثر سلاسة للمستخدم، ولكنّها واجهت تحديات في عمليات الخلفية والاستخدام المطلوب لواجهة برمجة التطبيقات BackupAgent API، ما كان سيؤدي إلى زيادة التعقيد في قاعدة رموز برمجية كبيرة مثل قاعدة رموز Uber." قرّروا تنفيذ الميزة أثناء تشغيل التطبيق لأول مرة، والذي كان أسرع بكثير من تسجيل الدخول اليدوي.

معالجة التحديات من جهة الخادم 

ظهرت بعض التحديات من جهة الخادم أثناء التكامل مع واجهات برمجة التطبيقات WebAuthn في الخلفية، لأنّ تصميمها افترض أنّ التحقّق من المستخدم سيكون مطلوبًا دائمًا، وأنّ جميع بيانات الاعتماد سيتم إدراجها في إعدادات حساب المستخدم. ولم ينجح أي من هذين الافتراضَين مع مفاتيح "استعادة بيانات الاعتماد" التي لا يديرها المستخدم.

حلّ فريق Uber هذه المشكلة من خلال إجراء تغييرات طفيفة على خدمات WebAuthn، وإنشاء أنواع جديدة من بيانات الاعتماد لتمييز مفاتيح المرور عن بيانات اعتماد الاستعادة ومعالجتها بشكل مناسب.

إدارة مراحل ميزة "استعادة بيانات الاعتماد"

واجه مهندسو Uber عدة تحديات في إدارة مفاتيح بيانات الاعتماد في الخلفية، مع دعم متخصص من مهندس الخلفية "ريان أولافلين":

  • منع المفاتيح المعزولة: تمثّل التحدي الكبير في تحديد استراتيجية لحذف المفاتيح العامة المسجّلة لمنعها من أن تصبح "معزولة". على سبيل المثال، يؤدي إلغاء تثبيت التطبيق إلى حذف بيانات الاعتماد المحلية، ولكن بما أنّ هذا الإجراء لا يرسل إشارة إلى الخلفية، فإنه يترك مفتاحًا غير مستخدَم على الخادم.
  • موازنة عمر المفتاح: كانت المفاتيح بحاجة إلى "مدة صلاحية" طويلة بما يكفي للتعامل مع الحالات الاستثنائية. على سبيل المثال، إذا أجرى المستخدم عملية الاحتفاظ بنسخة احتياطية والاستعادة، ثم سجّل الخروج يدويًا من الجهاز القديم، فسيتم حذف المفتاح من ذلك الجهاز القديم. ومع ذلك، يجب أن يظل المفتاح صالحًا على الخادم حتى يتمكّن الجهاز الجديد من استخدامه.
  • إتاحة استخدام أجهزة متعددة: بما أنّ المستخدم قد يكون لديه أجهزة متعددة (ويمكنه بدء عملية الاحتفاظ بنسخة احتياطية واستعادتها من أيّ منها)، كان على الخلفية إتاحة استخدام بيانات اعتماد استعادة متعددة لكل مستخدم (واحدة لكل جهاز).

تمكّن مهندسو Uber من مواجهة هذه التحديات من خلال وضع قواعد لحذف المفاتيح من جهة الخادم استنادًا إلى تسجيل بيانات الاعتماد الجديدة واستخدامها.

انتقلت الميزة من التصميم إلى التسليم في عملية تطوير واختبار سريعة مدتها شهران. بعد ذلك، تم إجراء تجربة A/B لمدة خمسة أسابيع (وهي فترة كافية للتحقّق من الميزة مع المستخدمين) بسلاسة وحقّقت نتائج لا يمكن إنكارها.  

منع تسرُّب المستخدمين باستخدام ميزة "استعادة بيانات الاعتماد"

من خلال إلغاء عمليات تسجيل الدخول اليدوية على الأجهزة الجديدة، احتفظت Uber بالمستخدمين الذين كان من الممكن أن يتخلّوا عن عملية تسجيل الدخول على جهاز جديد. وقد انعكس هذا التحسّن في تسهيل تجربة العملاء في مجموعة واسعة من التحسينات، وعلى الرغم من أنّها قد تبدو بسيطة للوهلة الأولى، فإنّ تأثيرها هائل على مستوى قاعدة مستخدمي Uber: 

  • انخفاض بنسبة% 3.4 في عمليات تسجيل الدخول اليدوية (كلمة المرور لمرة واحدة عبر الرسائل القصيرة، وكلمات المرور، وتسجيل الدخول باستخدام حسابات وسائل التواصل الاجتماعي)
  • انخفاض بنسبة% 1.2 في نفقات عمليات تسجيل الدخول التي تتطلّب كلمة مرور لمرة واحدة عبر الرسائل القصيرة SMS
  • زيادة بنسبة %0.575 في معدّل الوصول إلى تطبيق Uber (النسبة المئوية للأجهزة التي وصلت بنجاح إلى الشاشة الرئيسية للتطبيق)
  • ارتفاع بنسبة% 0.614 في عدد الأجهزة التي أكملت الرحلات 

واليوم، أصبحت واجهة Restore Credentials في طريقها لتصبح جزءًا أساسيًا من تطبيق Uber للركاب، حيث تم تسجيل أكثر من % 95 من المستخدمين في المجموعة التجريبية. 

uber-devices.png

أثناء إعداد جهاز جديد، يمكن للمستخدمين استعادة بيانات التطبيقات وبيانات الاعتماد من نسخة احتياطية. بعد اختيار Uber للاستعادة وانتهاء العملية في الخلفية، سيسجّل التطبيق دخول المستخدم تلقائيًا عند تشغيله لأول مرة على الجهاز الجديد.

image_thomas.png

التأثير غير المرئي والفعّال لميزة "استعادة بيانات الاعتماد"

في الأشهر المقبلة، تخطّط Uber لتوسيع نطاق دمج ميزة "استعادة بيانات الاعتماد". وبناءً على نتائج الفترة التجريبية، يتوقّع الفريق أنّ هذا التغيير سيؤدي إلى إلغاء 4 ملايين عملية تسجيل دخول يدوية سنويًا. ومن خلال تبسيط الوصول إلى التطبيق وإزالة إحدى المشاكل الرئيسية، تعمل الشركة بنشاط على بناء قاعدة عملاء أكثر رضا وولاءً، رحلة تلو الأخرى.

قال "مات مولر"، مدير المنتجات الرئيسي (الهوية الأساسية) في Uber: "أتاح لنا دمج واجهة برمجة التطبيقات RestoreCredentials من Google تقديم تجربة سلسة تلبي توقعات المستخدمين على الأجهزة الجديدة". "وقد أدى ذلك مباشرةً إلى زيادة قابلة للقياس في الإيرادات، ما يثبت أنّ تقليل صعوبات تسجيل الدخول هو مفتاح تفاعل المستخدمين والاحتفاظ بهم".

هل أنت على استعداد لتحسين تجربة تسجيل الدخول إلى تطبيقك؟

تعرَّف على كيفية تسهيل تجربة تسجيل الدخول السلسة عند تبديل الأجهزة باستخدام ميزة استعادة بيانات الاعتماد واقرأ المزيد في منشور المدوّنة. في أحدث إصدار Canary من استوديو Android Otter، يمكنك التحقّق من عملية الدمج، لأنّ الميزات الجديدة تساعد في محاكاة آليات الاحتفاظ بنسخة احتياطية والاستعادة. 

إذا كنت مستخدمًا جديدًا لواجهة Credential Manager، يمكنك الرجوع إلى المستندات الرسمية والدرس التطبيقي حول الترميز والنماذج للحصول على مساعدة بشأن عملية الدمج

من كتابة:
متابعة القراءة