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

كيف استفادت FotMob من ميزة "العثور على الأجهزة القريبة" لتحقيق معدّل استخدام قياسي لتطبيقها على Wear OS؟

قراءة لمدة 3 دقائق
Garan Jenkin
مهندسة علاقات المطوّرين

حقّق تطبيق FotMob مؤخرًا أكبر زيادة في عدد عمليات التثبيت على Wear OS في يوم واحد خلال 5 سنوات، حيث بلغ عدد عمليات التثبيت ضِعفَي أو ثلاثة أضعاف المتوسط اليومي. والسبب هو توفير عملية تثبيت بسيطة تعمل من خلال جهاز آخر تساعد المستخدمين في العثور على تطبيق Wear OS مباشرةً من هواتفهم.

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

fotmob-side-by-side.png

بالإضافة إلى تطبيق الأجهزة الجوّالة، يتوفّر تطبيق FotMob على Wear OS، ما يتيح للمستخدمين البقاء على اطّلاع على آخر النتائج مباشرةً من معصمهم.

يقول روي سولبرغ، المسؤول الفني عن Android في FotMob: "يتابع العديد من مستخدمي FotMob المباريات مباشرةً، ويحدث ذلك غالبًا عندما لا يستخدمون هواتفهم بشكل نشط". "توفّر Wear OS للمعجبين طريقة سريعة للاطّلاع على النتائج وأحداث المباريات وآخر الأخبار مباشرةً من معصمهم، لذا رأينا أنّها امتداد طبيعي لتجربة FotMob".

من خلال توفير تجربة سلسة على مختلف أشكال الأجهزة، تضمن FotMob أن يواصل المستخدمون الاستفادة إلى أقصى حد من منصتها، وبأكثر الطرق ملاءمة، ويشمل ذلك ضمان مزامنة الإعدادات والإعدادات المفضَّلة، مثل الفِرق المفضّلة، على جميع الأجهزة.

فجوة الاستكشاف

على الرغم من أنّ العديد من مستخدمي FotMob لديهم جهاز Wear OS، أدرك فريق FotMob أنّ بعض المستخدمين قد لا يكونون على دراية بتطبيق Wear OS. وقد دفع ذلك الفريق إلى التفكير في الخيارات الفنية لكيفية تعريف المستخدمين بتطبيق Wear OS وتثبيته في النهاية مباشرةً من داخل تطبيق الهاتف الأساسي.

لحسن الحظ، توفّر مكتبة Wearable على Android وWear OS بالضبط وحدات الإنشاء التي احتاج إليها تطبيق FotMob لإنشاء تجربة داخل التطبيق تتيح للمستخدمين إجراء ذلك.

رصد أجهزة Wear OS المؤهَّلة

ضمن تطبيق FotMob على الهاتف، استخدم الفريق NodeClient لتحديد أجهزة Wear OS المرتبطة، وهي الأجهزة المرشّحة لتثبيت تطبيق Wear OS:

val connectedNodes = nodeClient.connectedNodes.await()

بالإضافة إلى ذلك، حدّد الفريق إمكانية ضمن تطبيق Wear OS تشير إلى أنّه تم تثبيت تطبيق FotMob على الجهاز. يتم تحديد ذلك كمورد XML في حزمة Wear OS، ثم يتم طلبه داخل تطبيق الهاتف:

val nodesWithApp = capabilityClient
    .getCapability(CAPABILITY_WEAR_APP, CapabilityClient.FILTER_REACHABLE)
    .await()
    .nodes

من خلال البحث عن العُقد التي لا تتضمّن هذه الإمكانية فقط، تأكّد الفريق من أنّ تطبيق FotMob على الهاتف لا يعرض سوى أجهزة Wear OS التي لا يتوفّر عليها التطبيق.

بدء عملية التثبيت

صمّم فريق FotMob إشعارًا تعليميًا على نصف صفحة يتيح للمستخدم التعرّف بسرعة على الفرصة، ما يسمح له إما ببدء عملية التثبيت أو تجاهل الإشعار. وقد تضمّنت هذه الصفحة لقطة شاشة بارزة لتجربة Wear OS، ما يتيح للمستخدم معرفة الشكل الذي قد يبدو عليه التطبيق على ساعته.

fotmob_wear_wrist.png

لبدء عملية التثبيت، يستخدم التطبيق واجهة برمجة التطبيقات RemoteActivityHelper لتشغيل "متجر Play" على الساعة:

val remoteActivityHelper = RemoteActivityHelper(context)

remoteActivityHelper.startRemoteActivity(
    Intent(Intent.ACTION_VIEW)
        .setData("market://details?id=${context.packageName}".toUri())
        .addCategory(Intent.CATEGORY_BROWSABLE),
    nodeId
).await()

النتائج

يقول روي: "لقد سهّلت Wearable APIs عملية التنفيذ". "من خلال إمكانية رصد الأجهزة المتصلة والاستعلام عن إمكاناتها، تمكّنا من تحديد ما إذا كان تطبيق الساعة الذكية مثبَّتًا من قبل بسرعة. ومنذ ذلك الحين، كان التركيز بشكل أساسي على تصميم طلب يبدو مفيدًا للمستخدمين بدلاً من أن يكون مزعجًا". 

شهد طرح ميزة التثبيت على أجهزة متعددة أكبر زيادة في يوم واحد في عدد الجمهور الذي ثبّت تطبيق FotMob على Wear OS خلال 5 سنوات، أي بزيادة تتراوح بين ضِعفَي معدّل التثبيت العادي و3 أضعافه. في غضون 48 ساعة من وصول نسبة الطرح إلى %100، سجّل تطبيق الساعة الذكية أكثر من 1,500 عملية تثبيت جديدة¹.

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

تطوّر عمليات التثبيت على عدة أجهزة

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

في ما يلي مثال على إضافة رسالة تطلب التثبيت في النقطة المناسبة في تطبيقك:

val crossDevicePromptManager = CrossDevicePromptManagerFactory.create(activity)
val request = CrossDevicePromptInstallationRequest.create()

try {
    val info = crossDevicePromptManager.requestInstallationPromptFlow(request).await()
    crossDevicePromptManager.launchPromptFlow(activity, info).await()
} catch (e: CrossDevicePromptException) {
    Log.e(TAG, "Cross-device prompt failed with error: ${e.errorCode}", e)
}

الخطوات التالية: ابدأ إنشاء رحلة مخصّصة لك على الأجهزة المختلفة اليوم

يمكنك الاطّلاع على نموذج DataLayer لمعرفة المزيد حول كيفية إضافة وظائف تعمل من خلال جهاز آخر إلى تطبيقك، واستكشاف مكتبة "طلبات التثبيت داخل التطبيق" الجديدة التي توفّر لك خيارات حول كيفية مساعدة المستخدمين في تثبيت التطبيق من خلال جهاز آخر.

[1]. بيانات التثبيت من Play Console

من تأليف:

متابعة القراءة