Dynatrace allows you to identify users across sessions and devices, manage session lifecycle, and attach properties that apply to all events in a session.
Use IdentifyUser() to tag the current session with a user identifier. This enables you to track individual users across different sessions, browsers, and devices.
using Dynatrace.MAUI;// After user logs inAgent.Instance.IdentifyUser('user@example.com');// Or use an internal user IDAgent.Instance.IdentifyUser('user-12345');
To remove the user tag (for example, on logout), pass null or an empty string:
using Dynatrace.MAUI;void Logout() {// Clear user identificationAgent.Instance.IdentifyUser(null);}
IdentifyUser() for every new session.When the user closes the app or when privacy settings change, sessions are not automatically re-tagged. You must call IdentifyUser() again after the new session starts.
Session properties are key-value pairs that apply to all events in the current session. Use them to add context that characterizes the user's session. Event and session properties must be configured before they can be used. Incoming event and session properties that are not configured are dropped during event ingest. Read more about configuring custom events and session properties.
using Dynatrace.MAUI;var sessionEventData = new SessionPropertyEventData().AddSessionProperty("session_properties.product_tier", "premium").AddSessionProperty("session_properties.loyalty_status", "gold").AddSessionProperty("session_properties.onboarding_complete", true);Agent.Instance.SendSessionPropertyEvent(sessionEventData);
session_properties..Session properties require server-side configuration in Dynatrace. Properties that are not configured will be dropped during ingest.
event_properties. / session_properties. prefix)._, and dot ..You can send session properties multiple times during a session. However, if you send the same property multiple times, session aggregation will keep only one value (first or last, depending on configuration).
using Dynatrace.MAUI;var firstSessionEventData = new SessionPropertyEventData().AddSessionProperty("session_properties.cart_value", 0);var secondSessionEventData = new SessionPropertyEventData().AddSessionProperty("session_properties.cart_value", 149.99);// Initial propertiesAgent.Instance.SendSessionPropertyEvent(firstSessionEventData);// Update after user adds itemsAgent.Instance.SendSessionPropertyEvent(secondSessionEventData);
Use EndSession() to manually close the current session and start a new one. All open actions are closed and sent to the server.
using Dynatrace.MAUI;void Logout() {// Clear user identificationAgent.Instance.IdentifyUser(null);// End the current sessionAgent.Instance.EndSession();}
Sessions also end automatically based on idle timeout and maximum session duration configured in your Dynatrace environment.