事例紹介

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

所要時間: 3 分
Garan Jenkin さんのプロフィールを表示
Garan Jenkin デベロッパー リレーション エンジニア

FotMob は最近、Wear OS のインストール ユーザー数が 1 日で過去 5 年間で最大となる 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 ユーザー数は 5 年間で 1 日あたり最大に増加し、通常のインストール率の 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 のインストール データ

作成者:
続きを読む