案例研究

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 技术主管 Roy Solberg 表示:“许多 FotMob 用户会实时关注赛事,而这通常发生在他们未主动使用手机时。”“借助 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 体验的屏幕截图,让用户能够立即看到应用在手表上的显示效果。

fotmob_wear_wrist.png

如需开始安装,应用会使用 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 表示:“穿戴式设备 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)
}

后续步骤:立即开始打造您自己的跨设备历程

深入了解 DataLayer 示例,详细了解如何为应用添加跨设备功能,并探索新的应用内安装提示库,该库可为您提供多种选项,帮助用户实现跨设备安装。

[1]. Play 管理中心中的安装数据

作者:

继续阅读