מקרים לדוגמה

איך FotMob השתמשה בחיפוש במכשירים שונים כדי להגיע לשיא בשיעור ההתקנות ב-Wear OS

משך הקריאה: 3 דקות
לצפייה בפרופיל של גאראן ג'נקינס
Garan Jenkin מהנדס קשרי מפתחים

לאחרונה, אפליקציית FotMob חוותה את העלייה הגדולה ביותר ביום אחד ב-Wear OS בקרב קהל המשתמשים שהתקינו אותה ב-5 השנים האחרונות, פי 2-3 מהממוצע היומי. הסוד? תהליך התקנה פשוט בין מכשירים שעוזר למשתמשים למצוא את האפליקציה ל-Wear OS ישירות מהטלפון.

‫FotMob היא אחת מהפלטפורמות הפופולריות ביותר בעולם לכדורגל, והיא ידועה בזכות האפליקציה שלה לנייד שמספקת תוצאות בזמן אמת, ניתוח סטטיסטי וחדשות.

fotmob-side-by-side.png

בנוסף לאפליקציה לנייד, FotMob זמינה ב-Wear OS, ומאפשרת למשתמשים להתעדכן בתוצאות האחרונות ישירות מפרק כף היד.

"הרבה משתמשים של FotMob עוקבים אחרי משחקים בשידור חי, ולעיתים קרובות זה קורה כשהם לא משתמשים בטלפון באופן פעיל", אומר רוי סולברג, ראש צוות טכנולוגיית Android ב-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

כדי להתחיל את ההתקנה, האפליקציה משתמשת ב-API של 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()

תוצאות

"ממשקי ה-API של Wearable הפכו את ההטמעה לפשוטה", אומר רועי. "היכולת לזהות מכשירים מחוברים ולבדוק את היכולות שלהם אפשרה לנו לקבוע במהירות אם אפליקציית השעון החכם כבר מותקנת. משם, זה היה בעיקר עניין של עיצוב הנחיה שתרגיש מועילה למשתמשים ולא פולשנית". 

ההשקה של התכונה "התקנה במכשירים שונים" הובילה לעלייה הגדולה ביותר ביום אחד במספר ההתקנות של FotMob ב-Wear OS ב-5 השנים האחרונות, פי 2-3 משיעור ההתקנות הרגיל. בתוך 48 שעות מהרגע שההשקה הגיעה ל-100%, האפליקציה לשעון החכם הותקנה יותר מ-1,500 פעמים¹.

"ב-10 הימים הראשונים ראינו עלייה משמעותית בהתקנות החדשות של 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

כותב/ת המסמך:
להמשך קריאה