尋找更好的移動分析

已發表: 2022-03-10
快速總結 ↬在創建移動應用程序時,開發人員會設想一個模型以及用戶使用該應用程序的方式。 開發人員面臨的一個問題是用戶並不總是按照開發人員設想的方式使用應用程序。 用戶如何與應用程序交互? 他們在應用程序中做什麼? 他們做開發人員希望他們做的事情嗎? 移動分析有助於回答這些問題。 分析使開發人員能夠了解應用程序在現實生活中發生的情況,並在了解用戶實際使用情況後提供調整和改進應用程序的機會。 簡而言之,分析是對用戶行為的研究。

在創建移動應用程序時,開發人員會設想一個模型以及用戶使用該應用程序的方式。 開發人員面臨的一個問題是用戶並不總是按照開發人員設想的方式使用應用程序。

用戶如何與應用程序交互? 他們在應用程序中做什麼? 他們做開發人員希望他們做的事情嗎? 移動分析有助於回答這些問題。 分析使開發人員能夠了解應用程序在現實生活中發生的情況,並在了解用戶實際使用情況後提供調整和改進應用程序的機會。 簡而言之,分析是對用戶行為的研究。

關於 SmashingMag 的進一步閱讀

  • 優先設備:測試和響應式網頁設計
  • Noah 向移動可用性測試的過渡
  • 世界上最好的開放設備實驗室在哪裡?
  • 簡單無痛的移動用戶測試指南

在本文中,我們將比較一些最流行的移動分析系統。 將分析添加到應用程序的過程涉及考慮許多細節,我們的目標是為您提供有關實施分析的有用提示。 這些信息應該可以幫助您找到適合您需求的移動分析系統,並幫助您在應用程序中正確實施它。

跳躍後更多! 繼續往下看↓

現實生活中的分析

讓我們以我們開發的一個小型 iOS 應用程序為例。 它被稱為 What I Eat,旨在跟踪用戶的飲食習慣。

用戶可以跟踪他們的用餐情況,查看每日用餐記錄,並在日曆中的日期之間切換以查看以前的記錄。 該應用程序有一個廣告橫幅,但用戶可以付費禁用它。

在設計 What I Eat 時,我們的主要關注點是讓用戶輕鬆添加新的用餐記錄並輕鬆查看他們的每日用餐歷史記錄。 我們還希望通過應用內購買從應用中獲利,以移除廣告。 為了了解我們是否成功地做到了這一點,我們在應用程序中跟踪以下事件:

  • 當用戶第一次啟動應用程序(應用程序安裝)時,
  • 當用戶打開每日膳食列表(主應用程序屏幕)時,
  • 當用戶添加新的用餐記錄時,
  • 當用戶進行應用內購買以移除廣告時。

膳食列表,添加膳食屏幕和設置
膳食列表、“添加膳食”屏幕和設置的視圖,能夠刪除廣告。 (查看大圖)

在本文後面,我們將展示如何使用分析來確定用戶是否已開始使用該應用程序,以及安裝該應用程序後有多少用戶開始跟踪膳食。

比較分析服務

今天,市場上有大量的分析服務,從谷歌分析等知名系統到利基工具。 分析和比較所有這些需要很長時間; 因此,對於本文,我們將只使用我們認為最方便的那些。 也就是說,我們選擇了儀表板界面和數據挖掘工具箱相對易於理解且易於使用的工具,以供那些沒有太多分析經驗的人使用,例如我們的客戶。 作為面向移動的分析系統,從開發的角度來看,它們也很方便,因為分析代碼可以在移動應用程序中輕鬆實現和調整。 以下是系統:

  • 雅虎的亂舞
  • Crashlytics 的回答
  • 振幅
  • 混合面板

為了分析 What I Eat 的表現,我們使用了幾乎每個分析系統都提供的兩個主要工具:事件和漏斗。 事件描述了用戶在應用程序中所做的事情,而漏斗則允許對這些數據進行定性分析。 讓我們來看看每個系統是如何為我吃的東西實現這些的。

混合面板

Mixpanel 允許您跟踪自定義事件。 開發者可以為事件添加自定義參數,並使用這些參數來細分轉化渠道。

我們構建了一個包含兩個事件的漏斗:“安裝”(表示安裝後首次啟動應用程序)和“添加餐點”(跟踪用戶每次添加餐點的時間)。 這些向我們展示了有多少百分比的用戶不僅下載了該應用程序,而且還開始使用它。 轉化率估計為 65%,這意味著在安裝該應用程序的 100 人中,多達 65 人開始跟踪膳食。

從安裝到添加餐圖的轉換
從應用程序安裝轉換為“吃什麼”中的“添加新餐”(查看大圖)

有時,開發人員需要事件在應用程序中發生後實時或以最小的延遲出現在分析儀表板中。 例如,開發人員可能已經啟動了社交媒體營銷活動,並且需要實時跟踪它如何影響他們的應用程序。 Mixpanel 幾乎實時顯示事件。 幾乎可以立即計算和可視化新創建的渠道。

振幅

在開發人員將 Amplitude 的軟件開發工具包 (SDK) 添加到他們的項目後,無需進一步設置事件或漏斗,該軟件就開始跟踪每日和每月活躍用戶(DAU 和 MAU)數據。 我們在 What I Eat 中大量使用它來了解每天有多少人使用該應用程序。

我吃什麼 DAU 圖表
Amplitude 的 What I Eat 的 DAU 圖表(查看大圖)

與 Mixpanel 一樣,Amplitude 提供了一個強大的工具箱來處理事件和漏斗; 開發人員可以創建一個漏斗並按參數對其進行分段。 與 Mixpanel 不同,Amplitude 可以直接在漏斗圖中可視化細分,這在您需要了解參數如何影響轉化率時非常方便。 下面的圖表顯示了從“安裝”到“添加餐點”的轉換如何根據界面的語言而變化。

安裝以按幅度添加膳食轉換
轉化率會根據用戶在 What I Eat 應用程序中的語言而變化。 (查看大圖)

如您所見,俄語界面顯示出比英語界面更好的轉換(83% 對 66%)。 因此,隨著我們的下一次應用程序更新,我們可能需要更多地關注我們的非俄羅斯觀眾。

Crashlytics 的回答

與 Amplitude 一樣,一旦將 Answers 的 SDK 添加到應用程序項目中,它就會開始跟踪數據。 開發人員幾乎不費吹灰之力,Answers 提供了移動應用程序的一些關鍵性能指標 (KPI) 的整潔視圖:MAU、DAU、每日新用戶和會話。

我吃什麼按幅度劃分的 KPI
Answers提供的一些我吃的KPI(查看大圖)

開發人員可以將自定義 KPI 定義和跟踪為事件,Answers 將以相同的方式將它們可視化。

Answers 還提供有關您的受眾的活躍程度以及人們在應用程序中花費的時間的見解。

Answers的用戶活動
What I Eat 的觀眾活動(查看大圖)

Answers 的分析會保留過去 30 天的數據,並且沒有漏斗。 因此,它僅適用於對應用程序性能的簡單和短期分析。

雅虎的亂舞

當您需要構建漏斗和進行群組分析時,Flurry 不如 Mixpanel 或 Amplitude 方便。

Flurry 用戶最多可以創建 10 個細分並將它們應用到一個渠道。 向現有渠道添加新細分需要重新計算,這可能需要大約一天的時間。 用戶不能創建超過 10 個細分以應用於他們的渠道。 新創建的渠道的計算最多可能需要三天時間。

我們還沒有發現 Flurry 的事件和漏斗對 What I Eat 有用,我們主要使用 Mixpanel 和 Amplitude。

還有什麼重要的?

雖然事件和渠道是關鍵功能,但在選擇正確的分析系統時還需要考慮其他一些因素。

人口統計數據

一些分析服務提供有關應用程序受眾的洞察數據,即使這些數據不是在應用程序中收集的。 他們通過從移動應用程序以外的來源獲取用戶數據來做到這一點。 當您需要識別您的高級用戶但您的應用程序不收集有關他們的任何數據時,這會派上用場。 例如,在 What I Eat 應用程序中,用戶無需註冊,我們也沒有其他方式可以接收用戶數據,但我們仍然想知道誰在使用它,以便通過應用程序準確定位新用戶更新。

Answers 提供有關您的受眾的數據,例如他們的性別和興趣。 你可能想知道它是如何做到的? 嗯,Answers 與 Twitter 緊密集成,並且由於 Twitter 幾乎了解使用該平台的每個人的所有信息,因此 Answers 會利用這些個人數據。

觀眾回答
我吃的答案人口統計數據(查看大版本)

Flurry 通過近似從共享它的應用程序接收到的用戶信息來估計人口統計數據。 開發者之所以分享這些信息,是因為他們通過向 Flurry 提供洞察數據,獲得了更精確的受眾數據集。 Flurry 向您顯示用戶的興趣、年齡範圍和性別。

Flurry的用戶興趣
我吃什麼用戶的興趣 by Flurry (查看大圖)

在 Flurry 和 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 的免費計劃每月提供 1000 萬個事件。 如果您希望跟踪更多,則每月將花費 2,000 美元。 儘管我們在很多項目中都使用了 Amplitude,但我們從來不需要切換到付費層,因為免費計劃的限制也很高。
  • Mixpanel 提供每月 25,000 個事件的免費套餐。 一百萬個活動每月花費 300 美元。 對於超過 1000 萬個事件,您必須每月支付 1,250 美元。

分析實施技巧

現在我們知道了每個分析系統之間的主要區別,讓我們深入了解實施分析的實際方面。

做你的作業

如果您決定在您的應用程序中需要分析,那麼編碼它不是您應該首先考慮的事情。 我們認為優秀的開發人員應該從以下步驟開始:

  • 寫下您需要跟踪的內容。 . 首先列出您希望分析回答的問題。 根據該列表,列出您需要跟踪的事件和參數以回答問題。 不要為了它而在應用程序中包含分析。
  • 根據您的分析重新表述它。 . 完成事件列表後,根據您選擇的分析平台將其正式化。 例如,雖然 Amplitude 允許使用任何參數集的事件,但 Google Analytics 具有預定義的參數集。 在實施分析時要考慮到這些細微差別。
  • 做一個小演示。 . 一個好主意是構建一個小型測試應用程序,在它的幫助下跟踪十幾個事件,然後檢查這些事件在您選擇的平台中的可視化方式以及可用的數據挖掘工具。 在實時應用程序中實施分析時,利用這些知識最大限度地發揮所選平台的功能。

編碼時要大處著眼

設計分析的代碼,使其獨立於項目的代碼和分析的 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 跟踪崩潰,則無需任何額外代碼即可使用 Answers 的分析,因為 Crashlytics 和 Answers 都包含在 Fabric SDK 中。 如果您的應用程序允許在 Facebook 註冊,那麼它已經具有實現 Facebook 移動分析的 SDK,因此您不妨使用它。

我吃什麼中的 SDK 列表
我吃的東西中的 SDK 列表(在“Pods”文件夾下)。

嘗試組合不同的分析系統,但不要用太多的 SDK 壓倒應用程序的二進製文件。

記錄它

最後,在為您的應用程序實施分析的同時,處理其文檔:寫下您跟踪的事件和參數以及您是如何做到的。 為此,我們通常使用存儲在項目核心文件夾中的Readme.md文件。 每個事件由以下數據描述:

  • 事件名稱(例如,“用戶註冊”);
  • 被跟踪時(例如,“新用戶成功註冊時”);
  • 參數(例如,“電子郵件/字符串”);
  • 調用跟踪代碼的控制器(例如,“SignInController”)。

這些細節很容易忘記,但當您想要更改要跟踪的數據集或想要遷移到另一個分析平台時,它們變得至關重要。

加起來

沒有分析服務是完美的; 每個都有其優點和缺點。 在選擇一個時,您應該權衡應用程序的類型、分析儀表板的界面、您的預算等因素。 您甚至可能想要使用利基解決方案,例如為分析非線性用戶體驗而創建的遊戲分析(例如,GameAnalytics)或面向開發人員的分析(例如,Keen IO)。

我們發現 Answers 和 Amplitude 的組合可以完美地與 What I Eat 配合使用,並為應用程序提供所有必要的分析。 雖然 Answers 是免費的並顯示人口統計數據和應用程序 KPI,但 Amplitude 允許進行更複雜的行為隊列分析。 我們還使用 Answers 的 Fabric SDK 跟踪應用程序崩潰。

我們很想听聽您在移動應用程序中使用的分析工具箱。 請在評論中分享您的想法。