

 AWS Mobile SDK for Xamarin が に含まれるようになりました AWS SDK for .NET。このガイドでは、Mobile SDK for Xamarin のアーカイブバージョンについて説明します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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)、および新しいユーザー
+ Sticky Factor (DAU を MAU で割ったもの)
+ Daily Active User ごとの Session Count および Average Sessions
+ Average Revenue per Daily Active User (ARPDAU) および Average Revenue per Daily Paying Active User (ARPPDAU)
+ 1 日、3 日および 7 日ごとの保持期間と、1 週間、2 週間、および 3 週間ごとの保持期間
+ カスタムイベント:

これらのレポートは、コンソールに 6 つのレポートタブで表示されます。
+  **概要** - 事前に選択された次の 9 つのレポートを、見やすいダッシュボードで追跡し、簡単に確認することができます。MAU、DAU、New Users、Sticky Factor、Daily Sessions、1-Day Retention、ARPDAU、Daily Paying Users、ARPPDAU。
+  **アクティブなユーザー** - アプリを毎日、毎月どのくらいのユーザーが利用しているかを追跡し、エンゲージメント、アピール、収益化を測定するためのスティッキー係数を監視します。
+  **セッション** - 特定の日にアプリを使用する頻度と、1 日に各ユーザーがアプリを開く頻度を追跡します。
+  **保持期間** - 顧客が、毎日、毎週、アプリに戻ってくる率を追跡します。
+  **収益** - アプリ内の収益動向を追跡して、収益性向上のための領域を特定します。
+  **カスタムイベント** – アプリに特化したカスタムのユーザーアクションを追跡します。

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 を追加する必要があります。「[AWS Mobile SDK for .NET and Xamarin をセットアップする](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 ～ 10 の範囲の値を使用することをお勧めします。デフォルト値は 5 です。
+  **MaxDBSize** - イベントのローカルストレージに使用されるデータベースの最大サイズ (バイト単位)。データベースのサイズがこの値を超えた場合は、追加のイベントは無視されます。1 MB ～ 10 MB の範囲の値を使用することをお勧めします。デフォルト値は 5,242,880 (5 MB) です。
+  **DBWarningThreashold** - 警告のしきい値。有効な値の範囲は 0 ～ 1 です。値がしきい値を超える場合は警告ログが生成されます。デフォルト値は 0.9 です。
+  **MaxRequestSize** - Mobile Analytics サービスに対して行われた HTTP リクエストの最大サイズ。値はバイト単位で指定され、1 〜 512 KB の範囲で指定できます。デフォルト値は 102,400 (100 KB) です。512 KB を超える値を使用しないでください。サービスによって 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 プール ID を指定する必要があります。ID プールの作成手順については、「[AWS Mobile SDK for .NET and Xamarin をセットアップする](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、オプションの構成オブジェクトに渡すには、次のようにします。

```
// 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 コンソールに移動して、画面右上隅の歯車アイコンをクリックします。これにより、登録済みのアプリとアプリ ID がすべて表示されたアプリの管理ページが表示されます。

### 収益化イベントの記録
<a name="record-monetization-events"></a>

AWS Mobile SDK for .NET and Xamarin には、`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」プロパティを新しいセッションを作成するまで待機する秒数に設定することで設定できます。