瞭解未發生當機情形的指標

Crashlytics 會自動計算並顯示每個應用程式的未當機指標,具體來說,就是未當機使用者百分比和未當機工作階段百分比。這些指標可協助您快速瞭解應用程式的穩定性。

您可以在Crashlytics 資訊主頁頂端查看這些無當機指標的圖表,並依各種維度篩選這些圖表,例如日期範圍、版本和 (適用於 Android 應用程式) Google Play 測試群。

請注意,系統只會計算嚴重事件的無當機指標 (以及 Unity 和 Flutter 回報為嚴重事件的未偵測例外狀況)。

取得未發生當機情形的指標

在大多數應用程式中,只要整合 Crashlytics SDK,系統就會自動計算未發生當機情形的指標。不過,在某些情況下,Crashlytics 不會收到計算未發生當機情形指標所需的資料:

  • 使用舊版 Crashlytics SDK 的應用程式版本 (請參閱下方支援的最低版本)

  • 應用程式版本停用自動 Crashlytics 資料收集和回報功能 (詳情請參閱本頁的「資料收集設定對指標品質的影響」一節)

支援無當機指標的 SDK 版本

如要取得未發生當機情形的指標,請務必更新應用程式,使用支援這些指標的 Crashlytics SDK 版本。以下是支援無當機指標的 Crashlytics SDK 最低版本:

  • Apple 平台:v10.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代表在所選時間範圍內,與應用程式互動的使用者總數。

不受當機影響的使用者百分比是一段時間內的匯總資料,而非平均值。

請勿比較不同時間範圍內,未發生當機的使用者人數。 使用者使用應用程式的次數越多,發生當機的機率就越高,因此時間範圍越長,未遇到當機情形的使用者人數可能越少。

如何計算未發生當機情形的工作階段?

未發生當機情形的工作階段值,代表在所選時間範圍內,應用程式中未發生當機情形的工作階段百分比。

以下是計算未發生當機情形的工作階段百分比公式。輸入值由 Crashlytics SDK 提供,並根據您在 Crashlytics 資訊主頁右上方的下拉式選單中選取的時間範圍而定。

CRASH_FREE_SESSIONS_PERCENTAGE = 1 - (CRASHED_SESSIONS / ALL_SESSIONS)

  • CRASHED_SESSIONS 代表在所選時間範圍內,以當機結束的工作階段數量。

  • ALL_SESSIONS 代表所選時間範圍內,應用程式中發生的工作階段總數。

未發生當機情形的工作階段百分比是一段時間內的匯總資料,而非平均值。

資料收集設定對指標品質的影響

視資料收集設定而定,未發生當機情形的指標可能會顯示低值或零值。以下是導致無當機指標不可靠的兩種常見情況:

  • 如果停用自動當機回報功能,啟用選擇加入回報功能,則只有在使用者明確選擇加入資料收集時,系統才會將當機資訊傳送至 Crashlytics。因此,無當機指標的準確度會受到影響,因為 Crashlytics 只有這些選擇加入的使用者 (而非所有使用者) 的當機資訊。這表示未發生當機情形的指標可能較不可靠,也較無法反映應用程式的整體穩定性。

  • 如果停用自動資料收集功能,可以使用 sendUnsentReports 將裝置端快取的報表傳送至 Crashlytics。使用這個方法會將當機資料傳送至 Crashlytics,但不會傳送工作階段資料,導致控制台圖表顯示無當機指標的值偏低或為零。