Skip to content

追跡セッション

Braze SDK を使用してセッションを追跡する方法について説明します。

セッションライフサイクルについて

セッションとは、Braze SDK が起動後にアプリ内のユーザーアクティビティを追跡する時間のことです。 changeUser() メソッド を呼び出して、新しいセッションを強制することもできます。

デフォルトでは、openSession()が最初に呼び出されたときにセッションが開始されます。アプリがバックグラウンドに移動した場合、セッションは10 秒間アクティブのままになります(デフォルトのセッションタイムアウトを変更しない限り)。そうしないと、ユーザーはアプリを閉じます。ユーザーがバックグラウンドでアプリを閉じた場合、セッションデータはアプリを再び開くまでブレーズに設定されないことがあります。

closeSession() を呼び出すと、セッションはすぐに終了しません。代わりに、別のアクティビティを開始するユーザがopenSession() を再度呼び出さない場合、10 秒後にセッションが終了します。

デフォルトでは、Braze.init(configuration:) を呼び出すとセッションが開始されます。これは、UIApplicationWillEnterForegroundNotification 通知がトリガーされたときに発生します。これは、アプリがフォアグラウンドに入ったことを意味します。

アプリがバックグラウンドに移動すると、UIApplicationDidEnterBackgroundNotification がトリガーされます。セッションは、10 秒間アクティブのままになります(デフォルトのセッションタイムアウトを変更しない限り)。そうしないと、ユーザーはアプリを閉じます。

デフォルトでは、最初にbraze.openSession() を呼び出すとセッションが開始されます。セッションは、最大30 分間、非アクティブのままになります( デフォルトのセッションタイムアウト を変更しない限り)。または、ユーザーがアプリを閉じるまで、セッションはアクティブのままになります。

セッション更新の購読

ステップ1:更新を購読する

セッション更新にサブスクライブするには、subscribeToSessionUpdates() メソッドを使用します。

1
2
3
4
5
6
7
8
Braze.getInstance(this).subscribeToSessionUpdates(new IEventSubscriber<SessionStateChangedEvent>() {
  @Override
  public void trigger(SessionStateChangedEvent message) {
    if (message.getEventType() == SessionStateChangedEvent.ChangeType.SESSION_STARTED) {
      // A session has just been started
    }
  }
});
1
2
3
4
5
Braze.getInstance(this).subscribeToSessionUpdates { message ->
  if (message.eventType == SessionStateChangedEvent.ChangeType.SESSION_STARTED) {
    // A session has just been started
  }
}

セッション終了コールバックを登録すると、アプリがフォアグラウンドに戻ったときに起動します。セッションの継続時間は、アプリが開いたとき、または前景を表示したとき、終了したとき、または背景を表示したときから測定されます。

1
2
3
4
5
6
7
8
9
10
11
// This subscription is maintained through a Braze cancellable, which will observe changes until the subscription is cancelled.
// You must keep a strong reference to the cancellable to keep the subscription active.
// The subscription is canceled either when the cancellable is deinitialized or when you call its `.cancel()` method.
let cancellable = AppDelegate.braze?.subscribeToSessionUpdates { event in
  switch event {
  case .started(let id):
    print("Session \(id) has started")
  case .ended(let id):
    print("Session \(id) has ended")
  }
}

非同期ストリームにサブスクライブするには、代わりにsessionUpdatesStream を使用できます。

1
2
3
4
5
6
7
8
for await event in braze.sessionUpdatesStream {
  switch event {
  case .started(let id):
    print("Session \(id) has started")
  case .ended(let id):
    print("Session \(id) has ended")
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// This subscription is maintained through a Braze cancellable, which will observe changes until the subscription is cancelled.
// You must keep a strong reference to the cancellable to keep the subscription active.
// The subscription is canceled either when the cancellable is deinitialized or when you call its `.cancel()` method.
BRZCancellable *cancellable = [AppDelegate.braze subscribeToSessionUpdates:^(BRZSessionEvent * _Nonnull event) {
  switch (event.state) {
    case BRZSessionStateStarted:
      NSLog(@"Session %@ has started", event.sessionId);
      break;
    case BRZSessionStateEnded:
      NSLog(@"Session %@ has ended", event.sessionId);
      break;
    default:
      break;
  }
}];

現時点では、Web Braze SDK のセッション更新のサブスクライブはサポートされていません。

ステップ2:テストセッショントラッキング(オプション)

セッショントラッキングをテストするには、デバイスでセッションを開始し、Braze ダッシュボードを開き、関連するユーザーを検索します。ユーザープロファイルで、Sessions Overviewを選択します。メトリクスが期待どおりに更新された場合、セッション追跡は正常に動作しています。

セッション数、最終使用日、初回使用日が表示されるユーザープロファイルのセッション概要セクション。

デフォルトのセッションタイムアウトの変更

セッションが自動的にタイムアウトするまでの時間を変更できます。

デフォルトでは、セッションタイムアウトは10秒に設定されます。これを変更するには、braze.xml ファイルを開き、com_braze_session_timeout パラメータを追加します。1 以上の任意の整数に設定できます。

1
2
<!-- Sets the session timeout to 60 seconds. -->
<integer name="com_braze_session_timeout">60</integer>

デフォルトでは、セッションタイムアウトは10秒に設定されます。これを変更するには、configuration オブジェクトでinit(configuration) に渡されるsessionTimeout を設定します。1 以上の任意の整数に設定できます。

1
2
3
4
5
6
7
8
// Sets the session timeout to 60 seconds
let configuration = Braze.Configuration(
  apiKey: "<BRAZE_API_KEY>",
  endpoint: "<BRAZE_ENDPOINT>"
)
configuration.sessionTimeout = 60;
let braze = Braze(configuration: configuration)
AppDelegate.braze = braze
1
2
3
4
5
6
7
// Sets the session timeout to 60 seconds
BRZConfiguration *configuration =
  [[BRZConfiguration alloc] initWithApiKey:brazeApiKey
                                  endpoint:brazeEndpoint];
configuration.sessionTimeout = 60;
Braze *braze = [[Braze alloc] initWithConfiguration:configuration];
AppDelegate.braze = braze;

デフォルトでは、セッションタイムアウトは30秒に設定されます。これを変更するには、sessionTimeoutInSeconds オプションをinitialize 関数に渡します。1 以上の任意の整数に設定できます。

1
2
// Sets the session timeout to 15 minutes instead of the default 30
braze.initialize('YOUR-API-KEY-HERE', { sessionTimeoutInSeconds: 900 });
「このページはどの程度役に立ちましたか?」
New Stuff!