Skip to content

Sessions de suivi

Apprenez à suivre les sessions à l’aide du SDK de Braze.

À propos du cycle de vie de la session

Une session désigne la période pendant laquelle le SDK de Braze suit l’activité de l’utilisateur dans votre application après son lancement. Vous pouvez également forcer une nouvelle session en appelant la méthode changeUser() .

Par défaut, une session démarre lorsque openSession() est appelé pour la première fois. Si votre application passe en arrière-plan, la session restera active pendant 10 secondes (sauf si vous modifiez le délai d’attente par défaut) ou si l’utilisateur ferme votre application. Gardez à l’esprit que si l’utilisateur ferme votre application alors qu’elle est en arrière-plan, les données de session peuvent ne pas être définies dans Braze jusqu’à ce qu’il rouvre l’application.

L’appel à closeSession() ne met pas immédiatement fin à la session. Au lieu de cela, il mettra fin à la session au bout de 10 secondes si openSession() n’est pas appelé à nouveau par l’utilisateur qui démarre une autre activité.

Par défaut, une session démarre lorsque vous appelez Braze.init(configuration:). Cela se produit lorsque la notification UIApplicationWillEnterForegroundNotification est déclenchée, ce qui signifie que l’application est passée au premier plan.

Si votre application passe en arrière-plan, UIApplicationDidEnterBackgroundNotification sera déclenché. La session restera active pendant 10 secondes (sauf si vous modifiez le délai d’attente par défaut) ou si l’utilisateur ferme votre application.

Par défaut, une session démarre lorsque vous appelez braze.openSession() pour la première fois. La session restera active jusqu’à 30 minutes d’inactivité (sauf si vous modifiez le délai d’attente par défaut) ou si l’utilisateur ferme l’application.

S’abonner aux mises à jour de session

Étape 1 : S’abonner aux mises à jour

Pour s’abonner aux mises à jour de la session, utilisez la méthode 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
  }
}

Si vous enregistrez un rappel de fin de session, il se déclenche lorsque l’application revient au premier plan. La durée de la session est mesurée entre le moment où l’application s’ouvre (avant-plan) et le moment où elle se ferme (arrière-plan).

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")
  }
}

Pour s’abonner à un flux asynchrone, vous pouvez utiliser sessionUpdatesStream à la place.

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;
  }
}];

Pour l’instant, s’abonner aux mises à jour de session n’est pas pris en charge pour le SDK de Braze Web.

Étape 2 : Suivi de la session de test (optionnel)

Pour tester le suivi des sessions, démarrez une session sur votre appareil, puis ouvrez le tableau de bord de Braze et recherchez l’utilisateur concerné. Dans son profil utilisateur, sélectionnez Aperçu des sessions. Si les indicateurs se mettent à jour comme prévu, le suivi de session fonctionne correctement.

Section d'aperçu des sessions d'un profil utilisateur indiquant le nombre de sessions, la date de la dernière utilisation et la date de la première utilisation.

Modifier le délai de session par défaut

Vous pouvez modifier le délai qui s’écoule avant qu’une session ne se termine automatiquement.

Par défaut, le délai d’attente de la session est fixé à 10 secondes. Pour modifier cela, ouvrez votre fichier braze.xml et ajoutez le paramètre com_braze_session_timeout. Il peut être défini comme tout nombre entier supérieur ou égal à 1.

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

Par défaut, le délai d’attente de la session est fixé à 10 secondes. Pour modifier cela, définissez sessionTimeout dans l’objet configuration qui est transmis à init(configuration). Il peut être défini comme tout nombre entier supérieur ou égal à 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;

Par défaut, le délai d’attente de la session est fixé à 30 secondes. Pour changer cela, passez l’option sessionTimeoutInSeconds à votre fonction initialize fonction. Il peut être défini comme tout nombre entier supérieur ou égal à 1.

1
2
// Sets the session timeout to 15 minutes instead of the default 30
braze.initialize('YOUR-API-KEY-HERE', { sessionTimeoutInSeconds: 900 });
CETTE PAGE A-T-ELLE ÉTÉ UTILE?
New Stuff!