services you can use to monitor and analyze mobile app

Post on 18-Jan-2015

3.503 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Services you can use to monitor and analyze

mobile appKoji Lin @ Taipei GTUG

About me

● koji lin○ http://twitter.com/kojilin

● Engineer, Cubie Inc.

● The Organizer of JavaWorld@TW○ http://www.javaworld.com.tw

● The Organizer of Taiwan Java User Group○ http://twjug.org

Cubie Messenger

Outline

● Why?

● Analytics Platform

● A/B Test

● App Crash Report

● Distribute Beta Test

Why?

開發

使用

修改

使用

使用

使用

● 提高相關功能的使用率

● 黏著度更高

● 主動與更多朋友分享

Every change brings...

Every change brings...

● 功能越改越...

● 使用者抱怨

● 更高的移除率

回饋

修改

回饋

使用開發

除了用戶主動回饋

我們更需要數據來分析

??????????

Mobile Analytics

What we want to know?

● Retention

○ 多少人會在一段時間後會再回來使用

● Conversion rates

○ 哪些流程使用者在中途就不想完成?

● 新功能的使用狀況

● 改版是否造成不好的影響

● 以上都還要能搭配各種分類條件

Mobile Analytics

● In-House Product

● Google Analytics

● Flurry

● Mixpanel

In-House Product

In-House Product

● 依照自己的需求客製

In-House Product

● 依照自己的需求客製

● 容易缺乏各式文件和資料

● 我們有更多更重要的功能得去做

● 提供服務的通常更好,更專業且更多功能

● ...其它更多缺點

In-House Product

● 依照自己的需求客製

● 容易缺乏各式文件和資料

● 我們有更多更重要的功能得去做

● 提供服務的通常更快,更專業且更多功能

● ...其它更多缺點

Google Analytics

● Google Analytics Mobile

○ SDK for iOS, Android(v2 beta)

● 需要較多過程,步驟來完成報表

○ Cohort Analytics

○ Segmentation

○ 透過 Custom Var 的方式來完成

Flurry

● 從 2008 年開始

○ 4個 android app 中就有一個有裝

● Sessions / Frequency of Use

● Estimate Gender / Age / Personas

● Segementation

● Funnel

● 免費!!

● Demo

Install Flurry

@Overrideprotected void onStart(){

super.onStart();FlurryAgent.onStartSession(this, "YOUR_API_KEY");

} @Overrideprotected void onStop(){

super.onStop();FlurryAgent.onEndSession(this);

}

Log Event in Flurry

Map<String, String> params = new HashMap<String, String>();

// Capture author infoparams.put("Author", "John Q");

// Capture user statusparams.put("User_Status", "Registered");

FlurryAgent.logEvent("Article_Read", params);

Mixpanel

● From Y Combinator

● Real-time

● Cohort Analysis

● Funnel

● Retention

● 隨時想看什麼就看什麼

● Demo

Install MixPanel

MixpanelAPI mixpanel = MixpanelAPI.getInstance(context, "YOUR_API_TOKEN");

Track Event in MixPanel

JSONObject properties = new JSONObject();properties.put("gender", "male");properties.put("age", 20);mixpanel.track("register", properties);

A/B Test

Why A/B Test?

A: 到底決定哪一種比較好?

B: 上面比較好,不然版面太亂

C: 下面比較好, 不然沒有人知道這個功能

D: 可是...

Why A/B Test?

A: 到底決定哪一種比較好?

B: 上面比較好,不然版面太亂

C: 下面比較好, 不然沒有人知道這個功能

D: 可是...

10 分鐘後

B: 還是上面比較....

A: #!@!....

別再吵了,直接試試看

A/B Test

A/B Test

35%25%

A/B Test

● Layout

○ 消極的顯示? 積極的顯示?

● Workflow

○ 更多步驟? 減少步驟? 順序?

● Text

○ 詳細一點? 簡述一點? 柔性一點?

● Color

○ 典型的綠色紅色按鈕範例

A/B Test

● 幫使用者註冊一個UUID

● 挑選一定比例的使用者當測試用戶

○ 使用固定的UUID去計算,讓每次結果相同

● 送出事件

● 在後台統計

○ 依照 test group 分開資料

Android First

A/B Testing

New Features

Easy to publish

Android First

A/B Testing

New Features

Easy to publishReviewing......

所以 A/B Test 就這樣?

● A/B Test 是一門不太簡單的學問

○ 測試期間要多久?

○ 應該設定"多少/哪些"用戶當對照?

○ 局部優化?徹底大改?

○ 先做 A/A Test ?

○ ...其他

所以 A/B Test 就這樣?

● A/B Test 是一門不太簡單的學問

○ 測試期間要多久?

○ 應該設定"多少/哪些"用戶當對照?

○ 局部優化?徹底大改?

○ 先做 A/A Test ?

○ ...其他

from http://visualwebsiteoptimizer.com/split-testing-blog/seven-ab-testing-mistakes-to-stop-in-2013/

HiPPO Highest Paid Person’s Opinion

Reference

1. http://en.wikipedia.org/wiki/A/B_testing

2. http://circa.cs.ualberta.ca/index.php/CIRCA:

A/B_Testing

3. http://visualwebsiteoptimizer.com/

4. http://www.clickz.

com/clickz/column/1704390/a-b-testing-

mathematically-disinclined

Some A/B Test Services

● clutch.io

● arise.io

● Amazon A/B Testing Service

● PATHMAPP ( iOS)

App Crash Report

App Crash Report

● Google Play

Google Play

App Crash Report

● Google Play

● ACRA

ACRA

Install ACRA

● add jar

● add permissions○ android.permission.INTERNET

● add code in class extends Application

ACRA.init(this);

ACRA

● Google Docs○ Don't and now you can't

● Acralyzer

● ACRA Reporter○ Google App Engine

○ Android widget

● BugSense, HockeyApp, Zubhium

App Crash Report

● Google Play

● ACRA

● Crittercism

Crittercism

Install Crittercism

● add jar

● add permissions○ android.permission.INTERNET

○ android.permission.READ_LOGS

○ android.permission.GET_TASKS

● add code

Crittercism.init(getApplicationContext(), appId);

Crittercism● Crash Reports

● Crash Trends (Premium)

● Handled Exceptions (Premium)

● Connect JIRA/GitHub

● Demo

Crittercism.logHandledException(exception);

App Crash Report

● Google Play

● ACRA

● Crittercism

● Crashlytics

Crashlytics

● Crash Reports(Issues)

Crashlytics

● Crash Reports(Issues)

● 界面很炫

● 年初被 Twitter 買了

● Connect to JIRA / HipChat / Redmine...etc

● Demo

Crashlytics

● Crash Reports(Issues)

● 界面很炫

● 年初被 Twitter 買了

● Connect to JIRA / HipChat / Redmine...etc

● Demo

Coming Soon

Distribute Beta Test

Testflight

● iOS

● Android(beta)

iOS 上做 beta test

1. 收集使用者的UDID

2. 將 UDID 加到 Distribution Provisioning Profie

3. 打包成 IPA 將檔案丟給測試人員

4. 測試人員使用跟裝置同步的電腦安裝

iOS 上做 beta test

1. 收集使用者的UDID

2. 將 UDID 加到 Distribution Provisioning Profie

3. 打包成 IPA 將檔案丟給測試人員

4. 測試人員使用跟裝置同步的電腦安裝

Android 上做 beta test

1. 產生 apk 將檔案丟給測試人員

2. 直接安裝測試

Android 上做 beta test

1. 產生 apk 將檔案丟給測試人員

2. 直接安裝測試

??

Testflight

● 方便管理並了解測試狀況

● 搭配 SDK 可以有更多進階功能

● Demo

Thank you!!

Q&A

top related