User Identification
Associate telemetry with specific users to enable per-user analysis in the Pulse dashboard.
Set a User ID
Call setUserId after the user authenticates:
import { Pulse } from '@dreamhorizonorg/pulse-react-native';
Pulse.setUserId('user-abc123');
To clear on logout, pass null:
Pulse.setUserId(null);
Set User Properties
Attach additional context — plan, region, account type:
// Single property
Pulse.setUserProperty('subscription', 'premium');
// Multiple at once
Pulse.setUserProperties({
subscription: 'premium',
region: 'us-west',
verified: true,
});
To clear a property, pass null:
Pulse.setUserProperty('subscription', null);
Common Pattern: Login / Logout
async function handleLogin(credentials) {
const user = await loginUser(credentials);
Pulse.setUserId(user.id);
Pulse.setUserProperties({
subscription: user.plan,
region: user.region,
});
}
function handleLogout() {
Pulse.setUserId(null);
}
note
User ID and properties are scoped to the current session. They persist until you explicitly clear them or the app process ends.
Native side
Use the native APIs when login or profile updates happen outside your JS bundle—for example native auth flows (Keychain, ASWebAuthenticationSession, Account Manager), a splash or onboarding layer implemented in Kotlin/Swift, or shared modules that resolve the user before React mounts.
- Kotlin (Android)
- Swift (iOS)
import com.pulsereactnativeotel.Pulse
Pulse.setUserId("usr_12345")
Pulse.setUserProperty("plan", "premium")
// Pulse.setUserId(null) on logout
import PulseReactNativeOtel
PulseSDK.setUserId("usr_12345")
PulseSDK.setUserId(nil) // logout
More (setUserProperties, attribute types): Android APIs · iOS APIs.
Next Steps
- Global Attributes — Add static metadata to all telemetry
- Data Collection Consent — Gate collection behind consent