How often to use identify()

Working on sending events to a data warehouse (Bigquery)

First, I am planning to send the data in a normalized form. Meaning that my track() events will not contain the user information (other than the user id) but instead I will send that data in separate identify() calls. 

That means that in some cases to get meaningful information I will have to create BQ queries that combine data from the  two types of events.


Let's say I have identified the user when they signed in

analytics.identify("97980cfea0067", {
  name: "Peter Gibbons",
  email: "peter@initech.com",
  plan: "premium",
  logins: 5

And now the user changes their plan, so I send a track call:

analytics.track("Downgraded", {
  plan: "basic"

At this point, the data I have about the user is no longer updated.

Should I always send `identify` call after `track` calls ? That would be a waste and I might as well already send the data in a denormalized form and add all the data about the user in the track call.

Or maybe I should just send `identify` after operations that changed anything in the identify traits ? That's not great either, for each `track` call I will have to think if something might have changed in the user traits and couples these calls together.

Reply Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular