Leanplum's user guides and developer documentation.

Leanplum Documentation

Leanplum's user guides, SDK setup, API docs, and more resources are here to help you get the most out of A/B testing, Campaigns, Messaging, and Analytics.

Start tracking with Leanplum

Choose which states, events, and user attributes to track

Leanplum automatically logs some session and user information for you. To track more detailed information, such as how much ad revenue you made or how long your users played each level of your game, you can set up Events and States.

One of the most important parts of the onboarding process is deciding what to track in Leanplum.


Data Limits

Be sure to review our API Limits policy to see how many events, states, parameters, and user attributes you can track with Leanplum per app (and per user session)

Events and parameters

An event is anything that can occur in your app. Events include clicking on a link, sharing, purchasing, killing enemies, etc. All events you track with Leanplum are automatically timestamped to capture when they occur.

Identify the core milestones in your app

Focus on core user activities your app is trying to drive, then track those and any related activities with events. For example, you might want to track multiple events along your user onboarding and conversion/purchase flows, like an Add to cart event, or an Onboarding complete event.

Pick unique event names for distinct actions

The following should each be separate events:

  • Login
  • Register
  • Add To Cart
  • Rate Item
  • Checkout

As a general best practice, each step in a funnel should have its own event name.

Use parameters to differentiate similar actions

You can only have 500 events at any given time in Leanplum. Reduce the number of unique events by using parameters.

A parameter is a piece of data associated with an event or state. You can supply parameters as a dictionary along with events and states. Parameters are great for adding contextual information about an event, e.g. price for the purchased items or destination city for a booked flight. This information can then be used to personalize message content, and to run contextual reports for deep analysis on specific groups of users.


Parameters can either be numeric (for example, “number of items ordered”) or string. If marked as numeric, Leanplum will compute averages and sums for that parameter.

Do send parameters with events for further context:

Leanplum.track("Open App", withParameters:["app_name": "Test Bank"])
Leanplum.track("Open App", withParameters:["app_name": "Blink Books"])
// OR better yet
Leanplum.track("Open App", withParameters:["app_name": "Blink TV", "category": "Featured", "page": "Entertainment"])

Don't send generic events with no context:

Leanplum.track("Open App Test Bank")
Leanplum.track("Open App Blink Books")


Event parameters can be used as targeting criteria (e.g. Send a message to users with event with X parameter) with events that have been enabled for Recency & Frequency segmentation. Learn how to enable events and event parameters for Recency & Frequency.


A state is any part of your app a user can be in. For example, some states can include being in a particular level, watching a video, or browsing an in-app store. All states have a time and a duration, which is set automatically -- when one state begins, the previous one ends.

Identify the core areas in your app. Focus on key screens in your app that you'd like to monitor, then track those as states. Leanplum also has the option to automatically track all screens in your app as states.


Do not use the same name to track a state and an event

Having the same name for two different events and states can cause problems in your dashboard. Make sure all of your event and state names are descriptive and unique to one another.

User Attributes

A user attribute is any piece of data associated with a user that you provide to the SDK
Intended to store user data that is persistent throughout a session, and to get copied from one session to the next.

Examples of user attributes include:

  • Gender
  • Age
  • Number of friends
  • User interests


  • Up to 200 attributes per app
  • Attribute names must be strings, and values must be strings or numbers
  • Attribute values will be the same across all events and states in a particular session


Configure your Variables and File Variables to represent what you want to be able to change remotely.

Here are some common use cases for the different types of variables:

  • Turning features on or off (boolean)
  • Changing configurations (string)
  • Changing display text (string)
  • Ordering of elements (array/dictionary)
  • Complex configurations (array/dictionary)

Updated 5 days ago

Start tracking with Leanplum

Choose which states, events, and user attributes to track

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.