

适用于 Unity 的 AWS 移动 SDK 现已包含在 适用于 .NET 的 AWS SDK。本指南引用适用于 Unity 的 Mobile SDK 的存档版本。有关更多信息，请参阅 [适用于 Unity 的 AWS 移动 SDK 是什么？](what-is-unity-plugin.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon Mobile Analytics
<a name="analytics"></a>

使用 Amazon Mobile Analytics，您可以跟踪客户行为、聚合指标、生成数据可视化以及确定有意义的模式。有关 Mobile Analytics 的信息，请参阅 [AWS Mobile Analytics](https://aws.amazon.com/mobileanalytics/)。

## 集成 Amazon Mobile Analytics
<a name="integrating-amazon-mobile-analytics"></a>

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

### 在 Mobile Analytics 控制台中创建应用程序
<a name="create-an-app-in-the-mobile-analytics-console"></a>

转到 [Amazon Mobile Analytics 控制台](https://docs.aws.amazon.com/mobileanalytics/latest/ug/migrate-console.html)并创建应用程序。请记下 `appId` 值，因为您稍后会用到它。

**注意**  
要详细了解如何使用控制台，请参阅 [Amazon Mobile Analytics 用户指南](https://docs.aws.amazon.com/mobileanalytics/latest/ug/)。

在 Mobile Analytics 控制台中创建应用程序时，您需要指定 Cognito 身份池 ID。要创建新的 Cognito 身份池并生成一个 ID，请参阅 [Cognito Identity 开发人员指南](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html)。

### 将 Mobile Analytics 集成到应用程序
<a name="integrate-mobile-analytics-into-your-app"></a>

要从 Unity 访问 Mobile Analytics，您将需要以下 using 语句：

```
using Amazon.MobileAnalytics.MobileAnalyticsManager;
using Amazon.CognitoIdentity;
```

最佳做法是使用 Amazon Cognito 向您的应用程序提供临时的 AWS 凭证。这些凭证使得应用程序能够访问您的 AWS 资源。要创建凭证提供程序，请按照 [Amazon Cognito Identity](cognito-identity.md) 上的说明操作。

使用以下信息 MobileAnalyticsManager 实例化实例：
+ cognitoIdentityPoolID-你的应用程序的 Cognito 身份池的 ID
+ CognitoRegion-您的 Cognito 身份池所在的区域，例如 “。RegionEndpoint USEast1”
+ 区域-Mobile Analytics 服务的区域，例如 “RegionEndpoint。 USEast1”
+ appId – 当您添加应用程序时，Mobile Analytics 控制台生成的值

使用初始 MobileAnalyticsClientContextConfig 化**`MobileAnalyticsManager`**实例，如以下代码片段所示：

```
// Initialize the MobileAnalyticsManager
void Start()
{
    // ...
    analyticsManager = MobileAnalyticsManager.GetOrCreateInstance(
        new CognitoAWSCredentials(<cognitoIdentityPoolId>, <cognitoRegion>),
        <region>,
        <appId>);
    // ...
}
```

**注意**  
应用程序 ID 是在执行应用程序创建向导期间生成的。这两个值都必须与 Mobile Analytics 控制台中相应的值匹配。

`appId` 用于在 Mobile Analytics 控制台中将您的数据分组。在 Mobile Analytics 控制台创建应用程序后，要查找应用程序 ID，请导航到 Mobile Analytics 控制台，然后单击屏幕右上角的齿轮图标。这将显示应用程序管理页面，其中列出了所有注册的应用程序及其应用程序 IDs。

### 记录货币化事件
<a name="record-monetization-events"></a>

适用于 Unity 的 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);
```

### 记录自定义事件
<a name="record-custom-events"></a>

Mobile Analytics 允许您定义自定义事件。自定义事件完全由您自己定义；它们帮助您跟踪特定于您的应用程序或游戏的用户操作。有关自定义事件的更多信息，请参阅[自定义事件](https://aws.amazon.com/mobileanalytics/faqs/#custom-event-details)。在本示例中，假设您的应用程序是一个游戏，并且您希望在用户完成一关时记录一个事件。通过创建新`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);
```

### 记录会话
<a name="recording-sessions"></a>

当应用程序失去焦点时，您可以暂停会话。在 `OnApplicationFocus` 中，检查应用程序是否暂停。如果暂停，则调用 `PauseSession`，否则调用 `ResumeSession`，如以下代码段所示：

```
void OnApplicationFocus(bool focus)
{
    if(focus)
    {
        analyticsManager.ResumeSession();
    }
    else
    {
        analyticsManager.PauseSession();
    }
}
```

默认情况下，如果用户切换焦点，应用程序失焦少于 5 秒，然后再切换回应用程序，则会话将恢复。如果用户切换焦点，使应用程序失焦 5 秒或更长时间，将创建新的会话。可在 awsconfig.xml 文件中配置此设置。有关更多信息，请参阅[《适用于 Unity 的 AWS Mobile SDK 入门》](getting-started-unity.md)的“配置 Mobile Analytics”部分。