People

OpenReplay トラッカー Analytics の People モジュールを使用して、ユーザーを識別し、ユーザープロパティを管理します。

People

このモジュールは、ユーザーを識別し、ユーザープロファイルのプロパティを変更(set、set once、append、increment、delete)するために使用します。

OpenReplay の UI でのユーザーデータの管理について詳しくは、データ管理をご覧ください。

利用可能な場所:

tracker.analytics.people

トップレベルのエイリアス:tracker.analytics.identify(...) は 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

文字列の ID(メールアドレス、ユーザー名、内部 ID など)で現在のユーザーを識別し、識別イベントをキューに入れます。

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

別のユーザーがすでに識別されている場合、SDK は新しい ID に切り替える前に、ローカルの people プロパティをリセットします。

user_id は空でない文字列である必要があります。それ以外の値を渡すとエラーがスローされます。

options.fromTracker は、トラッカーレベルの ID フックの二重呼び出しを避けるために内部的に使用されるもので、通常は指定する必要はありません。tracker.setUserID() は、すでに identify を自動的に呼び出します。

現在のユーザー ID とすべてのローカルの people プロパティをリセットします。

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

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

現在識別されているユーザーをバックエンド上で削除し(削除ミューテーションを送信)、その後ローカルの状態をクリアします。

tracker.analytics.people.deleteUser()

ユーザーが識別されていない場合は、何も行いません。

この呼び出しの後、user_id はクリアされ、ローカルのプロパティは消去されます。

ユーザープロパティを設定し、既存の値を上書きします。

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

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

SDK が収集するデフォルトプロパティは、SDK のローカルキャッシュでは無視されます。

キーと値の形式では、両方の引数が truthy(真と評価される値)である必要があります。setProperties("plan", "") や setProperties("seats", 0) は invalid user properties provided to set をスローします。falsy な値にはオブジェクト形式を使用してください。

渡した完全な properties ペイロードとともに、イベントがキューに入れられます。

SDK のローカルの観点で、まだ存在しない場合にのみプロパティを設定します。

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

ローカルの people キャッシュにまだ存在しないプロパティのみが、ローカルに書き込まれます。

setPropertyOnce ミューテーションイベントは、渡したプロパティとともに引き続きキューに入れられます。

既存のプロパティに値を追加します。プロパティが現在文字列または数値の場合は、配列になります。

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

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

そのプロパティがすでにローカルに存在する場合にのみ、SDK はローカルキャッシュを更新します。

追加ミューテーションイベントは常にキューに入れられます。

値がまだ存在しない場合にのみ追加します。

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

プロパティがまだローカルに存在しない場合、この呼び出しは何も行いません(早期に return します)。先に setProperties / setPropertiesOnce で設定してください。

数値プロパティに数値(負の値を含む)を加算します。

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

プロパティがローカルに存在しない場合は、インクリメントする前に 0 で初期化されます。

プロパティが存在していても数値でない場合、SDK はエラーをスローします。

Mixpanel 互換のエイリアス

Section titled Mixpanel 互換のエイリアス

すべてのメソッドで、使い慣れた形で利用できるよう互換レイヤーが提供されています:

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

典型的なフロー

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

OpenReplay のセッションは 1.24.0 時点で単一のユーザーのみをサポートしているため、新しいユーザーがセッション内の以前のユーザーを上書きすることに注意してください。 ユーザーを切り替えるときは、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")

ご質問はありますか?

Section titled ご質問はありますか?

問題が発生した場合は、Slack に参加して、コミュニティのサポートを受けてください。