重要
Visual Studio App Center 于 2025 年 3 月 31 日停用,但分析和诊断功能除外,这些功能将继续受支持,直到 2026 年 6 月 30 日。 了解详细信息。
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();
此函数返回一个 promise,解决为boolean。
等待 JS 启用 App Center Analytics
如果希望收集应用用户的分析信息,但希望首先获得用户权限,可以选择在启动时不启用分析,但请等到正确的时间,并在 JavaScript 中启用它。
- 打开项目的
ios/YourAppName/AppDelegate.m文件,并将[AppCenterReactNativeAnalytics registerWithInitiallyEnabled:true];替换为[AppCenterReactNativeAnalytics registerWithInitiallyEnabled:false];。 - 打开项目的
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);
管理启动会话
默认情况下,会话 ID 取决于应用程序的生命周期。 如果要手动控制新会话的开始,请执行以下步骤:
注释
请注意 ,Analytics.StartSession() API 的每个调用都会生成一个新会话。 如果处于手动会话跟踪器模式,则不会调用此 API,则所有发送日志都将具有 null 会话值。
注释
请注意,新应用程序启动后,将重新生成会话 ID。
若要手动配置 SDK 以跟踪会话,必须使用本机分析 enableManualSessionTracker API:
在 iOS 中,先在应用的
[MSACAnalytics enableManualSessionTracker];中调用[AppCenterReactNative register];委托方法的didFinishLaunchingWithOptions,然后再调用AppDelegate.m。 如果该文件中缺少,请添加@import AppCenterAnalytics。在 Android 中,在
Analytics.enableManualSessionTracker();的SoLoader.init方法中,调用onCreate在MainApplication.java之前。 如果该文件中缺少导入,请添加导入com.microsoft.appcenter.analytics.Analytics。
然后,可以在 React Native 项目中使用 startSession API:
Analytics.startSession();
本地存储大小
默认情况下,SDK 将最多 10 MB 的日志存储在存储中。
无 Internet 访问
当没有任何网络连接时,SDK 将最多 10 MB 的日志保存在本地存储中。 存储完成后,SDK 将开始放弃旧日志,为新日志腾出空间。 设备恢复 Internet 访问后,SDK 将每隔 6 秒发送一批 50 或之后的日志。
批处理事件日志
App Center SDK 在 50 批中上传日志,如果 SDK 没有 50 个要发送的日志,它仍将在 6 秒后发送日志。 最多可以并行发送三批。
重试和退让逻辑
App Center SDK 支持对可恢复的网络错误进行回退重试。 下面是重试逻辑:
- 每个请求最多尝试 3 次。
- 每个请求都有自己的重试状态机。
- 在一个请求耗尽所有重试后,所有传输通道都会被禁用,直到应用程序进入下一个处理阶段。
退让逻辑
- 50% 随机化,第一次重试 5 秒到 10 秒,第二次重试介于 2.5 到 5 分钟之间,最后尝试 10 到 20 分钟。
- 如果网络从关机切换到打开(或从 wi-fi 切换到移动设备),则重试状态将重置,并立即重试请求。