How do I get started sending revenue data to Mixpanel?

There are two ways you can send revenue data to Mixpanel:

  1. Track a purchase Event with revenue included as a Property. This will allow you to analyze your revenue data in Segmentation.
  2. Send revenue data using people.track_charge and using an incremental People Property.* This will allow you to use the Revenue section of Mixpanel for more advanced analytics on lifetime value and average revenue per paying user. The incremental People Property will allow you to understand which users spend the most or filter for low-spending users.

Both approaches allow you to send revenue data via one of Mixpanel’s native libraries; Mixpanel doesn’t have direct integration with any payment services.

*Limited by plan type

The Revenue report is available on Startup and Enterprise plans - visit the pricing page for more information or to upgrade.

Track purchases with Events

If you track a purchase event along with a numeric revenue property (i.e., the price or subtotal), you can use this data to get more detail about purchases in Segmentation. For example, your track call might look like this:

mixpanel.track("Purchase item", {Price: 27.00, "Item Category": "Books"});

From there, you can segment the Purchase item Event in Segmentation to look at, for example, what prices people are buying at most often or what operating systems people are using to purchase at different prices.

Track purchases with Revenue and on People Profiles

Using a people.track_charge call will send data to the Revenue report and show you lifetime value and average revenue per paying user as well as segment by all other People Properties you’re tracking. For example, using the JavaScript library, your track call would look something like this for a $50 charge, which would then be attributed to the particular user who made the purchase:

mixpanel.people.track_charge(50);

Mixpanel’s Revenue report will let you analyze how different groups of customers are performing over time.

Along with sending people.track_charge calls, it’s also best practice in tandem to store an incremental People Property for each user’s lifetime spend. This will allow you to trigger notifications off of your user’s purchases:

mixpanel.people.increment({"Lifetime Revenue", 50});

Revenue tips and best practices

  • To ensure accuracy of revenue data, many Mixpanel users choose to send this data using one of the server-side libraries rather than sending the data client-side.

  • If you already have revenue data that isn’t in Mixpanel, you can import past revenue data for a more complete picture.