People

Identifique usuários e gerencie propriedades de usuário com o módulo People do analytics do tracker do OpenReplay.

People

Este módulo é usado para identificar usuários e alterar as propriedades do perfil do usuário (definir, definir uma vez, anexar, incrementar, excluir).

Para saber mais sobre como gerenciar dados de usuários na interface do OpenReplay, acesse Data Management.

Disponível em:

tracker.analytics.people

Alias de nível superior: tracker.analytics.identify(...) → equivalente 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 o usuário atual por um id em string (e-mail, nome de usuário, id interno etc.) e enfileira um evento de identidade.

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

Se um usuário diferente já tiver sido identificado, o SDK redefine as propriedades locais de people antes de mudar para o novo id.

user_id deve ser uma string não vazia — qualquer outro valor lança um erro.

options.fromTracker é usado internamente para evitar a chamada dupla do hook de id no nível do tracker; normalmente você não precisa dele. tracker.setUserID() já chama identify para você.

Redefine o id do usuário atual e todas as propriedades locais de people.

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

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

Exclui o usuário identificado no momento no backend (enviando uma mutação de exclusão) e depois limpa o estado local.

tracker.analytics.people.deleteUser()

Se nenhum usuário estiver identificado, a chamada não faz nada (no-op).

Depois de chamar este método, user_id será limpo e as propriedades locais serão apagadas.

Define propriedades do usuário, sobrescrevendo os valores existentes.

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

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

As propriedades padrão coletadas pelo SDK são ignoradas no cache local do SDK.

A forma chave/valor exige que ambos os argumentos sejam truthy — setProperties("plan", "") ou setProperties("seats", 0) lança invalid user properties provided to set. Use a forma de objeto para valores falsy.

Um evento é enfileirado com o payload completo de properties que você passar.

Define propriedades somente se elas ainda não existirem (do ponto de vista local do SDK).

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

Somente as propriedades que ainda não estão presentes no cache local de people serão gravadas localmente.

Um evento de mutação setPropertyOnce ainda é enfileirado com as propriedades que você passar.

Anexa um valor a uma propriedade existente. Se a propriedade for atualmente uma string/número, ela se torna um array.

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

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

O SDK só atualiza o cache local se essa propriedade já existir localmente.

Um evento de mutação de append é sempre enfileirado.

Anexa um valor somente se ele ainda não estiver presente.

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

Se a propriedade ainda não existir localmente, esta chamada não faz nada (retorna antecipadamente). Defina-a primeiro por meio de setProperties / setPropertiesOnce.

Adiciona um número (incluindo valores negativos) a uma propriedade numérica.

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

Se a propriedade não existir localmente, ela é inicializada com 0 antes de ser incrementada.

Se a propriedade existir, mas não for numérica, o SDK lança um erro.

Aliases compatíveis com o Mixpanel

Section titled Aliases compatíveis com o Mixpanel

Todos os métodos oferecem suporte a uma camada de compatibilidade, fornecida por familiaridade:

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

Fluxo típico

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

Tenha em mente que, desde a versão 1.24.0, as sessões do OpenReplay oferecem suporte a apenas um usuário, o que significa que um novo usuário sobrescreve o anterior na sessão. Ao trocar de usuário, reinicie também o tracker com a opção 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 você encontrar algum problema, conecte-se ao nosso Slack e peça ajuda à nossa comunidade.