App Center Analytics (MAUI 和 Xamarin)
重要
Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。
App Center Analytics 可帮助你了解用户行为和客户参与度,以改进应用。 SDK 自动捕获会话计数和设备属性,例如模型、OS 版本等。可以定义自己的自定义事件来度量对你很重要的事情。 App Center 门户中提供了捕获的所有信息,用于分析数据。
如果尚未在应用程序中设置 SDK,请按照 入门 部分进行操作。
将 App Center Analytics 添加到应用并启动 SDK 后,它将自动跟踪会话和设备属性(如 OS 版本、模型等),而无需编写任何其他代码。
如果设备安装了移动数据调制解调器和 SIM 卡,SDK 会自动报告用户的国家/地区代码。 默认情况下,仅限 WiFi 的设备不会报告国家/地区代码。 若要设置这些用户的国家/地区代码,必须自行检索用户的位置,并使用 SetCountryCode:
SDK 中的 方法:
AppCenter.SetCountryCode("en");
备注
若要在 Analytics 会话上显示国家/地区代码, AppCenter.SetCountryCode
必须在调用 AppCenter.Start
之前调用 。
可以使用 最多 20 个属性 跟踪自己的自定义事件,以了解用户与应用之间的交互。
启动 SDK 后,使用 TrackEvent()
方法通过属性跟踪事件。 最多可以发送 200 个不同的事件名称。 此外,每个事件名称的最大限制为 256 个字符,每个事件属性名称和事件属性值的最大限制为 125 个字符。
Analytics.TrackEvent("Video clicked", new Dictionary<string, string> {
{ "Category", "Music" },
{ "FileName", "favorite.avi"}
});
事件的属性是完全可选的 - 如果只想跟踪事件,请改用此示例:
Analytics.TrackEvent("Video clicked");
可以在运行时启用和禁用 App Center Analytics。 如果禁用它,SDK 不会为应用收集任何其他分析信息。
Analytics.SetEnabledAsync(false);
若要再次启用 App Center Analytics,请使用同一 API,但作为参数传递 true
。
Analytics.SetEnabledAsync(true);
无需等待此调用, (其他 API 调用(例如 IsEnabledAsync
) 一致)。
状态在应用程序启动时保留在设备的存储中。
备注
只有在启动后 Analytics
才能使用此方法。
还可以检查是否启用 App Center Analytics。
bool isEnabled = await Analytics.IsEnabledAsync();
备注
此方法只能在启动后 Analytics
使用,它始终在启动前返回 false
。
默认情况下,会话 ID 取决于应用程序的生命周期。 如果要手动控制新会话的开始,请执行后续步骤:
备注
请注意,每次调用 Analytics.StartSession () API 都会生成一个新会话。 如果在手动会话跟踪器模式下不会调用此 API,则所有发送日志都将具有 null 会话值。
备注
请注意,新应用程序启动后,将重新生成会话 ID。
- 在 SDK 启动之前调用以下方法:
Analytics.EnableManualSessionTracker();
- 然后,可以在 之后使用
StartSession
APIAppCenter.Start
:
Analytics.StartSession();
默认情况下,SDK 在存储中存储最多 10 MB 的日志。
如果没有任何网络连接,SDK 将最多 10 MB 的日志保存在本地存储中。 存储已满后,SDK 将开始放弃旧日志,为新日志腾出空间。 设备返回 Internet 访问权限后,SDK 将以 50 次或每隔 6 秒发送一批日志。
App Center SDK 会批量上传 50 个日志,如果 SDK 没有要发送的 50 个日志,它仍将在 6 秒后发送日志。 最多可以并行发送三批。
App Center SDK 支持对可恢复的网络错误进行回退重试。 下面是重试逻辑:
- 3 尝试每个请求的最大值。
- 每个请求都有自己的重试状态机。
- 所有传输通道 (禁用,直到下一个应用进程) 后,一个请求耗尽其所有重试。
回退逻辑
- 50% 随机化,第一次重试在 5 秒到 10 秒之间,第二次重试在 2.5 到 5 分钟之间,最后一次重试在 10 到 20 分钟之间。
- 如果网络从关机切换到 (或从 wi-fi 切换到移动) ,则重试状态会重置并立即重试请求。