Skip to content

Sessões de rastreamento

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

Sobre o ciclo de vida da sessão

Uma sessão refere-se ao período de tempo em que o SDK do Braze rastreia a atividade do usuário em seu app depois que ele é iniciado. Você também pode forçar uma nova sessão chamando o método changeUser() .

Por padrão, uma sessão é iniciada quando openSession() é chamado pela primeira vez. Se o seu app for colocado em segundo plano, a sessão permanecerá ativa por 10 segundos (a menos que você altere o tempo limite padrão da sessão) ou o usuário fechará o aplicativo. Lembre-se de que, se o usuário fechar o aplicativo enquanto ele estiver em segundo plano, os dados da sessão poderão não ser definidos no Braze até que ele reabra o aplicativo.

A chamada para closeSession() não encerrará imediatamente a sessão. Em vez disso, ele encerrará a sessão após 10 segundos se o openSession() não for chamado novamente pelo usuário para iniciar outra atividade.

Por padrão, uma sessão é iniciada quando você chama Braze.init(configuration:). Isso ocorre quando a notificação UIApplicationWillEnterForegroundNotification é disparada, o que significa que o app entrou em primeiro plano.

Se o seu app ficar em segundo plano, o UIApplicationDidEnterBackgroundNotification será disparado. A sessão permanecerá ativa por 10 segundos (a menos que você altere o tempo limite padrão da sessão) ou o usuário fechará o app.

Por padrão, uma sessão é iniciada quando você chama braze.openSession() pela primeira vez. A sessão permanecerá ativa por até 30 minutos de inatividade (a menos que você altere o tempo limite padrão da sessão) ou que o usuário feche o 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 da 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 segundos. 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!