共用方式為


App Center Analytics (Android)

這很重要

Visual Studio App Center 於 2025 年 3 月 31 日淘汰,但分析和診斷功能除外,這些功能將持續支援到 2026 年 6 月 30 日。 瞭解更多資訊。

App Center Analytics 可協助您了解使用者行為和客戶參與,以改善您的應用程式。 SDK 會自動擷取會話計數和裝置屬性,例如模型、OS 版本等。您可以定義自己的自定義事件,以測量對您而言很重要的事情。 您可以在 App Center 入口網站中取得擷取的所有資訊,讓您分析數據。

如果您尚未在應用程式中設定 SDK,請遵循 [ SDK 使用者入門] 區段。

會話和裝置資訊

將 App Center Analytics 新增至應用程式並啟動 SDK 之後,它會自動追蹤會話和裝置屬性,例如 OS 版本、模型等,而不需要撰寫任何其他程式碼。

國碼 (地區碼)

如果裝置已安裝行動數據數據數據機和 SIM 卡,SDK 會自動報告使用者的國家/地區代碼。 僅限WiFi的裝置預設不會回報國家/地區代碼。 若要設定這些使用者的國家/地區代碼,您必須自行擷取使用者的位置,並在 setCountryCode: SDK 中使用 方法:

AppCenter.setCountryCode("en");
AppCenter.setCountryCode("en")

備註

若要在 Analytics 工作階段上顯示國家/地區代碼,必須先呼叫 AppCenter.setCountryCode,然後再呼叫 AppCenter.start

自訂事件

您可以使用 最多 20 個屬性 來追蹤自己的自訂事件,以瞭解使用者與應用程式之間的互動。

啟動 SDK 之後,請使用 trackEvent() 方法來追蹤事件與屬性。 您最多可以傳送 200 個不同的事件名稱。 此外,字元限制上限如下:

  • 每個 event name256 個字元。
  • 每個 event property nameevent property value125 個字元。
Map<String, String> properties = new HashMap<>();
properties.put("Category", "Music");
properties.put("FileName", "favorite.avi");

Analytics.trackEvent("Video clicked", properties);
val properties = hashMapOf("Category" to "Music", "FileName" to "favorite.avi")
Analytics.trackEvent("Video clicked", properties)

事件的屬性是完全選擇性的 – 如果您只想追蹤事件,請改用此範例:

Analytics.trackEvent("Video clicked");
Analytics.trackEvent("Video clicked")

事件優先順序和持續性

您可以追蹤比其他事件具有較高重要性的業務關鍵事件。

  • 開發人員可以將事件的優先順序設定為 [一般 ] 或Flags.NORMAL [API] 或 [ 重大 ] (Flags.CRITICAL 在 API 中)。
  • 優先順序設定為 [ 重大 ] 的事件會先從記憶體擷取,並在 Normal 事件之前傳送。
  • 當本機記憶體已滿,而且需要儲存新的事件時,會先刪除優先順序最低的最舊事件。
  • 如果記憶體已滿含 重要 優先順序的記錄,則追蹤具有 正常 優先順序的事件將會失敗,因為 SDK 無法在該情況下騰出空間。
  • 如果您也使用 損毀 服務,當機記錄會設定為 Critical ,並共用與事件相同的記憶體。
  • 傳輸間隔只會套用至 一般 事件, 重大 事件會在 3 秒後傳送。

您可以使用下列 API,將事件追蹤為 重要

Map<String, String> properties = new HashMap<>();
properties.put("Category", "Music");
properties.put("FileName", "favorite.avi");

Analytics.trackEvent("eventName", properties, Flags.CRITICAL);

// If you're using name only, you can pass null as properties.
val properties = hashMapOf("Category" to "Music", "FileName" to "favorite.avi")
Analytics.trackEvent("Video clicked", properties, Flags.CRITICAL)

// If you're using name only, you can pass null as properties.

暫停和繼續傳送記錄

暫停事件傳輸在應用程式需要控制網路頻寬以取得更多商務關鍵需求的案例中很有用。 您可以暫停將記錄傳送至 App Center 後端。 暫停時,事件仍可追蹤並儲存,但不會立即傳送。 應用程式在暫停時追蹤的任何事件,只會在您呼叫 resume之後傳送。

Analytics.pause();
Analytics.resume();
Analytics.pause()
Analytics.resume()

在運行時間啟用或停用 App Center Analytics

您可以在運行時間啟用和停用 App Center Analytics。 如果您將其停用,SDK 將不會收集應用程式的任何其他分析資訊。

Analytics.setEnabled(false);
Analytics.setEnabled(false)

若要再次啟用App Center Analytics,請使用相同的API,但傳遞 true 做為參數。

Analytics.setEnabled(true);
Analytics.setEnabled(true)

狀態會保存在裝置跨應用程式啟動時的記憶體中。

此 API 是異步的,您可以在 我們的 App Center 異步 API 指南中深入瞭解。

備註

只在啟動 Analytics 之後,才能使用這個方法。

檢查 App Center 分析是否已啟用

您也可以檢查 App Center Analytics 是否已啟用。

Analytics.isEnabled();
Analytics.isEnabled()

此 API 是異步的,您可以在 我們的 App Center 異步 API 指南中深入瞭解。

備註

這個方法只能在 Analytics 已啟動後使用,開始之前它總是會傳回 false

管理啟動工作階段

根據預設,會話標識碼取決於應用程式的生命週期。 如果您想要手動控制新工作階段的開始,請遵循後續步驟:

備註

請注意 ,Analytics.StartSession() API 的每個呼叫都會產生新的會話。 如果在手動會話追蹤器模式下未呼叫此 API,則所有傳送記錄將具有空會話值。

備註

請注意,在新的應用程式啟動之後,會話標識碼將會重新產生。

  • 在 SDK 啟動之前呼叫下列方法:
Analytics.enableManualSessionTracker();
Analytics.enableManualSessionTracker()
  • 接著,您可以在 startSession 之後使用 AppCenter.start API。
Analytics.startSession();
Analytics.startSession()

本機儲存體大小

根據預設,SDK 會儲存最多 10 MB 的所有事件記錄檔。 開發人員可以使用 API 來增加 記憶體大小 ,SDK 會持續儲存記錄,直到記憶體已滿為止。

沒有因特網存取

沒有網路連線時,SDK 會在本機記憶體中儲存最多 10 MB 的記錄。 記憶體已滿之後,SDK 會開始捨棄舊的記錄,以騰出空間供新的記錄使用。 網路連線恢復後,SDK 會以 50 筆為一批或每隔 6 秒(預設方式)傳送記錄。

備註

後端不會接受超過 25 天的記錄。

批處理事件記錄

App Center SDK 會在 50 個批次中上傳記錄,如果 SDK 沒有 50 個要傳送的記錄,它仍會在 6 秒後傳送記錄(預設)。 最多可以平行傳送三個批次。 傳輸間隔可以變更:

// Change transmission interval to 10 seconds.
Analytics.setTransmissionInterval(10000);
// Change transmission interval to 10 seconds.
Analytics.setTransmissionInterval(10000)

傳輸間隔值必須介於 6 秒到 86400 秒之間(一天),而且必須在服務啟動之前呼叫此方法。

重試和退避邏輯

App Center SDK 支援可復原網路錯誤的回復重試。 以下是重試邏輯:

  • 每個請求最多可嘗試3次。
  • 每個請求都有自己的重試狀態機。
  • 在一個請求耗盡其所有重試後,所有傳輸通道都會停用(直到下一次應用程式進程)。

退後邏輯

  • 50% 隨機化,第一次重試 5 到 10 秒,下一次嘗試介於 2.5 到 5 分鐘之間,最後一次嘗試介於 10 到 20 分鐘之間。
  • 如果網路從關閉切換為開啟(或從 wi-fi 切換至行動裝置),則會重設重試狀態,並立即重試要求。