App Center Analytics (React Native)

重要

Visual Studio App Center 已排定於 2025 年 3 月 31 日淘汰。 雖然您可以繼續使用 Visual Studio App Center,直到它完全淘汰為止,但有數個建議您考慮移轉至的建議替代方案。

深入瞭解支持時程表和替代方案。

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

如果您尚未在應用程式中設定 SDK,請遵循 開始使用一節

會話和裝置資訊

將 App Center Analytics 新增至您的應用程式並啟動 SDK 之後,它會自動追蹤會話和裝置屬性,例如 OS 版本、模型等。

自訂事件

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

啟動 SDK 之後,請使用 trackEvent 方法來追蹤事件與屬性。 您可以 傳送最多 200 個不同的事件名稱。 此外,每個事件名稱的最大限制為 256 個字元,每個事件屬性名稱和事件屬性值各有 125 個字元。

// import App Center Analytics at the top of the file.
import Analytics from 'appcenter-analytics';

Analytics.trackEvent('Video clicked', { Category: 'Music', FileName: 'favorite.avi' });

此函式會傳回承諾,成功案例會傳回空字串,而錯誤案例會傳回錯誤。

事件的屬性是選擇性的;如果您只想追蹤事件,請改用下列專案:

Analytics.trackEvent('Video clicked');

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

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

await Analytics.setEnabled(false);

此函式會傳回可解析為 void 的承諾。

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

await Analytics.setEnabled(true);

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

檢查 App Center Analytics 是否已啟用

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

const enabled = await Analytics.isEnabled();

此函式會傳回解析為 boolean的承諾。

等候 JS 啟用 App Center Analytics

如果您想要收集應用程式使用者的分析資訊,但想要先取得用戶許可權,您可以選擇不要在啟動時啟用分析,但請等到正確的時間,再改為在 JavaScript 中啟用。

  1. 開啟項目的檔案, ios/YourAppName/AppDelegate.m 並以 取代 [AppCenterReactNativeAnalytics registerWithInitiallyEnabled:true];[AppCenterReactNativeAnalytics registerWithInitiallyEnabled:false];
  2. 開啟項目的檔案, android/app/src/main/res/values/strings.xml 並以 取代 <string name="appCenterAnalytics_whenToEnableAnalytics" moduleConfig="true" translatable="false">ALWAYS_SEND</string><string name="appCenterAnalytics_whenToEnableAnalytics" moduleConfig="true" translatable="false">ENABLE_IN_JS</string>

這表示,若要將任何資訊傳送至 App Center (甚至基本會話資訊) ,您必須先新增下列程式代碼行來啟用 App Center Analytics:

await Analytics.setEnabled(true);

管理開始會話

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

注意

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

注意

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

若要手動設定 SDK 以追蹤工作階段,您必須使用原生分析 enableManualSessionTracker API:

  • 在iOS中,在應用程式的didFinishLaunchingWithOptions委派方法中AppDelegate.m呼叫 [MSACAnalytics enableManualSessionTracker]; 之前[AppCenterReactNative register];。 如果檔案中遺漏,請新增 @import AppCenterAnalytics

  • 在Android中,在方法中onCreateMainApplication.java呼叫 Analytics.enableManualSessionTracker(); 之前SoLoader.init。 如果檔案中遺漏,請新增匯 com.microsoft.appcenter.analytics.Analytics 入。

然後,您可以在 React Native 專案中使用 startSession API:

Analytics.startSession();

本機儲存體大小

根據預設,SDK 會將最多 10 MB 的記錄儲存在記憶體中。

沒有因特網存取

當沒有任何網路連線時,SDK 最多會在本機記憶體中儲存 10 MB 的記錄。 記憶體已滿之後,SDK 會開始捨棄舊的記錄,讓新記錄有空間。 裝置取得因特網存取后,SDK 會每隔 6 秒傳送 50 個批次中的記錄。

批處理事件記錄檔

App Center SDK 會在 50 個批次中上傳記錄,如果 SDK 沒有 50 個要傳送的記錄,它仍會在 6 秒後傳送記錄。 最多可以平行傳送三個批次。

重試和回復邏輯

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

  • 3 次嘗試每個要求的最大數目。
  • 每個要求都有自己的重試狀態機器。
  • 所有傳輸通道都會停用 (,直到下一個應用程式進程在一個要求耗盡所有重試之後) 為止。

倒退邏輯

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