事例紹介

FotMob がクロスデバイス検出を活用して Wear OS の導入を記録的なレベルに高めた方法

所要時間: 3 分
Garan Jenkin
デベロッパー リレーション エンジニア

FotMob は最近、Wear OS のインストール ユーザー数が 1 日で 5 年間で最大となる増加を記録し、1 日の平均の 2 ~ 3 倍に達しました。その秘密とは?ユーザーがスマートフォンから直接 Wear OS アプリを見つけられるシンプルなクロスデバイス インストール フロー。

FotMob は、世界で最も人気のあるサッカー(サッカーとも呼ばれます)プラットフォームの 1 つです。モバイルアプリでリアルタイムのスコア、統計分析、ニュースを提供することで知られています。

fotmob-side-by-side.png

FotMob はモバイルアプリだけでなく Wear OS でも利用できるため、ユーザーは手首から直接最新のスコアや結果を確認できます。

FotMob の Android テクニカル リーダーである Roy Solberg 氏は次のように述べています。「FotMob のユーザーの多くは試合をライブで観戦しており、その多くはスマートフォンを積極的に使用していないときに行われます。」「Wear OS を利用すれば、ファンは手首から直接スコア、試合のイベント、最新情報をすばやく確認できます。そのため、FotMob のエクスペリエンスを自然に拡張できると考えました。」

さまざまなフォーム ファクタでスムーズなエクスペリエンスを提供することで、FotMob はユーザーが最も便利な形でプラットフォームを最大限に活用できるようにしています。これには、お気に入りのチームなどの設定がデバイス間で同期されるようにすることも含まれます。

ディスカバリー ギャップ

FotMob のユーザーの多くが Wear OS デバイスを所有しているにもかかわらず、一部のユーザーは Wear OS アプリの存在に気づいていない可能性があることに FotMob は気づきました。そこで、コアのスマートフォン アプリ内から 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 を使用してスマートウォッチで Google 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 API を使用したことで、実装が簡単になりました」と Roy 氏は述べています。「接続されているデバイスを検出し、機能をクエリできるため、スマートウォッチ アプリがすでにインストールされているかどうかをすばやく判断できました。そこからは、ユーザーにとって邪魔ではなく、役に立つと感じられるプロンプトを設計することが主な作業でした。」

クロスデバイス インストール機能のリリースにより、FotMob の Wear OS ユーザー数が 1 日で過去 5 年間で最大に増加し、通常のインストール率の 2 ~ 3 倍になりました。ロールアウトが 100% に達してから 48 時間以内に、スマートウォッチ アプリの新規インストール数が 1,500 件を超えました¹。

「最初の 10 日間で、新しい Wear OS のインストール数が大幅に増加しました」と Roy 氏は述べています。 「スマートウォッチ アプリは数年前から存在していましたが、互換性のあるデバイスをお持ちの多くのユーザーが、その存在に気づいていなかったことがわかりました。」

進化するクロスデバイス インストール

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]。Google Play Console のインストール データ

作成者:

続きを読む