Automatic Session Identification
Session-ID Requirements
Analyze Sessions
Troubleshooting
Configure Session Monitoring for an Android Application
Overview
GermainUX automatically generates a session ID and associates it with telemetry collected during an Android application session. The session ID enables GermainUX to correlate:- Application lifecycle events
- Screens, views, and fragments
- Transactions
- Errors and exceptions
- Crashes
- Device and application context
- Custom events
- Business-process activity
Automatic Session Identification
No additional configuration is required to use automatic session identification. After the GermainUX Mobile App library initializes, it generates and assigns a session ID to collected telemetry. Automatic identification avoids:- Duplicate session IDs
- Reuse of expired application sessions
- Exposure of authentication-session values
- Inconsistent session boundaries
- Missing identifiers during application startup
Configure a Custom Session ID
A custom session ID can be assigned:- During GermainUX initialization
- At runtime after GermainUX has initialized
- Passwords
- Authentication or refresh tokens
- Session cookies
- Access tokens
- Email addresses
- Personal information
- Predictable identifiers that create a security risk
Set the Session ID During Initialization
Set the ID throughGermainAPMConfiguration when it is already available during application startup.
Java
Kotlin
Set the Session ID at Runtime
If the session ID becomes available after initialization, assign it usingGermainAPM.setSessionId().
Java
Kotlin
Session-ID Requirements
A custom session ID should be:- Unique for each intended session
- Stable throughout that session
- Different when a new session begins
- Free of personal or confidential information
- Available to every event that must be correlated
- Consistent across systems when cross-system correlation is required
User and Session Identification
The user ID and session ID serve different purposes:Cross-System Correlation
A custom session ID can help correlate Android telemetry with:- Application APIs
- Backend services
- Integration platforms
- Logs
- Business transactions
- Support or diagnostic records
Propagate an approved correlation ID through the relevant requests
Capture that identifier in each monitored system
Keep clocks synchronized
Avoid changing the ID during an active transaction
Do not expose security credentials as correlation identifiers
Analyze Sessions
In GermainUX, sessions can be analyzed by:- Application and environment
- Application version
- Android version
- Device manufacturer and model
- User or role, when approved
- Session duration
Show all 11
Show all 11
- Screens and fragments visited
- Transactions
- Errors and crashes
- Business-process completion
- Network or device context
Privacy
Before configuring session identification:- Use random or pseudonymous identifiers.
- Do not use authentication tokens.
- Avoid embedding user names or email addresses.
- Apply anonymization and exclusion rules.
- Restrict access to session-level data.
- Define an appropriate retention period.
- Review correlation fields in custom events, errors, and network telemetry.
Validation
After configuring session monitoring:Start the application and generate a session
Confirm that collected events contain a session ID
Navigate across multiple screens
Execute a transaction
Generate a controlled handled exception
Verify that all events appear under the expected session
Start a new application session
Confirm that it does not reuse the previous session ID unintentionally
Test runtime assignment if the ID is set after initialization
Verify that the ID contains no sensitive information
Troubleshooting
Telemetry has no session ID
Verify that:- GermainUX initialized successfully.
- The session ID is not empty.
setSessionId()executes before the relevant telemetry is collected.- Privacy rules do not remove the field.
- The installed library supports the configured API.
Multiple users appear in one session
Confirm that the application updates the user and session context when the active user changes. Do not reuse identifiers across login, logout, or account-switching boundaries.One user journey is split across sessions
Check whether:- The application process restarted.
- A new custom session ID was assigned.
- Different application processes use different configurations.
- Offline telemetry was received later.
- The application and backend use different correlation values.
⁉ Sessions from different users are combined
Verify that the custom session ID is unique and not a hard-coded, user-level, device-level, or globally shared value.Get Help
Contact GermainUX Support
Can't find what you need?
The content of this document is proprietary to GERMAIN SOFTWARE.

