事例紹介

FotMob がクロスデバイス検索を活用して Wear OS の導入を記録的に伸ばした方法

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

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

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

fotmob-side-by-side.png

FotMob はモバイルアプリだけでなく Wear OS にも対応しており、ユーザーはスマートウォッチで最新のスコアや試合結果を直接確認できます。

「FotMob ユーザーの多くは試合をライブでフォローしていますが、スマートフォンを積極的に使用していないときにフォローしていることがよくあります」と、FotMob の Android 技術責任者である Roy Solberg 氏は言います。「Wear OS を使用すると、ファンはスコア、試合イベント、最新情報を手首から直接すばやく確認できるため、FotMob のエクスペリエンスを自然に拡張できると考えました。」

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

検出ギャップ

FotMob ユーザーの多くは Wear OS デバイスを所有していますが、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 を使用してスマートウォッチで 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 氏は言います。「接続されているデバイスを検出して機能をクエリできるため、スマートウォッチ アプリがすでにインストールされているかどうかをすばやく判断できました。そこからは、ユーザーにとって邪魔ではなく、役に立つと感じられるプロンプトを設計することが主な課題でした。」

クロスデバイス インストール機能のリリースにより、Wear OS での FotMob のインストール ユーザー数は 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 サンプルで、アプリにクロスデバイス機能を追加する方法を詳しく確認してください。また、新しい In-App Install Prompts ライブラリでは、ユーザーがクロスデバイス インストールを行えるようにするためのオプションが提供されています。

[1]. Google Play Console のインストール データ

作成者:
続きを読む