Crashlytics 會針對每個應用程式自動計算並顯示無當機情況的指標,具體來說,就是未受當機影響的使用者百分比,以及未受當機影響的工作階段百分比。這些指標可協助您快速瞭解應用程式的穩定性。
您可以在 Crashlytics 資訊主頁頂端找到這些無當機指標的圖表,並依據各種維度篩選這些圖表,例如時間範圍、版本,以及 (針對 Android 應用程式) Google Play 測試群組。
請注意,系統只會針對嚴重事件 (以及在 Unity 和 Flutter 中回報為嚴重事件的未偵測到的例外狀況) 計算無當機指標。
取得未發生當機情形的指標
對於大多數應用程式,當您在應用程式中整合 Crashlytics SDK 時,系統會自動計算無當機指標。不過,在某些情況下,Crashlytics 不會收到計算無當機指標所需的資料:
使用舊版 Crashlytics SDK 的應用程式版本 (請參閱下方支援的最低版本)
停用自動 Crashlytics 資料收集和回報功能的應用程式版本 (詳情請參閱本頁的「資料收集設定對指標品質的影響」一節)
支援無當機指標的 SDK 版本
如要取得無當機情形的指標,您必須更新應用程式,以便使用支援這些指標的 Crashlytics SDK 版本。以下是 Crashlytics SDK 支援的最低版本,可提供無當機的指標:
- Apple 平台:10.8.0 以上版本
- Android:18.6.0 以上版本 (BoM 32.6.0 以上版本)
- Flutter:3.4.5 以上版本
- Unity:11.7.0 以上
對於使用更新版 SDK 的應用程式版本,您應該會自動取得無當機情形的指標。
什麼是未發生當機情形的指標?
未受當機情況影響的指標包括未受當機影響的使用者和未受當機影響的工作階段。
未受當機影響的指標取決於兩個概念:使用者和工作階段。如要為應用程式取得無當機情形的指標,您必須使用可傳送這兩種概念相關資料的 Crashlytics SDK 版本。以下說明 Crashlytics 如何區分使用者和工作階段:
使用者是指在裝置上安裝應用程式的個別使用者。舉例來說,如果使用者在多部不同裝置上安裝您的應用程式,Crashlytics 就會將每個安裝計為不同的不重複使用者。
「工作階段」是指使用者與應用程式互動的一段持續時間。當應用程式以冷啟動方式啟動,或在背景運作至少 30 分鐘後移至前景時,系統就會開始新的會話。
此外,系統只會針對嚴重事件 (以及在 Unity 和 Flutter 中回報為嚴重事件的未偵測到的例外狀況) 計算無當機指標。
什麼是「不受當機影響的使用者」指標?
「無當機情形的使用者」指標是指在所選時間範圍內,未遇到當機情形的使用者百分比。這個指標反映出應用程式為單一使用者提供的體驗。當目標是整體使用者體驗時,這項指標經常會做為整個應用程式的重要健康指標進行追蹤。
這個指標可能特別適用於下列類型的應用程式:
工作階段長且休閒的應用程式,例如隨選串流應用程式、社群媒體應用程式或休閒遊戲,使用者可以從上次中斷的地方繼續進行。由於使用者通常會在這些應用程式中進行較長的多工作階段體驗,因此應優先盡可能提高未發生當機情形的使用者總數,而非確保每個個別工作階段都完美無缺。
已建立使用者基礎的應用程式,例如已建立良好口碑的工作應用程式或大型線上平台,使用者習慣和需求會高於應用程式當機帶來的不便。
什麼是未發生當機情形的工作階段指標?
「無當機情形的工作階段」指標是指在所選時間範圍內,未因當機而結束的工作階段百分比。無異常終止的工作階段,可代表應用程式的整體可靠性,並建立使用者的信任感。在新版本的初期階段,追蹤無當機的工作階段特別重要,因為使用者在初次互動期間發生當機,可能會導致使用者立即感到挫折,進而放棄使用。
下列類型的應用程式通常會偏好使用這項指標:
使用模式短暫且密集的應用程式,例如即時遊戲或時間敏感的串流應用程式,如果在關鍵時刻發生當機,可能會對使用者造成嚴重影響。
應用程式會產生重大影響,例如金融應用程式或導航應用程式,這類應用程式著重於體驗的最終狀態。這類應用程式發生當機可能會導致重大問題,導致使用者對應用程式失去信任。
計算未發生當機情形的指標
如何計算「不受當機影響的使用者」?
未發生當機情形的使用者值代表在所選時間範圍內,使用者與應用程式互動但未發生當機情形的百分比。
以下是計算不受當機影響的使用者百分比的公式。其輸入值由 Crashlytics SDK 提供,並根據您從 Crashlytics 資訊主頁右上角的下拉式選單中選取的時間範圍。
CRASH_FREE_USERS_PERCENTAGE = 1 - (CRASHED_USERS / ALL_USERS)
CRASHED_USERS 代表在所選時間範圍內,遇到當機情形的不重複使用者總數。
ALL_USERS 代表在所選時間範圍內,與您應用程式互動的使用者總數。
未受當機影響的使用者百分比是匯總累計值,而非平均值。
查看計算範例
舉例來說,假設您的應用程式有三位使用者,我們稱他們為使用者 A、使用者 B 和使用者 C。下表顯示每天與應用程式互動的使用者,以及當天發生當機的使用者:
星期一 | 週二 | 星期三 | |
---|---|---|---|
與應用程式互動的使用者 | A、B、C | A、B、C | A、B |
發生當機的使用者 | C | B | A |
在星期三,未發生當機情形的使用者百分比為 50% (每 2 位使用者就有 1 位未發生當機情形)。
兩位使用者在星期三與您的應用程式互動,但只有其中一位 (使用者 B) 沒有發生當機情形。過去 2 天,未發生當機情形的使用者百分比為 33.3% (每 3 位使用者中,有 1 位使用者未發生當機情形)。
過去兩天有三位使用者與您的應用程式互動,但只有其中一位 (使用者 C) 沒有發生當機情形。過去 3 天,未發生當機情形的使用者百分比為 0% (3 位使用者中有 0 位未發生當機情形)。
過去三天內,有三位使用者與您的應用程式互動,但其中沒有任何一位使用者沒有發生當機情形。
不應比較不同時間範圍的「不受當機影響的使用者」值。使用者使用應用程式次數越多,發生當機的機率就會越高,因此在較長的時間範圍內,未發生當機的使用者值可能會較低。
如何計算未發生當機情形的工作階段?
無當機情形的工作階段值代表在所選時間範圍內,應用程式發生但「未」發生當機情形的工作階段百分比。
以下是計算無當機情形工作階段百分比的公式。其輸入值由 Crashlytics SDK 提供,並根據您從 Crashlytics 資訊主頁右上角的下拉式選單中選取的時間範圍。
CRASH_FREE_SESSIONS_PERCENTAGE = 1 - (CRASHED_SESSIONS / ALL_SESSIONS)
CRASHED_SESSIONS 代表在所選時間範圍內,以當機結束的工作階段數量。
ALL_SESSIONS 代表應用程式在所選時間範圍內發生的工作階段總數。
未發生當機情形的工作階段百分比是一段時間內的匯總,而非平均值。
資料收集設定對指標品質的影響
視資料收集設定而定,無當機指標可能會顯示低值或零值。以下是兩種可能導致無當機指標不準確的常見情況:
如果您啟用選擇加入式回報功能,並停用自動當機回報功能,則只有明確選擇加入資料收集的使用者才能將當機資訊傳送至 Crashlytics。因此,Crashlytics 只會顯示這些選擇加入的使用者 (而非所有使用者) 的當機資訊,因此當機指標的準確度會受到影響。這表示無當機指標的可靠性可能較低,且無法充分反映應用程式的整體穩定性。
如果您已停用自動資料收集功能,可以使用
sendUnsentReports
將裝置端快取的報表傳送至 Crashlytics。使用這個方法會將當機資料傳送至 Crashlytics,但不會傳送工作階段資料,這會導致控制台圖表顯示零或低值,表示沒有當機指標。