우수사례

FotMob이 교차 기기 탐색을 활용하여 Wear OS 채택률을 높인 방법

전문 길이: 3분
Garan Jenkin
개발자 관계팀 엔지니어

FotMob은 최근 5년 동안 설치된 시청자 중 Wear OS에서 일일 평균의 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 기기를 보유하고 있지만 일부 사용자는 Wear OS 앱을 알지 못할 수 있다는 사실을 FotMob에서 알게 되었습니다. 이에 따라 팀은 핵심 전화 앱 내에서 직접 Wear OS 앱을 교육하고 궁극적으로 설치하는 방법에 관한 기술적 옵션을 고려하게 되었습니다.

다행히 Android 및 Wear OS의 웨어러블 라이브러리는 FotMob이 사용자가 이러한 작업을 할 수 있는 인앱 환경을 만드는 데 필요한 정확한 빌딩 블록을 제공합니다.

자격 요건을 충족하는 Wear OS 기기 감지

FotMob팀은 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()

결과

'웨어러블 API를 사용해 구현이 간단해졌습니다.'라고 Roy는 말합니다. '연결된 기기를 감지하고 기능을 쿼리할 수 있어 워치용 앱이 이미 설치되어 있는지 빠르게 확인할 수 있었습니다. 그 후에는 방해가 되지 않으면서 사용자에게 도움이 되는 프롬프트를 설계하는 데 집중했습니다.' 

교차 기기 설치 기능 출시 후 FotMob의 Wear OS 설치 사용자 수가 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]. Play Console의 설치 데이터

작성자:

계속 읽기