

이제 Xamarin용 AWS Mobile SDK가에 포함됩니다 AWS SDK for .NET. 이 안내서에서는 Xamarin용 모바일 SDK의 아카이브된 버전을 참조합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

 [Amazon Mobile Analytics](https://aws.amazon.com/mobileanalytics/)는 대규모로 앱 사용량 데이터를 수집, 시각화, 분석 및 추출하는 서비스입니다. Mobile Analytics는 표준 디바이스 데이터와 커스텀 이벤트를 모두 손쉽게 캡처하고 사용자 대신 자동으로 보고서를 계산합니다. 아래 나열된 집계 보고서 이외에 추가 분석으로 위해 자동으로 데이터를 Redshift 및 S3으로 내보내도록 설정할 수도 있습니다.

Amazon Mobile Analytics를 사용하면 고객 행동을 추적하고, 지표를 집계하고, 데이터 시각화를 생성하고, 유의미한 패턴을 식별할 수 있습니다.

## 핵심 개념
<a name="key-concepts"></a>

### 보고서 유형
<a name="report-types"></a>

Mobile Analytics에서는 Mobile Analytics 콘솔을 통해 다음과 같은 보고서를 즉시 사용할 수 있습니다.
+ Daily Active Users(DAU), Monthly Active Users(MAU) 및 New Users
+ Sticky Factor(DAU / MAU)
+ 세션 수 및 Daily Active User당 평균 세션 수
+ DAU당 평균 수익(ARPDAU) 및 결제 DAU당 평균 수익(ARPPDAU)
+ 1일, 3일, 7일 유지 및 1주, 2주, 3주 유지
+ 커스텀 이벤트

다음 보고서가 콘솔에서 6개 보고 탭을 통해 제공됩니다.
+  **개요** – 참여를 빠르게 파악할 수 있도록 검토하기 쉬운 대시보드에서 9개의 미리 선택된 보고서를 추적합니다. MAU, DAU, 신규 사용자, 일별 세션, 고정 계수, 1일 유지, ARPDAU, 일별 결제 사용자, ARPPDAU.
+  **활성 사용자** – 일별 및 월별로 몇 명의 사용자가 게임에 참여하는지 추적하고 참여, 어필 및 수익화를 측정하기 위해 고정 계수를 모니터링합니다.
+  **세션** – 특정일에 앱이 사용되는 횟수와 특정일에 각 사용자가 앱을 여는 횟수를 추적합니다.
+  **유지** – 일별 및 주별로 고객이 앱을 다시 사용하는 비율을 추적합니다.
+  **수익** – 수익화 개선 영역을 알아보기 위해 앱 내 수익 추세를 추적합니다.
+  **커스텀 이벤트** – 앱에 고유한 사용자 지정 사용자 작업을 추적합니다.

Mobile Analytics 보고서 및 Mobile Analytics 콘솔 사용에 대한 자세한 내용은 Mobile Analytics 개발자 안내서의 [Mobile Analytics 콘솔 보고서 개요](https://docs.aws.amazon.com/mobileanalytics/latest/ug/using-the-console.html)를 참조하세요.

## 프로젝트 설정
<a name="project-setup"></a>

### 사전 조건
<a name="prerequisites"></a>

애플리케이션에서 Mobile Analytics를 사용하려면 프로젝트에 SDK를 추가해야 합니다. 이렇게 하려면 [.NET 및 Xamarin용 AWS Mobile SDK 설정](setup.md)의 지침을 따르세요.

### Mobile Analytics 설정 구성
<a name="configure-mobile-analytics-settings"></a>

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\$110 사이의 값을 사용하는 것이 좋습니다. 기본값은 5입니다.
+  **MaxDBSize** - 이벤트의 로컬 스토리지에 사용되는 데이터베이스의 최대 크기(바이트)입니다. 데이터베이스 크기가 이 값을 초과할 경우 추가 이벤트가 무시됩니다. 1\$110MB 사이의 값을 사용하는 것이 좋습니다. 기본값은 5242880(5MB)입니다.
+  **DBWarningThreashold** - 경고 임계값입니다. 사용할 수 있는 값은 0\$11입니다. 값이 임계값을 초과할 경우 경고 로그가 생성됩니다. 기본값은 0.9입니다.
+  **MaxRequestSize** - Mobile Analytics 서비스에 대한 HTTP 요청의 최대 크기입니다. 이 값은 바이트 단위로 지정되며 사용 가능한 범위는 1\$1512KB입니다. 기본값은 102400(100KB)입니다. 512KB보다 큰 값을 사용하지 마세요. 서비스가 HTTP 요청을 거부할 수 있습니다.
+  **AllowUseDataNetwork** - 셀룰러 데이터 네트워크에서 서비스 호출이 허용되는지 여부를 나타내는 값입니다. 고객의 데이터 사용량이 증가할 수 있으므로 이 옵션은 주의해서 사용해야 합니다.

위에 표시된 설정은 각 구성 항목의 기본값입니다.

## 애플리케이션에 Mobile Analytics 통합
<a name="integrating-mobile-analytics-with-your-application"></a>

다음 섹션에서는 앱에 Mobile Analytics를 통합하는 방법을 설명합니다.

### Mobile Analytics 콘솔에서 앱 생성
<a name="create-an-app-in-the-mobile-analytics-console"></a>

[Amazon Mobile Analytics 콘솔](https://aws.amazon.com/mobileanalytics/)로 이동하여 앱을 생성합니다. 나중에 필요하므로 `appId` 값을 기록합니다. Mobile Analytics 콘솔에서 앱을 생성할 때 자격 증명 풀 ID를 지정해야 합니다. 자격 증명 풀을 생성하기 위한 지침은 [.NET 및 Xamarin용 AWS Mobile SDK 설정](setup.md)을 참조하세요.

Mobile Analytics 콘솔 사용에 대한 자세한 내용은 Mobile Analytics 개발자 안내서의 [Mobile Analytics 콘솔 보고서 개요](https://docs.aws.amazon.com/mobileanalytics/latest/ug/using-the-console.html)를 참조하세요.

### MobileAnalyticsManager 클라이언트 생성
<a name="create-a-mobileanalyticsmanager-client"></a>

MobileAnalyticsManager를 초기화하려면 `MobileAnalyticsManager`에서 GetOrCreateInstance를 호출하여 AWS 자격 증명, 리전, Mobile Analytics 애플리케이션 ID 및 config 객체(선택 사항)를 가져옵니다.

```
// 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가 나열됩니다.

### 수익화 이벤트 기록
<a name="record-monetization-events"></a>

.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);
```

### 커스텀 이벤트 기록
<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>

#### Xamarin iOS
<a name="xamarin-ios"></a>

애플리케이션이 포커스를 잃을 경우 세션을 일시 중지할 수 있습니다. iOS 앱인 경우 다음 코드 조각에 표시된 대로 AppDelegate.cs 파일에서 `DidEnterBackground` 및 `WillEnterForeground`를 재정의하여 `MobileAnalyticsManager.PauseSesion` 및 `MobileAnalyticsManager.ResumeSession`을 호출합니다.

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

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

#### Xamarin Android
<a name="xamarin-android"></a>

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초 이상 앱에서 포커스를 돌릴 경우 새로운 세션이 생성됩니다. 이 설정은 aws\$1mobile\$1analytics.json 구성 파일에서 "SESSION\$1DELTA" 속성을 신규 세션을 생성하기 전에 대기할 시간(초)으로 설정하여 구성할 수 있습니다.