Sessões de rastreamento
Saiba como rastrear sessões por meio do SDK do Braze.
Para SDKs de wrapper não listados, use o método nativo relevante do Android ou Swift.
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.
If you’ve set up the activity lifecycle callback for Android, Braze will automatically call openSession()
and closeSession()
for each activity in your app.
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.
Os detalhes específicos do aplicativo são mostrados apenas para usuários que usaram mais de um aplicativo.
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 });
Se você definir um tempo limite da sessão, toda a semântica da sessão será automaticamente estendida até o tempo limite definido.