Amazon Mobile Analytics - AWS Mobile SDK

AWS SDK for .NET 现在包括适用于 Xamarin 的 AWS Mobile SDK。本指南参考了适用于 Xamarin 的 Mobile SDK 的存档版本。

Amazon Mobile Analytics

Amazon Mobile Analytics 是一个用于大规模收集、可视化、理解和提取应用程序使用率数据的服务。Mobile Analytics 可轻松捕获标准设备数据和自定义事件,并代表您自动计算报告。除了下面列出的聚合报告,您还可以设置自动将数据导出到 Redshift 和 S3 以作进一步分析。

使用 Amazon Mobile Analytics,您可以跟踪客户行为、聚合指标、生成数据可视化以及确定有意义的模式。

重要概念

报告类型

Mobile Analytics 在 Mobile Analytics 控制台中提供以下现成的报告:

  • 每日活跃用户 (DAU),每月活跃用户 (MAU) 和新用户

  • 粘性系数 (DAU 除以 MAU)

  • 会话计数和单个每日活跃用户的平均会话数

  • 单个每日活跃用户的平均收入 (ARPDAU) 和单个每日付费活跃用户的平均收入 (ARPPDAU)

  • 第 1、第 3 和第 7 天的保留率和第 1、第 2 和第 3 周的保留率

  • 自定义事件

这些报告在控制台中通过六个报告选项卡提供:

  • 概览 – 在方便查看的控制面板中跟踪九个预先选择的报告以快速了解参与情况:MAU、DAU、新用户、每日会话、粘性系数、第 1 天的保留率、ARPDAU、每日付费用户、ARPPDAU。

  • 活跃用户 – 跟踪每天和每月有多少用户使用您的应用程序,监视粘性系数,以衡量参与度、吸引力和货币化指标。

  • 会话 – 跟踪在给定的某一天您的应用程序被使用的频率以及一天内每个用户打开您应用程序的频率。

  • 保留率 – 跟踪每天和每周客户回来使用您的应用程序的比率。

  • 收入 – 跟踪应用程序内收入趋势以确定货币化进展有待改进的方面。

  • 自定义事件 – 跟踪特定于您的应用程序的自定义用户操作。

要了解更多有关 Mobile Analytics 报告和在 Mobile Analytics 控制台中操作的信息,请参阅《Mobile Analytics 开发人员指南》中的 Mobile Analytics 控制台报告概览

项目设置

先决条件

要在您的应用程序中使用 Mobile Analytics,需要将软件开发工具包 (SDK) 添加到您的项目中。为此,请按照设置适用于 .NET 和 Xamarin 的 AWS Mobile SDK 中的说明操作。

配置 Mobile Analytics 设置

Mobile Analytics 会定义一些可在 awsconfig.xml 文件中配置的设置:

var config = new MobileAnalyticsManagerConfig(); config.AllowUseDataNetwork = true; config.DBWarningThreshold = 0.9f; config.MaxDBSize = 5242880; config.MaxRequestSize = 102400; config.SessionTimeout = 5;
  • SessionTimeout – 如果应用程序待在后台的时间长于 SessionTimeout,则 Mobile Analytics 客户端会终止当前会话,当应用程序回到前台时,将创建一个新的会话。建议使用从 5 到 10 的值。默认值为 5。

  • MaxDBSize – 用于本地存储事件的数据库最大大小 (以字节为单位)。如果数据库大小超过此值,后续事件将被忽略。建议使用从 1 MB 到 10 MB 的值。默认值是 5242880 (5 MB)。

  • DBWarningThreashold – 警告阈值。有效值范围为 0 到 1。如果值超出阈值,会生成警告日志。默认值为 0.9。

  • MaxRequestSize – 针对 Mobile Analytics 服务发出的 HTTP 请求的最大大小。该值以字节为单位,范围为 1-512 KB。默认值为 102400 (100 KB)。不要使用大于 512 KB 的值,否则可能导致服务拒绝 HTTP 请求。

  • AllowUseDataNetwork – 指示是否允许通过蜂窝数据网络调用服务的值。使用此选项要小心,因为有可能增加客户的数据使用量。

上方显示的设置均为每个配置项目的默认值。

将 Mobile Analytics 与您的应用程序集成

以下各节将阐述如何将 Mobile Analytics 与您的应用程序集成。

在 Mobile Analytics 控制台中创建应用程序

转到 Amazon Mobile Analytics 控制台并创建应用程序。请记下 appId 值,因为您稍后会用到它。在 Mobile Analytics 控制台中创建应用程序时,您需要指定身份池 ID。有关创建身份池的说明,请参阅设置适用于 .NET 和 Xamarin 的 AWS Mobile SDK

要了解更多有关在 Mobile Analytics 控制台中操作的信息,请参阅《Mobile Analytics 开发人员指南》中的 Mobile Analytics 控制台报告概览

创建 MobileAnalyticsManager 客户端

要初始化您的 MobileAnalyticsManager,请对 MobileAnalyticsManager 调用 GetOrCreateInstance,并传入您的 AWS 凭证、您的区域、Mobile Analytics 应用程序 ID 及可选的配置对象:

// Initialize the MobileAnalyticsManager analyticsManager = MobileAnalyticsManager.GetOrCreateInstance( cognitoCredentials, RegionEndpoint.USEast1, APP_ID, config );

APP_ID 是在执行应用程序创建向导期间生成的。这两个值都必须与 Mobile Analytics 控制台中相应的值匹配。APP_ID 用于在 Mobile Analytics 控制台中对您的数据进行分组。在 Mobile Analytics 控制台创建应用程序后,要查找应用程序 ID,请导航到 Mobile Analytics 控制台,然后单击屏幕右上角的齿轮图标。将显示“App Management”页面,其中列出了所有已注册的应用程序及其应用程序 ID。

记录货币化事件

适用于 .NET 和 Xamarin 的 AWS Mobile SDK 可提供 MonetizationEvent 类,该类可用来生成货币化事件,以跟踪在移动应用程序内进行的购买。以下代码段演示如何创建货币化事件:

// Create the monetization event object MonetizationEvent monetizationEvent = new MonetizationEvent(); // Set the details of the monetization event monetizationEvent.Quantity = 3.0; monetizationEvent.ItemPrice = 1.99; monetizationEvent.ProductId = "ProductId123"; monetizationEvent.ItemPriceFormatted = "$1.99"; monetizationEvent.Store = "Your-App-Store"; monetizationEvent.TransactionId = "TransactionId123"; monetizationEvent.Currency = "USD"; // Record the monetiziation event analyticsManager.RecordEvent(monetizationEvent);

记录自定义事件

Mobile Analytics 允许您定义自定义事件。自定义事件完全由您自己定义;它们可帮助您跟踪特定于您的应用程序或游戏的用户操作。有关自定义事件的更多信息,请参阅自定义事件

在本示例中,假设我们的应用程序是一个游戏,并且我们希望在用户完成一关时记录一个事件。通过创建新的 AmazonMobileAnalyticsEvent 实例来创建“LevelComplete”事件:

CustomEvent customEvent = new CustomEvent("LevelComplete"); // Add attributes customEvent.AddAttribute("LevelName","Level1"); customEvent.AddAttribute("CharacterClass","Warrior"); customEvent.AddAttribute("Successful","True"); // Add metrics customEvent.AddMetric("Score",12345); customEvent.AddMetric("TimeInLevel",64); // Record the event analyticsManager.RecordEvent(customEvent);

记录会话

Xamarin iOS

当应用程序失去焦点时,您可以暂停会话。对于 iOS 应用程序,在 AppDelegate.cs 文件中,重写 DidEnterBackgroundWillEnterForeground 来调用 MobileAnalyticsManager.PauseSesionMobileAnalyticsManager.ResumeSession,如以下代码段所示:

public override void DidEnterBackground(UIApplication application) { // ... _manager.PauseSesson(); // ... } public override void WillEnterForeground(UIApplication application) { // ... _manager.ResumeSession(); // ... }

Xamarin Android

对于 Android 应用程序,在 OnPause() 方法中调用 MobileAnalyticsManager.PauseSesion,在 OnResume() 方法中调用 MobileAnalyticsManager.ResumeSession,如下列代码片段中所示:

protected override void OnResume() { _manager.ResumeSession(); base.OnResume(); } protected override void OnPause() { _manager.PauseSession(); base.OnPause(); }

默认情况下,如果用户切换焦点,使应用程序失焦少于 5 秒,然后再切换回应用程序,则会话将恢复。如果用户切换焦点,使应用程序失焦 5 秒或更长时间,将创建新的会话。通过将“SESSION_DELTA”属性设置为创建新会话前等待的秒数,可在 aws_mobile_analytics.json 配置文件中配置此设置。