App Center Analytics (Apache Cordova)

重要

Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。

详细了解支持时间线和替代方案。

注意

对 Cordova Apps 的支持已于 2022 年 4 月结束。 有关详细信息,请参阅 App Center 博客

App Center Analytics 可帮助你了解用户行为和客户参与度,以改进应用。 SDK 自动捕获会话计数和设备属性,例如模型、OS 版本等。可以定义自己的自定义事件来度量对你很重要的事情。 App Center 门户中提供了捕获的所有信息,用于分析数据。

如果尚未在应用程序中设置 SDK,请按照 入门 部分进行操作。

会话和设备信息

将 App Center Analytics 添加到应用并启动 SDK 后,它将自动跟踪会话和设备属性,例如 OS 版本、模型等。

自定义事件

可以使用 最多 20 个属性 跟踪自己的自定义事件,以了解用户与应用之间的交互。

启动 SDK 后,使用 trackEvent 方法通过属性跟踪事件。 最多可以发送 200 个不同的事件名称。 此外,每个事件名称的最大限制为 256 个字符,每个事件属性名称和事件属性值的最大限制为 125 个字符。

var success = function() {
    console.log("Event tracked");
}

var error = function(error) {
    console.error(error);
}
AppCenter.Analytics.trackEvent('Video clicked', { Category: 'Music', FileName: 'favorite.avi' }, success, error);

此函数使用第三个参数作为返回空字符串的成功回调,使用第四个参数作为返回错误的错误回调。

事件的属性是完全可选的。 如果只想跟踪事件,请改用此示例:

var success = function() {
    console.log("Event tracked");
}

var error = function(error) {
    console.error(error);
}

AppCenter.Analytics.trackEvent('Video clicked', success, error);

在运行时启用或禁用 App Center Analytics

可以在运行时启用和禁用 App Center Analytics。 如果禁用它,SDK 将不再收集应用的分析信息。

var success = function() {
    console.log("Analytics disabled");
}

var error = function(error) {
    console.error(error);
}

AppCenter.Analytics.setEnabled(false, success, error);

此函数使用第二个参数作为返回空字符串的成功回调,使用第三个参数作为返回错误的错误回调。 若要再次启用 App Center Analytics,请使用同一 API,但作为参数传递 true

var success = function() {
    console.log("Analytics enabled");
}

var error = function(error) {
    console.error(error);
}

AppCenter.Analytics.setEnabled(true, success, error);

状态在应用程序启动时保留在设备的存储中。

检查是否启用了 App Center Analytics

还可以检查是否启用 App Center Analytics。

var success = function(result) {
    console.log("analytics " + (result) ? "enabled" : "disabled");
}

var error = function(error) {
    console.error(error);
}

AppCenter.Analytics.isEnabled(success, error);

此函数使用第一个参数作为返回的成功回调,第二个 boolean 参数用作返回错误的错误回调。

等待 JS 启用 App Center Analytics

在某些情况下,应用程序可能希望询问用户是否要共享分析信息。 在这种情况下,应将首选项APPCENTER_ANALYTICS_ENABLE_IN_JStrue更改为 config.xml

<preference name="APPCENTER_ANALYTICS_ENABLE_IN_JS" value="true" />

这意味着,若要将任何信息发送到 App Center (甚至基本会话信息) ,开发人员必须先在应用内启用 App Center Analytics,方法是将以下行添加到代码中。

var success = function() {
    console.log("analytics disabled");
}

var error = function(error) {
    console.error(error);
}

AppCenter.Analytics.setEnabled(true, success, error);

本地存储大小

默认情况下,SDK 在存储中存储最多 10 MB 的日志。

无 Internet 访问

如果没有任何网络连接,SDK 将最多 10 MB 的日志保存在本地存储中。 存储已满后,SDK 将开始放弃旧日志,为新日志腾出空间。 设备返回 Internet 访问权限后,SDK 将以 50 次或每隔 3 秒发送一批日志。

批处理事件日志

App Center SDK 将一批 50 个日志上传,如果 SDK 没有 50 个要发送的日志,它仍将在 3 秒后发送日志。 最多可以并行发送三批。

重试和回退逻辑

App Center SDK 支持对可恢复的网络错误进行回退重试。 下面是重试逻辑:

  • 3 尝试每个请求的最大值。
  • 每个请求都有自己的重试状态机。
  • 所有传输通道 (禁用,直到下一个应用进程) 后,一个请求耗尽其所有重试。

回退逻辑

  • 50% 随机化,第一次重试在 5 秒到 10 秒之间,第二次重试在 2.5 到 5 分钟之间,最后一次重试在 10 到 20 分钟之间。
  • 如果网络从关机切换到 (或从 wi-fi 切换到移动) ,则重试状态会重置并立即重试请求。