People
People
Section titled PeopleCe module sert à identifier les utilisateurs et à modifier les propriétés du profil utilisateur (définir, définir une seule fois, ajouter, incrémenter, supprimer).
Pour en savoir plus sur la gestion des données utilisateur dans l’interface d’OpenReplay, consultez Gestion des données.
Accessible via :
tracker.analytics.people
Alias de niveau supérieur : tracker.analytics.identify(...) → identique à tracker.analytics.people.identify(...)
Signatures
Section titled Signatures// Identify a user (required before other operations except reset)
tracker.analytics.people.identify(user_id: string, options?: { fromTracker: boolean }): void
// Reset local user context & properties (optionally, destroy device id)
// should be called on logout and session end
tracker.analytics.people.reset(hard?: boolean): void
// Delete user on backend, then reset local properties
tracker.analytics.people.deleteUser(): void
// Set properties (overwrite existing values)
tracker.analytics.people.setProperties(properties: Record<string, string | number>): void
tracker.analytics.people.setProperties(key: string, value: string | number): void
// Set properties only if they don't exist yet
tracker.analytics.people.setPropertiesOnce(properties: Record<string, string | number>): void
// Append values to an existing property (string becomes array)
tracker.analytics.people.appendValues(key: string, value: string | number): void
// Append value only if it’s not already present (requires property to exist locally)
tracker.analytics.people.appendUniqueValues(key: string, value: string | number): void
// Increment (or decrement) a numeric property
tracker.analytics.people.increment(key: string, value: number): void
// Read current user id
tracker.analytics.people.user_id: string | null | undefined
identify
Section titled identifyIdentifie l’utilisateur actuel par un id de type chaîne (e-mail, nom d’utilisateur, id interne, etc.) et met en file d’attente un événement d’identité.
tracker.analytics.people.identify("nikita@openreplay.com")
Notes :
Section titled Notes :Si un utilisateur différent avait déjà été identifié, le SDK réinitialise les propriétés people locales avant de basculer vers le nouvel id.
options.fromTracker est utilisé en interne pour éviter de déclencher deux fois le hook d’id au niveau du tracker ; en général, vous n’en avez pas besoin.
reset
Section titled resetRéinitialise l’id de l’utilisateur actuel et toutes les propriétés people locales.
// soft reset
tracker.analytics.people.reset()
// hard reset (also clears persistent device id)
tracker.analytics.people.reset(true)
deleteUser
Section titled deleteUserSupprime l’utilisateur actuellement identifié sur le backend (en envoyant une mutation de suppression), puis efface l’état local.
tracker.analytics.people.deleteUser()
Notes :
Section titled Notes :Si aucun utilisateur n’est identifié, l’opération est sans effet.
Après cet appel, user_id sera effacé et les propriétés locales seront supprimées.
setProperties
Section titled setPropertiesDéfinit les propriétés utilisateur en écrasant les valeurs existantes.
tracker.analytics.people.setProperties({
plan: "pro",
seats: 5,
})
// or key/value
tracker.analytics.people.setProperties("plan", "enterprise")
Notes :
Section titled Notes :Les clés réservées/par défaut (clés internes du tracker) sont ignorées pour le cache local du SDK.
Un événement est mis en file d’attente avec la charge utile properties complète que vous transmettez.
setPropertiesOnce
Section titled setPropertiesOnceDéfinit les propriétés uniquement si elles n’existent pas encore (du point de vue local du SDK).
tracker.analytics.people.setPropertiesOnce({
signup_source: "docs",
first_seen_at: Date.now(),
})
Notes :
Section titled Notes :Seules les propriétés qui ne sont pas déjà présentes dans le cache people local seront écrites localement.
Un événement de mutation setPropertyOnce est tout de même mis en file d’attente avec les propriétés que vous transmettez.
appendValues
Section titled appendValuesAjoute une valeur à une propriété existante. Si la propriété est actuellement une chaîne/un nombre, elle devient un tableau.
// start with something
tracker.analytics.people.setProperties({ tags: "new" })
// append
tracker.analytics.people.appendValues("tags", "beta-user")
Notes :
Section titled Notes :Le SDK ne met à jour le cache local que si cette propriété existe déjà localement.
Un événement de mutation d’ajout est toujours mis en file d’attente.
appendUniqueValues
Section titled appendUniqueValuesAjoute une valeur uniquement si elle n’est pas déjà présente.
tracker.analytics.people.setProperties({ tags: ["new"] })
tracker.analytics.people.appendUniqueValues("tags", "new") // no change
tracker.analytics.people.appendUniqueValues("tags", "beta-user") // appended
Notes :
Section titled Notes :Si la propriété n’existe pas encore localement, cet appel ne fait rien (retour anticipé). Définissez-la d’abord via setProperties / setPropertiesOnce.
increment
Section titled incrementAjoute un nombre (y compris des valeurs négatives) à une propriété numérique.
tracker.analytics.people.increment("logins", 1)
tracker.analytics.people.increment("credits", -10)
Notes :
Section titled Notes :Si la propriété n’existe pas localement, elle est initialisée à 0 avant l’incrémentation.
Si la propriété existe mais n’est pas numérique, le SDK lève une erreur.
Alias compatibles avec Mixpanel
Section titled Alias compatibles avec MixpanelToutes les méthodes prennent en charge une couche de compatibilité fournie par souci de familiarité :
tracker.analytics.people.set // setProperties
tracker.analytics.people.set_once // setPropertiesOnce
tracker.analytics.people.append // appendValues
tracker.analytics.people.union // appendUniqueValues
tracker.analytics.people.incrementBy // increment
Exemples
Section titled ExemplesFlux typique
tracker.analytics.people.identify("user_123")
tracker.analytics.people.setProperties({
email: "user@example.com",
plan: "pro",
})
tracker.analytics.people.increment("sessions", 1)
tracker.analytics.people.appendUniqueValues("features_used", "analytics")
Changement d’utilisateur
Section titled Changement d’utilisateurGardez à l’esprit qu’à partir de la version 1.24.0, les sessions OpenReplay ne prennent en charge qu’un seul utilisateur, ce qui signifie que le nouvel utilisateur écrase le précédent dans la session.
Lors du changement d’utilisateur, redémarrez également le tracker avec l’option forceNew.
tracker.analytics.people.identify("user_a")
tracker.analytics.people.setProperties({ plan: "free" })
// switching user resets local people properties automatically
tracker.analytics.people.identify("user_b")
Des questions ?
Section titled Des questions ?Si vous rencontrez des problèmes, rejoignez notre Slack ou consultez notre Forum et obtenez de l’aide de notre communauté.