FotMob 最近在 Wear OS 上的安装用户数创下了 5 年来单日增幅新高,达到日均增幅的 2-3 倍。秘诀是什么?简单的跨设备安装流程,可帮助用户直接通过手机发现 Wear OS 应用。
FotMob 是全球最受欢迎的足球平台之一,其移动应用提供实时比分、统计分析和新闻。
除了移动应用之外,FotMob 还推出了 Wear OS 版本,让用户可以直接在手腕上随时掌握最新比分和赛果。
“许多 FotMob 用户都会观看比赛直播,而这通常发生在他们没有主动使用手机的时候,”FotMob 的 Android 技术主管 Roy Solberg 说道。“Wear OS 让球迷能够直接在手腕上快速查看比分、比赛事件和最新动态,因此我们认为它是 FotMob 体验的自然延伸。”
通过在不同设备规格上提供流畅的体验,FotMob 确保用户能够继续以最便捷的方式充分利用其平台。这包括确保设置和偏好设置(例如喜爱的球队)在不同设备之间同步。
发现差距
尽管许多 FotMob 用户都拥有 Wear OS 设备,但 FotMob 意识到,有些用户可能并不知道有 Wear OS 应用。这促使该团队考虑采用技术手段,在核心“电话”应用中直接向用户介绍 Wear OS 应用,并最终引导用户安装该应用。
幸运的是,Android 和 Wear OS 上的 Wearable 库提供了 FotMob 所需的构建块,可用于打造让用户能够实现这一目标的应用内体验。
检测符合条件的 Wear OS 设备
在 FotMob “电话”应用中,该团队使用 NodeClient 来识别已连接的 Wear OS 设备(Wear OS 应用的候选设备):
val connectedNodes = nodeClient.connectedNodes.await()
此外,该团队还在 Wear OS 应用中定义了一项功能,用于指示设备上已安装 FotMob。此功能在 Wear OS 软件包中定义为 XML 资源,然后在“电话”应用中进行查询:
val nodesWithApp = capabilityClient .getCapability(CAPABILITY_WEAR_APP, CapabilityClient.FILTER_REACHABLE) .await() .nodes
通过仅查找不具备该功能的节点,该团队确保 FotMob “电话”应用仅列出未安装该应用的 Wear OS 设备。
启动安装流程
FotMob 团队设计了一个半页大小的教育性提示,让用户快速了解这一机会,并允许他们启动安装流程或关闭提示。其中包含一张醒目的 Wear OS 体验屏幕截图,让用户可以立即看到该应用在手表上的显示效果。
为了开始安装,应用会使用 RemoteActivityHelper API 在手表上启动 Play 商店:
val remoteActivityHelper = RemoteActivityHelper(context) remoteActivityHelper.startRemoteActivity( Intent(Intent.ACTION_VIEW) .setData("market://details?id=${context.packageName}".toUri()) .addCategory(Intent.CATEGORY_BROWSABLE), nodeId ).await()
结果
Roy 表示:“Wearable API 让实现过程变得简单直接。”“能够检测已连接的设备并查询功能,意味着我们可以快速确定是否已安装手表应用。在此基础上,我们主要致力于设计一种让用户感到有帮助而非侵扰的提示。”
在推出跨设备安装功能后,FotMob 在 Wear OS 上的安装用户群创下了 5 年来单日增幅最大的纪录,比正常安装率高出 2-3 倍。在发布范围达到 100% 后的 48 小时内,该手表应用的新安装量超过了 1,500 次¹。
Roy 表示:“在最初的 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) }
后续步骤:立即开始打造您自己的跨设备体验
深入了解数据层示例,详细了解如何为应用添加跨设备功能,并探索新的应用内安装提示库,该库提供了多种选项,可帮助用户实现跨设备安装。
[1]. 来自 Play 管理中心的安装数据
-
案例研究Grab 是东南亚领先的超级应用,通过单一应用为八个国家/地区的数百万用户提供配送、出行和金融服务。
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • 阅读用时:5 分钟 -
案例研究该团队构建了一个 AI 原生界面代码库,其规模比原始实现缩小了 50%,同时将 AI 智能体执行时间缩短了 35%,工程师与智能体之间的交互减少了 32%,并将 token 成本降低了 33%。
Pavlo Stavytskyi, Rebecca Franks • 预计阅读时间:11 分钟 -
案例研究WhatsApp 是全球最大的即时通讯平台,为全球数十亿用户提供服务。它是不同地区用户的默认通讯工具,通过私密、可靠且安全的即时通讯服务连接用户。
Niharika Arora, Tracy Agyemang, Mayank Jain • 阅读用时:8 分钟
每周通过电子邮件接收最新的 Android 开发洞见。