App Center Analytics (Android)
重要
Visual Studio App Center 已排定於 2025 年 3 月 31 日淘汰。 雖然您可以繼續使用 Visual Studio App Center,直到完全淘汰為止,但有數個建議的替代方案可以考慮移轉至。
App Center Analytics 可協助您了解使用者行為和客戶參與,以改善您的應用程式。 SDK 會自動擷取會話計數和裝置屬性,例如模型、OS 版本等。您可以定義自己的自定義事件,以測量對您而言很重要的專案。 您可以在 App Center 入口網站中取得擷取的所有資訊,以便您分析數據。
如果您尚未在應用程式中設定 SDK,請遵循 [SDK 使用者入門 ] 區段。
將 App Center Analytics 新增至您的應用程式並啟動 SDK 之後,它會自動追蹤會話和裝置屬性,例如 OS 版本、模型等等,而不需要撰寫任何其他程式代碼。
如果裝置已安裝行動數據數據數據機和 SIM 卡,SDK 會自動報告使用者的國家/地區代碼。 僅限WiFi的裝置預設不會報告國家/地區代碼。 若要設定這些使用者的國家/地區代碼,您必須自行擷取使用者的位置,並在 SDK 中使用 setCountryCode:
方法:
AppCenter.setCountryCode("en");
AppCenter.setCountryCode("en")
注意
若要在分析工作階段上顯示國家/地區代碼, AppCenter.setCountryCode
必須在呼叫 之前呼叫 AppCenter.start
。
您可以使用 最多 20 個屬性 來追蹤自己的自訂事件,以瞭解使用者與應用程式之間的互動。
啟動 SDK 之後,請使用 trackEvent()
方法來追蹤事件與屬性。 您最多可以傳送 200 個不同的事件名稱。 此外,還有最大字元限制:
- 每個
event name
256 個字元。 - 每個
event property name
&event property value
125 個字元。
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")
您可以追蹤重要性高於其他事件的商務關鍵事件。
- 開發人員可以在 API) 或 API) 中將事件優先順序設定為 標準
Flags.NORMAL
(或 重大 (Flags.CRITICAL
。 - 優先順序設定為 [重大 ] 的事件會先從記憶體擷取,並在 一般 事件之前傳送。
- 當本機記憶體已滿,且需要儲存新的事件時,會先刪除優先順序最低的最舊事件。
- 如果記憶體已滿含 重大 優先順序的記錄,則追蹤具有 正常 優先順序的事件將會失敗,因為 SDK 在該情況下無法有空間。
- 如果您也使用 當機 服務,當機記錄會設定為 [重大 ],並共用與事件相同的記憶體。
- 傳輸間隔只會套用至 一般 事件, 重大 事件會在 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。 如果您停用此功能,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 Analytics 是否已啟用。
Analytics.isEnabled();
Analytics.isEnabled()
此 API 是異步的,您可以在 我們的 App Center 異步 API 指南 中深入瞭解。
注意
這個方法只能在啟動之後 Analytics
使用,它一律會在開始之前傳回 false
。
根據預設,會話標識碼取決於應用程式的生命週期。 如果您想要手動控制新工作階段的開始,請遵循後續步驟:
注意
請注意,每個 Analytics.StartSession () API 呼叫都會產生新的會話。 如果在手動會話追蹤器模式中,將不會呼叫此 API,則所有傳送記錄都會有 Null 會話值。
注意
請注意,在新的應用程式啟動之後,會話標識碼將會重新產生。
- 在 SDK 啟動之前呼叫下列方法:
Analytics.enableManualSessionTracker();
Analytics.enableManualSessionTracker()
- 然後,您可以在 之後
AppCenter.start
使用startSession
API:
Analytics.startSession();
Analytics.startSession()
根據預設,SDK 會儲存最多 10 MB 的所有事件記錄。 開發人員可以使用 API 來增加 記憶體大小 ,而 SDK 會持續儲存記錄,直到記憶體已滿為止。
沒有網路連線時,SDK 會在本機記憶體中儲存最多 10 MB 的記錄。 記憶體已滿之後,SDK 會開始捨棄舊的記錄,以空間容納新的記錄。 一旦網路連線傳回,SDK 預設會每隔 6 秒傳送 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切換至行動裝置) ,則會重設重試狀態,並立即重試要求。