Skip to content

Sessões de rastreamento

Saiba como rastrear sessões por meio do SDK do Braze.

About the session lifecycle

A session refers to the period of time the Braze SDK tracks user activity in your app after it’s launched. You can also force a new session by calling the changeUser() method.

By default, a session starts when openSession() is first called. If your app goes to the background and then returns to the foreground, the SDK will check if more than 10 seconds have passed since the session started (unless you change the default session timeout). If so, a new session will begin. Keep in mind that if the user closes your app while it’s in the background, session data may not be sent to Braze until they reopen the app.

Calling closeSession() will not immediately end the session. Instead, it will end the session after 10 seconds if openSession() isn’t called again by the user starting another activity.

By default, a session starts when you call Braze.init(configuration:). This occurs when the UIApplicationWillEnterForegroundNotification notification is triggered, meaning the app has entered the foreground.

If your app goes to the background, UIApplicationDidEnterBackgroundNotification will be triggered. When your app returns to the foreground, the SDK will check if more than 10 seconds have passed since the session started (unless you change the default session timeout). If so, a new session will begin.

By default, a session starts when you first call braze.openSession(). The session will remain active for up to 30 minutes of inactivity (unless you change the default session timeout or the user closes the app.

Inscrever-se para receber atualizações de sessões

Etapa 1: Inscrever-se para receber atualizações

Para assinar as atualizações da sessão, use o 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
  }
}

Se você registrar um retorno de chamada de ponta a ponta da sessão, ele será acionado quando o app retornar ao primeiro plano. A duração da sessão é medida a partir do momento em que o app é aberto, ou em primeiro plano, até o momento em que é fechado, ou em 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 assinar um fluxo assíncrono, você pode usar sessionUpdatesStream em vez disso.

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

No momento, a assinatura de atualizações de sessão não é compatível com o SDK do Braze.

Etapa 2: Rastreamento de sessões de teste (opcional)

Para testar o rastreamento de sessão, inicie uma sessão em seu dispositivo, abra o dashboard do Braze e pesquise o usuário relevante. No perfil do usuário, selecione Sessions Overview (Visão geral das sessões). Se as métricas forem atualizadas conforme o esperado, o rastreamento de sessão está funcionando corretamente.

A seção de visão geral das sessões de um perfil de usuário mostrando o número de sessões, a data da última utilização e a data da primeira utilização.

Alteração do tempo limite padrão da sessão

Você pode alterar o período de tempo decorrido antes que uma sessão seja automaticamente encerrada.

Por padrão, o tempo limite da sessão é definido como 10 segundos. Para alterar isso, abra seu arquivo braze.xml e adicione o parâmetro com_braze_session_timeout. Ele pode ser definido como qualquer número inteiro maior ou igual a 1.

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

Por padrão, o tempo limite da sessão é definido como 10 segundos. Para alterar isso, defina sessionTimeout no objeto configuration que é passado para init(configuration). Ele pode ser definido como qualquer número inteiro maior ou igual a 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 padrão, o tempo limite da sessão é definido como 30 minutos. Para alterar isso, passe a opção sessionTimeoutInSeconds para sua função initialize função. Ele pode ser definido como qualquer número inteiro maior ou igual a 1.

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