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
})
]
});