Tracking User Identity

Objectiv enables you to easily configure a user's identity during modeling with any identifier (e.g. a unique internal hashed ID, or an email address), and apply that to all users' behavior retroactively. This also allows you to track their behavior across sessions, platforms, devices, etc.

To enable this, the Tracker should be instructed to track the user identity explicitly in an IdentityContext.

All that's required is to track at least 1 event within the session that carries the IdentityContext, e.g. on tracker initialization or login; see the examples below. On all platforms there’s an IdentityContextPlugin to facilitate adding the IdentityContext.

IdentityContextPlugin example

In this example we assume to have a key in our AsyncStorage called @backend_user holding an identifier of the currently logged-in user.

import AsyncStorage from '@react-native-async-storage/async-storage';
import { DebugTransport } from "@objectiv/transport-debug";
import { IdentityContextPlugin } from "@objectiv/plugin-identity-context";
import { ReactNativeTracker } from "@objectiv/tracker-react-native";

const getUser = async () => {
const userId = await AsyncStorage.getItem('@backend_user')

const tracker = new ReactNativeTracker({
applicationId: 'app-id',
transport: new DebugTransport(),
plugins: [
new IdentityContextPlugin({
id: 'backend',
value: userId
})
],
});
}

makeIdentityContext example

In this example we append the identity of the logged-in user when triggering a success event from a hypothetical Login button.

import { makeIdentityContext } from "@objectiv/tracker-core";
import { useSuccessEventTracker } from "@objectiv/tracker-react-native";

const trackSuccessEvent = useSuccessEventTracker();

trackSuccessEvent({
message: 'Logged in successfully',
globalContexts: [
new makeIdentityContext({
id: 'authentication',
value: response.user_id
})
]
});