App Center Analytics (Unity)

重要

Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。

詳細については、サポートタイムラインと代替手段に関するページを参照してください。

App Center Analytics は、アプリを改善するためのユーザーの行動と顧客エンゲージメントを理解するのに役立ちます。 SDK では、セッション数とデバイス プロパティ (モデル、OS バージョンなど) が自動的にキャプチャされます。自分にとって重要なものを測定するために、独自のカスタム イベントを定義できます。 キャプチャされたすべての情報は、データを分析するために App Center ポータルで使用できます。

アプリケーションで SDK をまだ設定していない場合は、「 Unity の使用を開始 する」セクションの手順に従います。

注意

以下に示す API を使用するには、ファイルに次 using のステートメントを追加する .cs 必要があります。

using Microsoft.AppCenter.Unity.Analytics;

また、App Center ゲーム オブジェクトの設定で [ Use Analytics]\(分析の使用 \) がオンになっていることを確認する必要があります。

セッションとデバイスの情報

App Center Analytics を追加して SDK を起動すると、アプリで追加のコードを必要とせずに、OS のバージョン、モデルなどのセッションとデバイスのプロパティが自動的に追跡されます。

カスタム イベント

最大 20 個のプロパティを使用して独自のカスタム イベントを追跡して、アプリで何が起こっているかを把握し、ユーザーアクションを理解し、App Center ポータルで集計を確認できます。

プロパティを TrackEvent() 使用してイベントを追跡するには、 メソッドを使用します。 最大 200 個の個別のイベント名を送信できます。 イベント名あたり 256 文字、イベント プロパティ名と値ごとに 125 文字の上限があります。

Analytics.TrackEvent("Video clicked", new Dictionary<string, string> {
	{ "Category", "Music" },
	{ "FileName", "favorite.avi" }
});

イベントのプロパティは省略可能です。イベントを追跡するだけの場合は、代わりに次のサンプルを使用します。

Analytics.TrackEvent("Video clicked");

警告

Analytics.TrackEvent()スクリプトAppCenterBehavior.csの メソッドより前Awake()に呼び出された場合、プラットフォーム間で一貫性のない動作が行われます。 安全を確保するには、アプリケーションの最初のシーンがすべてのスクリプトを起動した後にのみ送信されるイベントに依存する MonoBehaviour 必要があります。 の初期化と組み合わせてイベントをMonoBehavour追跡するには、 ではなくAwake()、スクリプトの Start() メソッドに API を追加することを検討してください。

実行時に App Center Analytics を有効または無効にする

実行時に App Center Analytics を有効または無効にすることができます。 無効にすると、SDK はアプリの分析情報の収集を停止します。 Analytics を無効にするには、パラメーターとして を渡して false 、次の API を使用します。

Analytics.SetEnabledAsync(false);

App Center Analytics を再度有効にするには、同じ API を使用しますが、パラメーターとして を渡します true

Analytics.SetEnabledAsync(true);

状態は、アプリケーションの起動間でデバイスのストレージに保持されます。

この API は非同期です。詳細については、 App Center の非同期 API ガイドを参照してください。

App Center Analytics が有効になっているかどうかを確認する

App Center Analytics が有効かどうかをチェックすることもできます。

bool isEnabled = await Analytics.IsEnabledAsync();

イベントの優先度と永続化

他のイベントよりも重要度の高いビジネス クリティカルなイベントを追跡できます。

開発者は、イベントの永続化を Normal (Flags.PersistenceNormal API の場合) または Critical (Flags.PersistenceCritical API の場合) として設定できます。

次の API を使用して、 イベントを Critical として追跡できます。

Analytics.TrackEvent("eventName", Flags.PersistenceCritical);

プロパティを使用している場合:

Analytics.TrackEvent("eventName", new Dictionary<string, string> {
	{ "Category", "Music" },
	{ "FileName", "favorite.avi" }
}, Flags.PersistenceCritical);

ログの送信を一時停止して再開する

イベント転送の一時停止は、アプリがビジネス クリティカルなニーズに合わせてネットワーク帯域幅を制御する必要があるシナリオで役立ちます。 App Center バックエンドへのログの送信を一時停止できます。 一時停止しても、イベントは追跡および保存できますが、すぐには送信されません。 一時停止中にアプリが追跡するすべてのイベントは、 を呼び出 Analytics.Resumeした後にのみ送信されます。

Analytics.Pause();
Analytics.Resume();

この API は非同期です。詳細については、 App Center の非同期 API ガイドを参照してください。

開始セッションを管理する

既定では、セッション ID はアプリケーションのライフサイクルによって異なります。 新しいセッションの開始を手動で制御する場合は、次の手順に従います。

注意

Analytics.StartSession() API の各呼び出しで新しいセッションが生成されることに注意してください。 手動セッション トラッカー モードでは、この API が呼び出されない場合、すべての送信ログに null セッション値が設定されます。

注意

新しいアプリケーションの起動後にセッション ID が再生成されることに注意してください。

  • AppCenterBehavior がアタッチされているゲーム オブジェクトの [分析] セクションの [手動セッション トラッカーを有効にする] チェック ボックスをオフにします。
  • 次に、 の後に StartSession API を AppCenter.Start使用できます。
Analytics.StartSession();

ローカル ストレージ サイズ

既定では、SDK はストレージに最大 10 MB のログを格納します。

インターネットにアクセスできない

ネットワーク接続がない場合、SDK はローカル ストレージに最大 10 MB のログを保存します。 ストレージがいっぱいになると、SDK は古いログの破棄を開始して、新しいログを格納します。 デバイスがインターネットに戻ると、SDK は 50 秒のバッチで、または 6 秒ごとにログを送信します。

イベント ログのバッチ処理

App Center SDK は 50 のバッチでログをアップロードします。SDK に送信するログが 50 個ない場合でも、6 秒後もログが送信されます。 並列で送信されるバッチは最大 3 つまでです。

再試行ロジックとバックオフ ロジック

App Center SDK では、回復可能なネットワーク エラーに対するバックオフ再試行がサポートされています。 再試行ロジックを次に示します。

  • 要求ごとに最大 3 回試行します。
  • 各要求には、独自の再試行状態マシンがあります。
  • 1 つの要求ですべての再試行が使い果たされた後、すべての送信チャネルが無効になります (次のアプリ プロセスまで)。

バックオフ ロジック

  • 50% のランダム化、最初の再試行は 5 秒から 10 秒、2 回目の再試行は 2.5 ~ 5 分、最後の試行は 10 分から 20 分です。
  • ネットワークがオフからオン (または Wi-Fi からモバイル) に切り替わる場合、再試行の状態はリセットされ、要求はすぐに再試行されます。