People

Identifica gli utenti e gestisci le proprietà utente con il modulo People dell'analytics del tracker di OpenReplay.

People

Questo modulo serve a identificare gli utenti e a modificare le proprietà del profilo utente (set, set once, append, increment, delete).

Per saperne di più sulla gestione dei dati degli utenti nell’interfaccia di OpenReplay, visita Gestione dei dati.

Disponibile in:

tracker.analytics.people

Alias di primo livello: tracker.analytics.identify(...) → equivale a tracker.analytics.people.identify(...)

// 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

Identifica l’utente corrente tramite un ID stringa (email, nome utente, ID interno, ecc.) e mette in coda un evento di identità.

tracker.analytics.people.identify("nikita@openreplay.com")

Se era già stato identificato un utente diverso, lo SDK reimposta le proprietà people locali prima di passare al nuovo ID.

user_id deve essere una stringa non vuota: qualsiasi altro valore genera un errore.

options.fromTracker viene usato internamente per evitare di chiamare due volte l’hook dell’ID a livello di tracker; di solito non ti serve. tracker.setUserID() chiama già identify per te.

Reimposta l’ID utente corrente e tutte le proprietà people locali.

// soft reset
tracker.analytics.people.reset()

// hard reset (also clears persistent device id)
tracker.analytics.people.reset(true)

Elimina l’utente attualmente identificato sul backend (inviando una mutazione di eliminazione), quindi cancella lo stato locale.

tracker.analytics.people.deleteUser()

Se non è stato identificato alcun utente, non fa nulla.

Dopo questa chiamata, user_id viene cancellato e le proprietà locali vengono eliminate.

Imposta le proprietà utente, sovrascrivendo i valori esistenti.

tracker.analytics.people.setProperties({
	plan: "pro",
	seats: 5,
})

// or key/value
tracker.analytics.people.setProperties("plan", "enterprise")

Le proprietà predefinite raccolte dallo SDK vengono ignorate nella cache locale dello SDK.

La forma chiave/valore richiede che entrambi gli argomenti siano truthy: setProperties("plan", "") o setProperties("seats", 0) genera l’errore invalid user properties provided to set. Usa la forma a oggetto per i valori falsy.

Viene messo in coda un evento con l’intero payload properties che passi.

Imposta le proprietà solo se non esistono ancora (dal punto di vista locale dello SDK).

tracker.analytics.people.setPropertiesOnce({
	signup_source: "docs",
	first_seen_at: Date.now(),
})

Solo le proprietà non ancora presenti nella cache people locale verranno scritte localmente.

Un evento di mutazione setPropertyOnce viene comunque messo in coda con le proprietà che passi.

Aggiunge un valore a una proprietà esistente. Se la proprietà è attualmente una stringa o un numero, diventa un array.

// start with something
tracker.analytics.people.setProperties({ tags: "new" })

// append
tracker.analytics.people.appendValues("tags", "beta-user")

Lo SDK aggiorna la cache locale solo se quella proprietà esiste già localmente.

Un evento di mutazione di tipo append viene sempre messo in coda.

Aggiunge un valore solo se non è già presente.

tracker.analytics.people.setProperties({ tags: ["new"] })
tracker.analytics.people.appendUniqueValues("tags", "new") // no change
tracker.analytics.people.appendUniqueValues("tags", "beta-user") // appended

Se la proprietà non esiste ancora localmente, questa chiamata non fa nulla (termina subito). Impostala prima tramite setProperties / setPropertiesOnce.

Aggiunge un numero (inclusi i valori negativi) a una proprietà numerica.

tracker.analytics.people.increment("logins", 1)
tracker.analytics.people.increment("credits", -10)

Se la proprietà non esiste localmente, viene inizializzata a 0 prima dell’incremento.

Se la proprietà esiste ma non è numerica, lo SDK genera un errore.

Alias compatibili con Mixpanel

Section titled Alias compatibili con Mixpanel

Tutti i metodi supportano un livello di compatibilità, offerto per garantire un’interfaccia familiare:

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

Flusso tipico

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")

Tieni presente che le sessioni di OpenReplay supportano un solo utente a partire dalla versione 1.24.0, il che significa che un nuovo utente sovrascrive il precedente nella sessione. Quando cambi utente, riavvia il tracker anche con l’opzione 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")

Se riscontri problemi, collegati al nostro Slack e chiedi aiuto alla nostra community.