더 나은 모바일 분석 찾기

게시 됨: 2022-03-10
빠른 요약 ↬ 개발자는 모바일 애플리케이션을 만들 때 모델과 사용자가 애플리케이션을 사용하는 방식을 상상합니다. 개발자가 직면한 한 가지 문제는 사용자가 항상 개발자가 예상한 대로 앱을 사용하지 않는다는 것입니다. 사용자는 앱과 어떻게 상호 작용합니까? 그들은 앱에서 무엇을합니까? 개발자가 원하는 작업을 수행합니까? 모바일 분석은 이러한 질문에 답하는 데 도움이 됩니다. 분석을 통해 개발자는 실제 앱에서 어떤 일이 발생하는지 이해하고 사용자가 실제로 어떻게 사용하는지 확인한 후 앱을 조정하고 개선할 수 있는 기회를 제공합니다. 간단히 말해서 분석은 사용자 행동에 대한 연구입니다.

모바일 애플리케이션을 만들 때 개발자는 모델과 사용자가 애플리케이션을 사용하는 방식을 상상합니다. 개발자가 직면한 한 가지 문제는 사용자가 항상 개발자가 예상한 대로 앱을 사용하지 않는다는 것입니다.

사용자는 앱과 어떻게 상호 작용합니까? 그들은 앱에서 무엇을합니까? 개발자가 원하는 작업을 수행합니까? 모바일 분석은 이러한 질문에 답하는 데 도움이 됩니다. 분석을 통해 개발자는 실제 앱에서 어떤 일이 발생하는지 이해하고 사용자가 실제로 어떻게 사용하는지 확인한 후 앱을 조정하고 개선할 수 있는 기회를 제공합니다. 간단히 말해서 분석은 사용자 행동에 대한 연구입니다.

SmashingMag에 대한 추가 정보:

  • 장치 우선 순위 지정: 테스트 및 반응형 웹 디자인
  • Noah의 모바일 사용성 테스트로의 전환
  • 세계 최고의 개방형 장치 연구소는 어디에 있습니까?
  • 간단하고 손쉬운 모바일 사용자 테스트 가이드

이 기사에서는 가장 인기 있는 모바일 분석 시스템 중 일부를 비교할 것입니다. 앱에 분석을 추가하는 프로세스에는 많은 세부 사항을 고려해야 하며, 우리의 목표는 분석 구현에 대한 유용한 팁을 제공하는 것입니다. 이 정보는 귀하의 요구에 맞는 모바일 분석 시스템을 찾는 데 도움이 되며 앱에서 이를 적절하게 구현하는 데 도움이 됩니다.

점프 후 더! 아래에서 계속 읽기 ↓

실생활에서의 분석

우리가 개발한 작은 iOS 애플리케이션을 예로 들어 보겠습니다. What I Eat이라고 하며 사용자의 식습관을 추적하기 위한 것입니다.

사용자는 식사를 추적하고, 일일 식사 로그를 확인하고, 달력에서 날짜를 전환하여 이전 로그를 검토할 수 있습니다. 응용 프로그램에는 광고 배너가 있지만 사용자는 비용을 지불하여 비활성화할 수 있습니다.

What I Eat을 디자인할 때 우리의 주요 초점은 사용자가 새로운 식사 기록을 쉽게 추가하고 일일 식사 기록을 쉽게 검토할 수 있도록 하는 것이었습니다. 또한 광고를 제거하기 위해 인앱 구매를 통해 애플리케이션에서 수익을 창출하고자 했습니다. 이를 수행했는지 여부를 이해하기 위해 앱에서 다음 이벤트를 추적합니다.

  • 사용자가 앱을 처음 시작할 때(어플리케이션 설치),
  • 사용자가 일일 식사 목록(메인 애플리케이션 화면)을 열면
  • 사용자가 새로운 식사 기록을 추가하면
  • 사용자가 광고를 제거하기 위해 인앱 구매를 할 때.

식사 목록, 식사 화면 및 설정 추가
식사 목록 보기, "식사 추가" 화면 및 광고 제거 기능이 있는 설정. (큰 버전 보기)

이 기사의 뒷부분에서 분석을 사용하여 사용자가 앱을 사용하기 시작했는지 여부와 앱 설치 후 식사 추적을 시작하는 사용자의 비율을 확인하는 방법을 보여줍니다.

분석 서비스 비교

오늘날 Google Analytics와 같은 잘 알려진 시스템에서 틈새 도구에 이르기까지 다양한 분석 서비스가 시장에 나와 있습니다. 그것들을 모두 분석하고 비교하는 것은 영원히 걸릴 것입니다. 따라서 이 기사에서는 가장 편리하다고 생각하는 항목만 사용하겠습니다. 즉, 대시보드 인터페이스와 데이터 마이닝 도구 상자가 상대적으로 이해하기 쉽고 분석 경험이 많지 않은 고객을 위해 작업하기 쉬운 것을 선택했습니다. 모바일 중심의 분석 시스템으로서 분석 코드를 모바일 앱에서 쉽게 구현하고 조정할 수 있기 때문에 개발 관점에서도 편리합니다. 시스템은 다음과 같습니다.

  • 야후의 Flurry
  • Crashlytics의 답변
  • 진폭
  • 믹스패널

What I Eat의 성능을 분석하기 위해 거의 모든 분석 시스템에서 제공하는 두 가지 주요 도구인 이벤트와 유입경로를 사용합니다. 이벤트는 사용자가 앱에서 수행하는 작업을 설명하는 반면 깔때기는 이 데이터의 정성적 분석을 허용합니다. 각 시스템이 내가 먹는 음식에 대해 이러한 기능을 구현하는 방법을 살펴보겠습니다.

믹스패널

Mixpanel을 사용하면 사용자 정의 이벤트를 추적할 수 있습니다. 개발자는 이벤트에 맞춤 매개변수를 추가하고 이러한 매개변수를 사용하여 전환 유입경로를 분류할 수 있습니다.

"설치"(설치 후 앱의 초기 실행을 나타냄) 및 "식사 추가"(사용자가 식사를 추가할 때마다 추적)의 두 가지 이벤트를 포함하는 깔때기를 만들었습니다. 이는 앱을 다운로드했을 뿐만 아니라 사용하기 시작한 사용자의 비율을 보여줍니다. 전환율은 65%로 추정되며, 이는 앱을 설치한 100명 중 65명이 식사 추적을 시작했음을 의미합니다.

설치에서 식사 차트 추가로의 변환
내가 먹는 것(큰 버전 보기)에서 앱 설치에서 "새 식사 추가"로 전환

때때로 개발자는 이벤트가 애플리케이션에서 발생한 후 실시간으로 또는 최소한의 지연으로 분석 대시보드에 나타나야 합니다. 예를 들어, 개발자가 소셜 미디어 마케팅 캠페인을 시작하고 그것이 자신의 애플리케이션에 어떻게 영향을 미치는지 실시간으로 추적해야 할 수 있습니다. Mixpanel은 거의 실시간으로 이벤트를 보여줍니다. 새로 생성된 퍼널은 거의 즉시 계산되고 시각화됩니다.

진폭

개발자가 Amplitude의 소프트웨어 개발 키트(SDK)를 프로젝트에 추가한 직후, 추가 이벤트나 깔때기 설정 없이 소프트웨어는 일일 및 월간 활성 사용자(DAU 및 MAU) 데이터를 추적하기 시작합니다. 우리는 매일 얼마나 많은 사람들이 앱을 사용하는지 이해하기 위해 What I Eat에서 그것을 많이 사용합니다.

내가 먹는 것 DAU 차트
내가 먹는 것에 대한 Amplitude의 DAU 차트(큰 버전 보기)

Mixpanel과 마찬가지로 Amplitude는 이벤트 및 퍼널 작업을 위한 강력한 도구 상자를 제공합니다. 개발자는 깔때기를 만들고 매개변수별로 분류할 수 있습니다. Mixpanel과 달리 Amplitude는 깔때기 차트에서 세그먼트를 직접 시각화할 수 있으므로 매개변수가 전환율에 미치는 영향을 이해해야 할 때 편리합니다. 아래 차트는 인터페이스의 언어에 따라 "설치"에서 "식사 추가"로의 변환이 어떻게 다른지 보여줍니다.

Amplitude에 의한 식사 변환 추가 설치
What I Eat 앱에서 사용자의 언어에 따라 전환율이 변경됩니다. (큰 버전 보기)

보시다시피 러시아어 인터페이스는 영어 인터페이스보다 더 나은 변환을 보여줍니다(83% 대 66%). 따라서 다음 앱 업데이트에서는 러시아인이 아닌 사용자를 더 많이 살펴봐야 할 수도 있습니다.

Crashlytics의 답변

Amplitude와 마찬가지로 Answers SDK가 애플리케이션 프로젝트에 추가되면 데이터 추적이 시작됩니다. 개발자의 노력 없이 Answers는 MAU, DAU, 일일 신규 사용자 및 세션과 같은 모바일 애플리케이션의 일부 핵심 성과 지표(KPI)에 대한 깔끔한 보기를 제공합니다.

진폭별 KPI 먹는 음식
Answers에서 제공하는 What I Eat's KPI 중 일부(큰 버전 보기)

개발자는 사용자 정의 KPI를 이벤트로 정의하고 추적할 수 있으며 Answers는 동일한 방식으로 이를 시각화합니다.

Answers는 또한 청중이 얼마나 활동적인지와 사람들이 앱에서 보내는 시간에 대한 통찰력을 제공합니다.

Answers별 사용자 활동
답변별 What I Eat's 청중 활동 (큰 버전 보기)

Answers의 분석은 지난 30일 동안의 데이터를 유지하며 퍼널이 없습니다. 따라서 앱 성능에 대한 간단하고 단기적인 분석에만 작동합니다.

야후의 Flurry

Flurry는 유입경로를 구축하고 코호트 분석을 수행해야 할 때 Mixpanel 또는 Amplitude만큼 편리하지 않습니다.

Flurry 사용자는 최대 10개의 세그먼트를 생성하여 퍼널에 적용할 수 있습니다. 기존 유입경로에 새 세그먼트를 추가하려면 재계산이 필요하며 하루 정도 소요될 수 있습니다. 사용자는 유입경로에 적용할 세그먼트를 10개 이상 만들 수 없습니다. 새로 생성된 유입경로를 계산하는 데 최대 3일이 소요될 수 있습니다.

Flurry의 이벤트와 퍼널이 What I Eat에 유용하다는 것을 발견하지 못했고 주로 Mixpanel과 Amplitude를 사용했습니다.

그 밖에 중요한 것은 무엇입니까?

이벤트와 퍼널이 핵심 기능이지만 몇 가지 다른 요소가 올바른 분석 시스템을 선택하는 데 영향을 미칩니다.

인구통계학적 데이터

일부 분석 서비스는 앱에서 수집되지 않은 경우에도 애플리케이션의 대상에 대한 통찰력 데이터를 제공합니다. 그들은 당신의 모바일 애플리케이션이 아닌 다른 소스에서 사용자 데이터를 가져옴으로써 그렇게 합니다. 이는 고급 사용자를 식별해야 하지만 응용 프로그램에서 해당 사용자에 대한 데이터를 수집하지 않을 때 유용합니다. 예를 들어 What I Eat 앱에서는 사용자가 가입할 필요가 없고 사용자 데이터를 받을 수 있는 다른 방법이 없지만 앱으로 새로운 사용자를 정확하게 타겟팅하기 위해 누가 사용하는지 알고 싶습니다. 업데이트.

Answers는 성별 및 관심사와 같은 청중의 데이터를 제공합니다. 어떻게 하는지 궁금하실 텐데요. Answers는 Twitter와 밀접하게 통합되어 있으며 Twitter는 플랫폼을 사용하는 모든 사람에 대한 모든 것을 알고 있기 때문에 이러한 개인 데이터는 Answers에서 활용됩니다.

답변별 잠재고객
답변별 내가 먹는 음식 인구통계(큰 버전 보기)

Flurry는 인구 통계 데이터를 공유한 앱에서 수신한 사용자 정보를 대략적으로 추정하여 인구 통계 데이터를 추정합니다. 개발자가 이 정보를 공유하는 이유는 Flurry에 통찰력 데이터를 제공하여 보다 정확한 잠재고객 데이터 세트를 받기 때문입니다. Flurry는 사용자의 관심사, 연령대 및 성별을 보여줍니다.

Flurry의 사용자 관심사
Flurry의 What I Eat 사용자 관심사(큰 버전 보기)

Flurry and Answers의 도움으로 What I Eat의 청중은 대부분 건강과 피트니스에 관심이 있는 중년 여성임을 알 수 있습니다.

Mixpanel 및 Amplitude는 인구 통계 데이터를 제공하지 않습니다.

데이터 가져오기 및 내보내기를 위한 외부 API

분석을 사용하면 외부 API를 통해 데이터를 가져오고 내보낼 수 있습니다. 내보내기를 통해 분석 대시보드 외부에서 데이터를 분석할 수 있습니다(예: Windrush 및 DataHero와 같은 타사 데이터 마이닝 소프트웨어의 도움으로). API 가져오기를 사용하면 백엔드 서버와 같은 소스 및 AppsFlyer와 같은 속성 추적 시스템에서 분석 플랫폼으로 데이터를 배포할 수 있습니다. 어떤 분석 서비스가 이러한 기능을 제공하는지 살펴보겠습니다.

  • Amplitude는 이벤트 가져오기 및 내보내기 모두를 위한 외부 API를 제공합니다.
  • Mixpanel에는 가져오기 및 내보내기 API가 있습니다. 복잡한 내보내기 쿼리를 허용하는 JavaScript 쿼리 언어를 지원합니다.
  • Answers에는 외부 API가 없습니다. 대시보드에서 이벤트 데이터를 CSV 파일로 다운로드할 수 있지만 이벤트 매개변수는 포함되어 있지 않습니다.
  • Flurry에는 가져오기 API가 없습니다. 내보내기 API를 통해서만 데이터를 내보낼 수 있습니다.

가격

모바일 분석 회사는 가격 책정을 실험하고 가격을 꽤 자주 변경할 수 있습니다. 다음 데이터는 2016년 7월의 것입니다.

  • Flurry 및 Answers는 완전 무료입니다.
  • Amplitudes의 무료 플랜은 한 달에 천만 건의 이벤트를 제공합니다. 그 이상을 추적하려면 한 달에 $2,000의 비용이 듭니다. 우리는 꽤 많은 프로젝트에서 Amplitude를 사용했지만 무료 플랜의 한도도 높기 때문에 유료 계층으로 전환할 필요가 없었습니다.
  • Mixpanel에는 매월 25,000개 이벤트의 프리 티어가 있습니다. 100만 건의 이벤트 비용은 한 달에 $300입니다. 천만 개 이상의 이벤트에 대해 월 $1,250를 지불해야 합니다.

분석 구현 팁

이제 각 분석 시스템 간의 주요 차이점을 알았으므로 분석 구현의 실용적인 측면에 대해 알아보겠습니다.

너의 숙제를해라

앱에 분석이 필요하다고 결정했다면 코딩을 가장 먼저 생각해야 하는 것은 아닙니다. 훌륭한 개발자는 다음 단계부터 시작해야 한다고 생각합니다.

  • 추적해야 할 사항을 기록하십시오. . 분석을 통해 답을 얻고자 하는 질문 목록을 작성하는 것으로 시작하십시오. 이 목록을 기반으로 질문에 답하기 위해 추적해야 하는 이벤트와 매개변수를 배치합니다. 이를 위해 앱에 분석을 포함하지 마십시오.
  • 분석의 관점에서 다시 말하십시오. . 이벤트 목록을 완성했으면 선택한 분석 플랫폼에 따라 공식화하십시오. 예를 들어 Amplitude는 모든 매개변수 세트가 있는 이벤트를 허용하지만 Google Analytics에는 사전 정의된 매개변수 세트가 있습니다. 분석을 구현할 때 이러한 뉘앙스를 고려하십시오.
  • 작은 데모를 만드십시오. . 좋은 아이디어는 작은 테스트 앱을 만들고 도움을 받아 12개의 이벤트를 추적한 다음 선택한 플랫폼에서 이러한 이벤트가 시각화되는 방식과 사용 가능한 데이터 마이닝 도구를 확인하는 것입니다. 라이브 앱에서 분석을 구현할 때 이 지식을 사용하여 선택한 플랫폼의 기능을 최대화하십시오.

코딩할 때 크게 생각하십시오

프로젝트의 코드 및 분석의 SDK와 독립적이도록 분석의 코드를 설계하십시오. 따라서 분석 코드를 별도의 하위 시스템이나 클래스에 배치하고 응용 프로그램 코드에서 호출할 수 있는 인터페이스 메서드를 정의합니다. 예를 들어 사용자가 메뉴 버튼을 탭하면 애플리케이션 코드가 분석 클래스 코드를 호출합니다. Swift로 작성된 iOS 앱의 경우 다음과 같습니다.

 /** Application code: menu tap handler */ @IBAction func menuButtonPressed(sender: UIButton) { //Showing menu, etc... AnalyticsManager.sharedInstance.userTapMenuButton() }

애플리케이션 코드에 의해 호출되는 일반 분석 클래스는 매개변수 목록을 수집하고 이 데이터를 특정 분석 클래스로 보냅니다.

 /** General analytics class: a bridge between the application code and the specific analytics class */ class AnalyticsManager { static let sharedInstance = AnalyticsManager() private var services: [AnalyticsService] private init() { services = [AmplitudeAnalyticsService()] } func userTapMenuButton() { let name = "MenuTap" let properties: [String: AnyObject] = [/* define your properties */] for service in services { service.trackEvent(withName: name, properties: properties) } } }

특정 분석 클래스는 분석 SDK에 데이터를 보냅니다. 우리의 경우 Amplitude의 SDK입니다.

 /** Specific analytics class. */ class AmplitudeAnalyticsService: AnalyticsService { func trackEvent(withName name: String, properties: [String : AnyObject]?) { if let propertiesToTrack = properties { Amplitude.instance().logEvent(name, withEventProperties: propertiesToTrack) } else { Amplitude.instance().logEvent(name) } } }

이러한 구조를 사용하면 다른 분석 플랫폼으로 마이그레이션하거나 추적할 매개변수 세트를 조정할 때마다 분석 클래스 코드만 변경하면 되고 애플리케이션 코드는 변경하지 않아도 됩니다.

모든 데이터 분석

선택한 분석 플랫폼의 모든 소스에서 데이터를 수집합니다. 외부 API를 사용하여 모바일 앱뿐만 아니라 백엔드에서도 데이터를 보냅니다. 광고 캠페인을 운영하는 경우 AppsFlyer 또는 Adjust와 같은 설치 추적 시스템을 사용하여 효율성을 측정하고 사용자가 어디에서 왔는지 이해하십시오. 분석 플랫폼과 잘 작동하는지 확인하기 위해 사용할 설치 추적 시스템을 미리 선택하십시오.

SDK 수 제어

이미 애플리케이션에 있는 분석 플랫폼의 SDK를 사용해 보십시오. Crashlytics로 충돌을 추적하는 경우 Crashlytics와 Answers가 모두 Fabric SDK에 포함되어 있으므로 추가 코드 없이 Answers의 분석을 사용할 수 있습니다. 앱에서 Facebook 등록을 허용하는 경우 Facebook의 모바일 분석을 구현하는 SDK가 이미 있으므로 사용하는 것이 좋습니다.

내가 먹는 것의 SDK 목록
What I Eat("Pods" 폴더 아래)의 SDK 목록.

다른 분석 시스템을 결합하려고 시도하되 너무 많은 SDK로 애플리케이션의 바이너리를 압도하지 마십시오.

문서화

마지막으로, 애플리케이션에 대한 분석을 구현하는 것과 동시에 해당 문서에서 작업합니다. 추적하는 이벤트와 매개변수와 수행 방법을 기록합니다. 이를 위해 일반적으로 프로젝트의 코어 폴더에 저장된 Readme.md 파일을 사용합니다. 각 이벤트는 다음 데이터로 설명됩니다.

  • 이벤트 이름(예: "사용자 등록")
  • 추적되는 경우(예: "신규 사용자 등록 성공 시")
  • 매개변수(예: "이메일/문자열")
  • 추적 코드가 호출되는 컨트롤러(예: "SignInController").

이러한 세부 정보는 잊기 쉽지만 추적할 데이터 집합을 변경하거나 다른 분석 플랫폼으로 마이그레이션하려는 경우 중요합니다.

합산

완벽한 분석 서비스는 없습니다. 각각 장단점이 있습니다. 하나를 선택할 때는 애플리케이션 유형, 분석 대시보드의 인터페이스, 예산 등과 같은 요소를 고려해야 합니다. 비선형 사용자 경험(예: GameAnalytics) 또는 개발자 지향 분석(예: Keen IO)을 분석하기 위해 만들어진 게임 분석과 같은 틈새 솔루션을 사용할 수도 있습니다.

우리는 What I Eat과 완벽하게 작동하고 앱에 필요한 모든 분석을 제공하기 위해 Answers와 Amplitude의 조합을 찾았습니다. Answers는 무료이며 인구 통계 데이터와 앱 KPI를 표시하지만 Amplitude는 보다 복잡한 행동 집단 분석을 허용합니다. 또한 Answers의 Fabric SDK를 사용하여 애플리케이션 충돌을 추적합니다.

모바일 애플리케이션에서 사용하는 분석 도구 상자에 대해 듣고 싶습니다. 의견에 아이디어를 공유하십시오.