Suivre les sessions
Apprenez à suivre les sessions à l’aide du SDK de Braze.
Pour les SDK wrapper non répertoriés, utilisez plutôt la méthode native Android ou Swift correspondante.
À propos du cycle de vie de la session
Une session désigne la période pendant laquelle le SDK Braze suit l’activité des utilisateurs dans votre application après son lancement. Vous pouvez également forcer une nouvelle session en appelant lachangeUser()méthode.
Par défaut, une session commence lorsque vous appelez pour la premièrebraze.openSession() fois . La session restera active pendant un maximum de30minutes d’inactivité (à moins que vous ne modifiiez le délai d’expiration par défaut de la session ou que l’utilisateur ne ferme l’application).
Si vous avez configuré le rappel du cycle de ](/docs/fr/developer_guide/platform_integration_guides/android/initial_sdk_setup/android_sdk_integration/#step-4-tracking-user-sessions-in-android)vie des activités pour Android, Braze appellera automatiquementopenSession() etcloseSession()pour chaque activité de votre application.
Par défaut, une session commence lorsqueopenSession() est appelé pour la première fois. Si votre application passe en arrière-plan puis revient au premier plan, le SDK vérifiera si plus de 10 secondes se sont écoulées depuis le début de la session (à moins que vous ne modifiiez le délai d’expiration par défaut de la session). Dans ce cas, une nouvelle session débutera. Veuillez noter que si l’utilisateur ferme votre application alors qu’elle est en arrière-plan, les données de session risquent de ne pas être envoyées à Braze tant qu’il n’aura pas rouvert l’application.
Appeler necloseSession() mettra pas immédiatement fin à la session. Au lieu de cela, la session prendra fin après 10 secondes si l’utilisateur openSession()ne la relance pas en démarrant une autre activité.
Par défaut, une session commence lorsque vous appelez Braze.init(configuration:). Cela se produit lorsque le déclencheurUIApplicationWillEnterForegroundNotificationde la notification est activé, ce qui signifie que l’application est passée au premier plan.
Si votre application passe en arrière-plan, le UIApplicationDidEnterBackgroundNotificationdéclencheur est activé. L’application ne reste pas dans une session active lorsqu’elle est en arrière-plan. Lorsque votre application revient au premier plan, le SDK compare le temps écoulé depuis le début de la session au délai d’expiration de la session (à moins que vous ne modifiiez le délai d’expiration par défaut). Si le temps écoulé depuis le début de la session dépasse le délai d’expiration, une nouvelle session commence.
Définition de l’inactivité
Il est essentiel de comprendre comment l’inactivité est définie et mesurée pour gérer efficacement les cycles de vie des sessions dans le SDK Web. L’inactivité désigne une période pendant laquelle le SDK Web Braze ne détecte aucun événement suivi de la part de l’utilisateur.
Comment l’inactivité est-elle évaluée ?
Le SDK Web surveille l’inactivité en fonction des événements suivis par le SDK. Le SDK gère un minuteur interne qui se réinitialise à chaque fois qu’un événement suivi est envoyé. Si aucun événement suivi par le SDK ne se produit pendant la période d’expiration configurée, la session est considérée comme inactive et prend fin.
Pour plus d’informations sur la manière dont le cycle de vie des sessions est implémenté dans le SDK Web, veuillez consulter le code source de gestion des sessions dans le référentiel GitHub du SDK Web Braze.
Ce qui est considéré comme une activité par défaut :
- Ouverture ou actualisation de l’application Web
- Interagir avec les éléments de l’interface utilisateur générés par Braze (tels que les messages in-app ou les cartes de contenu)
- Appel de méthodes SDK qui envoient des événements suivis (tels que des événements personnalisés ou des mises à jour d’attributs utilisateur)
Ce qui n’est pas considéré comme une activité par défaut :
- Passer à un autre onglet du navigateur
- Réduire la fenêtre du navigateur
- Événements de mise au point ou de flou du navigateur
- Défilement ou mouvements de la souris sur la page
Le SDK Web ne suit pas automatiquement les changements de visibilité du navigateur web, les changements d’onglet ou la focalisation de l’utilisateur. Cependant, il est possible de suivre ces interactions au niveau du navigateur en implémentant des écouteurs d’événements personnalisés à l’aide de l’API Page Visibility du navigateur et en envoyant des custom events à Braze. Pour un exemple de mise en œuvre, veuillez vous référer à Suivi de l’inactivité personnalisée.
Configuration du délai d’expiration de la session
Par défaut, le SDK Web considère qu’une session est inactive après 30 minutes sans aucun événement suivi. Vous pouvez rendre ce seuil personnalisé lors de l’initialisation du SDK à l’aide dusessionTimeoutInSecondsparamètre. Pour plus de détails sur la configuration de ce paramètre, y compris des exemples de code, veuillez consulter la section Modification du délai d’expiration par défaut de la session.
Exemple : Comprendre les scénarios d’inactivité
Considérez le scénario suivant :
- Un utilisateur accède à votre site Web et le SDK démarre une session en appelant
braze.openSession(). - L’utilisateur passe à un autre onglet du navigateur pour consulter un autre site web pendant 30 minutes.
- Pendant cette période, aucun événement suivi par le SDK ne se produit sur votre site Web.
- Après 30 minutes d’inactivité, la session prendra automatiquement fin.
- Lorsque l’utilisateur revient à l’onglet de votre site Web et déclenche un événement SDK (tel que la consultation d’une page ou l’interaction avec du contenu), une nouvelle session commence.
Suivi de l’inactivité personnalisée
Si vous avez besoin de suivre l’inactivité en fonction de la visibilité du navigateur ou du changement d’onglet, veuillez implémenter des écouteurs d’événements personnalisés dans votre code JavaScript. Veuillez utiliser les événements du navigateur tels quevisibilitychangepour détecter le moment où les utilisateurs quittent votre page, et envoyez manuellement des custom events à Braze ou appelezbraze.openSession()lorsque cela est approprié.
1
2
3
4
5
6
7
8
9
10
11
// Example: Track when user switches away from tab
document.addEventListener('visibilitychange', function() {
if (document.hidden) {
// User switched away - optionally log a custom event
braze.logCustomEvent('tab_hidden');
} else {
// User returned - optionally start a new session and/or log an event
// braze.openSession();
braze.logCustomEvent('tab_visible');
}
});
Pour plus d’informations sur la journalisation des événements personnalisés, veuillez vous référer à la section Journalisation des événements personnalisés. Pour plus d’informations sur le cycle de vie des sessions et la configuration des délais d’expiration, veuillez vous référer à la section Modification du délai d’expiration par défaut des sessions.
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().
Pour l’instant, s’abonner aux mises à jour de session n’est pas pris en charge pour le SDK Web Braze.
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 (en avant-plan) et le moment où elle se ferme (en 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;
}
}];
Le SDK React native ne fournit pas de méthode permettant de s’abonner directement aux mises à jour de session. Le cycle de vie de la session est géré par le SDK natif sous-jacent. Par conséquent, pour vous abonner aux mises à jour, veuillez utiliser l’approche native de la plateforme pour l’onglet Android ou Swift.
É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.

Les détails spécifiques aux applications ne sont affichés que pour les utilisateurs qui ont utilisé plus d’une application.
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’expiration de la session est fixé à 30 minutes. 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 });
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;
Le SDK React native s’appuie sur les SDK natifs pour gérer les sessions. Pour modifier le délai d’expiration de session par défaut, veuillez le configurer dans la couche native :
- Android : Veuillez définir
com_braze_session_timeoutdans votrebraze.xmlfichier. Pour plus de détails, veuillez sélectionner l’onglet Android. - iOS : Veuillez définir
sessionTimeoutsur votreBraze.Configurationobjet. Pour plus de détails, veuillez sélectionner l’onglet Swift.
Si vous définissez un délai de session, toute la sémantique de la session s’étendra automatiquement jusqu’au délai défini.
Modifier cette page sur GitHub