Rastrear sessões
Aprenda como rastrear sessões através do SDK Braze.
Para SDKs wrapper não listados, use o método nativo Android ou Swift relevante.
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 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 o usuário feche o app).
Se você tiver configurado o retorno de chamada do ciclo de vida da atividade para Android, o Braze chamará automaticamente openSession() e closeSession() para cada atividade em seu app.
Por padrão, uma sessão é iniciada quando openSession() é chamado pela primeira vez. Se o seu app acessar o plano de fundo e depois retornar ao primeiro plano, o SDK verificará se mais de 10 segundos se passaram desde o início da sessão (a menos que você altere o tempo limite padrão da sessão). Se for o caso, uma nova sessão será iniciada. Lembre-se de que, se o usuário fechar seu aplicativo enquanto ele estiver em segundo plano, os dados da sessão poderão não ser enviados ao Braze até que ele reabra o app.
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. Quando seu app retornar ao primeiro plano, o SDK verificará se mais de 10 segundos se passaram desde o início da sessão (a menos que você altere o tempo limite padrão da sessão). Se for o caso, uma nova sessão será iniciada.
Inscrever-se para receber atualizações de sessões
Etapa 1: Inscrever-se para receber atualizações
Para se inscrever em atualizações de sessão, use o método subscribeToSessionUpdates().
Neste momento, a inscrição em atualizações de sessão não é suportada para o 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
}
}
Se você registrar um retorno de chamada de fim de sessão, ele será acionado quando o app retornar ao primeiro plano. A duração da sessão é medida desde que o app é aberto ou colocado em primeiro plano, até que ele seja fechado ou colocado 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 se inscrever em 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;
}
}];
Etapa 2: Testar rastreamento de sessão (opcional)
Para testar o rastreamento de sessão, inicie uma sessão em seu dispositivo, depois abra o dashboard do Braze e procure o usuário relevante. No perfil do usuário, selecione Visão Geral das Sessões. Se as métricas forem atualizadas como esperado, o rastreamento de sessão está funcionando corretamente.

Detalhes específicos do app são mostrados apenas para usuários que usaram mais de um app.
Alterando o tempo limite padrão da sessão
Você pode alterar a duração do tempo que passa antes que uma sessão expire automaticamente.
Por padrão, o tempo limite da sessão é definido para 30 minutos. Para mudar isso, passe a opção sessionTimeoutInSeconds para sua função initialize. Pode ser definido para qualquer 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 });
Por padrão, o tempo limite da sessão é definido para 10 segundos. Para mudar isso, abra seu arquivo braze.xml e adicione o parâmetro com_braze_session_timeout. Ele pode ser definido como qualquer 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 para 10 segundos. Para mudar isso, defina sessionTimeout no objeto configuration que é passado para init(configuration). Pode ser definido para qualquer 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;
Se você definir um tempo limite de sessão, toda a semântica da sessão será automaticamente estendida para o tempo limite definido.
Editar esta página no GitHub