Skip to content

Sesiones de seguimiento

Aprende a hacer un seguimiento de las sesiones a través del SDK de Braze.

Sobre el ciclo de vida de la sesión

Una sesión se refiere al periodo de tiempo durante el cual el SDK de Braze realiza un seguimiento de la actividad del usuario en tu aplicación después de su lanzamiento. También puedes forzar una nueva sesión llamando al método changeUser() .

Por defecto, una sesión se inicia cuando se llama por primera vez a openSession(). Si tu aplicación pasa a segundo plano, la sesión permanecerá activa durante 10 segundos (a menos que cambies el tiempo de espera predeterminado de la sesión) o el usuario cierre tu aplicación. Ten en cuenta que, si el usuario cierra tu aplicación mientras está en segundo plano, es posible que los datos de la sesión no se configuren en Braze hasta que vuelva a abrir la aplicación.

Si llamas a closeSession(), la sesión no finalizará inmediatamente. En cambio, finalizará la sesión al cabo de 10 segundos si el usuario no vuelve a llamar a openSession() para iniciar otra actividad.

Por defecto, una sesión se inicia cuando llamas a Braze.init(configuration:). Esto ocurre cuando se desencadena la notificación UIApplicationWillEnterForegroundNotification, lo que significa que la aplicación ha pasado a primer plano.

Si tu aplicación pasa a segundo plano, se desencadenará UIApplicationDidEnterBackgroundNotification. La sesión permanecerá activa durante 10 segundos (a menos que cambies el tiempo de espera predeterminado de la sesión) o el usuario cierre tu aplicación.

Por defecto, una sesión se inicia cuando llamas por primera vez a braze.openSession(). La sesión permanecerá activa hasta 30 minutos de inactividad (a menos que cambies el tiempo de espera predeterminado de la sesión) o el usuario cierre la aplicación.

Suscribirse a las actualizaciones de la sesión

Paso 1: Suscribirse a las actualizaciones

Para suscribirte a las actualizaciones de la sesión, utiliza el método 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 registras una devolución de llamada de fin de sesión, se dispara cuando la aplicación vuelve al primer plano. La duración de la sesión se mide desde que la aplicación se abre o está en primer plano, hasta que se cierra o está en segundo plano.

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

Para suscribirte a un flujo asíncrono, puedes utilizar sessionUpdatesStream en su lugar.

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

En este momento, la suscripción a las actualizaciones de sesión no es compatible con el SDK de Web Braze.

Paso 2: Seguimiento de la sesión de prueba (opcional)

Para probar el seguimiento de la sesión, inicia una sesión en tu dispositivo, luego abre el panel de Braze y busca al usuario correspondiente. En su perfil de usuario, selecciona Resumen de sesiones. Si las métricas se actualizan como se espera, el seguimiento de la sesión funciona correctamente.

La sección de resumen de sesiones de un perfil de usuario que muestra el número de sesiones, la última fecha de uso y la primera fecha de uso.

Cambiar el tiempo de espera predeterminado de la sesión

Puedes cambiar el tiempo que transcurre antes de que una sesión caduque automáticamente.

Por defecto, el tiempo de espera de la sesión está predeterminado en 10 segundos. Para cambiar esto, abre tu archivo braze.xml y añade el parámetro com_braze_session_timeout. Puede establecerse en cualquier número entero mayor o igual que 1.

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

Por defecto, el tiempo de espera de la sesión está predeterminado en 10 segundos. Para cambiar esto, configura sessionTimeout en el objeto configuration que se pasa a init(configuration). Puede establecerse en cualquier número entero mayor o igual que 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;

Por defecto, el tiempo de espera de la sesión está predeterminado en 30 segundos. Para cambiar esto, pasa la opción sessionTimeoutInSeconds a tu initialize función. Puede establecerse en cualquier número entero mayor o igual que 1.

1
2
// Sets the session timeout to 15 minutes instead of the default 30
braze.initialize('YOUR-API-KEY-HERE', { sessionTimeoutInSeconds: 900 });
¿QUÉ TAN ÚTIL FUE ESTA PÁGINA?
New Stuff!