Amazon Mobile Analytics - AWS Mobile SDK

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

Amazon Mobile Analytics

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

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

핵심 개념

보고서 유형

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 콘솔 보고서 개요를 참조하세요.

프로젝트 설정

필수 조건

애플리케이션에서 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~10MB 사이의 값을 사용하는 것이 좋습니다. 기본값은 5242880(5MB)입니다.

  • DBWarningThreashold - 경고 임계값입니다. 사용할 수 있는 값은 0~1입니다. 값이 임계값을 초과할 경우 경고 로그가 생성됩니다. 기본값은 0.9입니다.

  • MaxRequestSize - Mobile Analytics 서비스에 대한 HTTP 요청의 최대 크기입니다. 이 값은 바이트 단위로 지정되며 사용 가능한 범위는 1~512KB입니다. 기본값은 102400(100KB)입니다. 512KB보다 큰 값을 사용하지 마세요. 서비스가 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 및 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가 나열됩니다.

수익화 이벤트 기록

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