App Center Analytics (React Native)
重要
Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。
App Center Analytics は、アプリを改善するためのユーザーの行動と顧客エンゲージメントを理解するのに役立ちます。 SDK では、セッション数とデバイス プロパティ (モデル、OS バージョンなど) が自動的にキャプチャされます。自分にとって重要なものを測定するために、独自のカスタム イベントを定義できます。 キャプチャされたすべての情報は、データを分析するために App Center ポータルで使用できます。
アプリケーションで SDK をまだ設定していない場合は、「はじめに」 セクション に従います。
セッションとデバイスの情報
App Center Analytics をアプリに追加して SDK を起動すると、OS のバージョン、モデルなどのセッションとデバイス のプロパティが自動的に追跡されます。
カスタム イベント
最大 20 個のプロパティを使用して独自のカスタム イベントを追跡し、ユーザーとアプリの間の相互作用を理解します。
SDK を開始したら、 メソッドを trackEvent
使用して、プロパティを使用してイベントを追跡します。 最大 200 個の個別のイベント名を送信できます。 また、イベント名あたり 256 文字、イベント プロパティ名とイベント プロパティ値ごとに 125 文字の上限があります。
// import App Center Analytics at the top of the file.
import Analytics from 'appcenter-analytics';
Analytics.trackEvent('Video clicked', { Category: 'Music', FileName: 'favorite.avi' });
この関数は promise を返し、成功した場合は空の文字列を返し、エラー ケースはエラーを返します。
イベントのプロパティは省略可能です。イベントを追跡するだけの場合は、代わりにこれを使用します。
Analytics.trackEvent('Video clicked');
実行時に App Center Analytics を有効または無効にする
実行時に App Center Analytics を有効または無効にすることができます。 無効にした場合、SDK はアプリの分析情報をこれ以上収集しません。
await Analytics.setEnabled(false);
この関数は、void に解決される promise を返します。
App Center Analytics を再度有効にするには、同じ API を使用しますが、パラメーターとして を渡します true
。
await Analytics.setEnabled(true);
状態は、アプリケーションの起動間でデバイスのストレージに保持されます。
App Center Analytics が有効になっているかどうかを確認する
App Center Analytics が有効かどうかをチェックすることもできます。
const enabled = await Analytics.isEnabled();
この関数は、 に解決される promise を boolean
返します。
JS が App Center Analytics を有効にするのを待ちます
アプリ ユーザーの分析情報を収集するが、最初にユーザーのアクセス許可を取得する場合は、起動時に分析を有効にせずに、適切なタイミングまで待ち、代わりに JavaScript で有効にすることもできます。
- プロジェクト
ios/YourAppName/AppDelegate.m
の ファイルを開き、 を に[AppCenterReactNativeAnalytics registerWithInitiallyEnabled:false];
置き換えます[AppCenterReactNativeAnalytics registerWithInitiallyEnabled:true];
。 - プロジェクト
android/app/src/main/res/values/strings.xml
の ファイルを開き、 を に<string name="appCenterAnalytics_whenToEnableAnalytics" moduleConfig="true" translatable="false">ENABLE_IN_JS</string>
置き換えます<string name="appCenterAnalytics_whenToEnableAnalytics" moduleConfig="true" translatable="false">ALWAYS_SEND</string>
。
つまり、App Center に送信される情報 (基本的なセッション情報も含む) については、まず次のコード行を追加して App Center Analytics を有効にする必要があります。
await Analytics.setEnabled(true);
開始セッションを管理する
既定では、セッション ID はアプリケーションのライフサイクルによって異なります。 新しいセッションの開始を手動で制御する場合は、次の手順に従います。
注意
Analytics.StartSession() API の各呼び出しで新しいセッションが生成されることに注意してください。 手動セッション トラッカー モードでは、この API が呼び出されない場合、すべての送信ログに null セッション値が設定されます。
注意
新しいアプリケーションの起動後にセッション ID が再生成されることに注意してください。
セッションを手動で追跡するための SDK を構成するには、ネイティブの Analytics enableManualSessionTracker
API を使用する必要があります。
iOS では、 のアプリ
didFinishLaunchingWithOptions
のデリゲート メソッドで 前[AppCenterReactNative register];
にAppDelegate.m
を呼び出します[MSACAnalytics enableManualSessionTracker];
。 そのファイルに存在しない場合は を追加@import AppCenterAnalytics
します。Android では、 の メソッド
MainApplication.java
でonCreate
before をSoLoader.init
呼び出しますAnalytics.enableManualSessionTracker();
。 そのファイルにインポートがない場合は、インポートcom.microsoft.appcenter.analytics.Analytics
を追加します。
その後、React Native プロジェクトで API を使用startSession
できます。
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 からモバイル) に切り替わる場合、再試行の状態はリセットされ、要求はすぐに再試行されます。