定義
Reproでは、アプリが起動してからバックグラウンドへ移行するまでを1セッションとして扱います。トラッキングされたイベントは、全ていずれかのセッションにひもづけられます。
期間
セッションの期間はユーザーの操作に依存するため、期間の上限や下限はありません。
開始タイミング
セッションの開始タイミングは、アプリが初期状態で起動する場合とアプリを再開する場合の2パターンがあります。
1.アプリが初期状態で起動する場合
以下の場合は、初期状態での起動となります。
- 電源が入った後、一度も起動されていない場合
- ユーザーがマルチタスク画面でアプリを停止(タスクキル)した場合
- OSによって自動的にアプリが停止されてから起動した場合
1~3の方法で起動した場合、セッションはsetupを呼び出した後に開始されます。setupが呼ばれると、SDKはReproのサーバーと通信し、トラッキングに関する設定情報を取得します。設定でReproの機能が有効になっていれば、セッションを開始します。
2.アプリを再開する場合
アプリがバックグラウンドに移行した後、OSによって停止させられる前に、マルチタスク画面から立ち上げられると、アプリが途中から始まります。
この場合、iOSのAppDelegate::applicationDidFinishLaunching:およびAndroidのApplication#onCreateが呼ばれないため、setupも呼ばれません。しかし、SDKはアプリの再開を自動的に検出し、新規にセッションを開始します。
終了タイミング
セッションの終了タイミングは、ホームボタンを押す、通知センターから別のアプリを立ち上げるなどの操作によって、アプリケーションがバックグラウンドに移行した時です。
なお、ユーザーがコントロールセンターや通知センターを開いただけの場合、セッションは停止しません。この場合、ポーズ時間の制約もありません。
留意点
iOS SDK 3.0.1以下の場合は、アプリからSafariや他のアプリを起動してバックグラウンドに移行した場合も、すぐにセッションを終了せず、最大2分30秒の間、一時停止されます。