App Center Analytics (Android)

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

您可以在執行時間啟用和停用 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 是否已啟用

您也可以檢查 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 切換至行動裝置) ,則會重設重試狀態,並立即重試要求。