User Operations Billing

If your contract refers you here for billing definitions, see below for information on User Operations.


Make sure to review your contract for the exact details of your agreement.

A User Operation is counted each time a user profile is accessed by the Leanplum service. User profiles can be accessed through SDK calls, server-side API calls, third-party integrations, or messaging — all of these count as a User Operation.

Each User Operation can contain up to 10 Billable Actions. You can reduce Billable Actions while using our API, by batching them in a multi API call.


Messages incur User Operations based on the actions generated by that type of message, such as sending, tracking opens, delivers, clicks, bounces, and suppressions.


  • A single event tracked for a single user would count as 1 User Operation
  • A single update of multiple user attributes by 1 API call, for the same user profile, would count as 1 User Operation
  • A call from the SDK that batched 10 events for a single user profile would count as 1 User Operation
  • A call from the SDK that batched 11 events for a single user profile would count as 2 User Operations
  • A server-side call that updated 8 user profiles would count as 8 User Operations

Sources of User Operations

User Operations are the single method of billing a variety of activities updating user profiles:

  • Engagement events (sending, opening, clicking on any message through any channel, including Email, Push, In-App, etc.)
  • Data Collection - tracking user attributes and user behavior in Mobile, Web and other apps
  • User attributes upload through a CSV file
  • Server-side API calls
  • Collecting user data through integration with other systems such as Customer Data Platforms (CDP)


Data Collection & Batching

For optimal User Operations billing, please consider your batching options:

  • The User Operations batching is guaranteed if you utilize Leanplum SDKs for data collection from your platforms.
  • For server-side API calls, it depends on your implementation - the API calls need to batch multiple user updates into a single call. See how here.
  • In case you use server-side integration with a CDP for capturing your user data, batching might not be available, depending on the CDP capabilities.

Billable Actions

A Billable Action is an individual API action that affects a user profile. See the list of Billable Actions below:

  • advance
  • block
  • deleteNewsfeedMessage
  • getNewsfeedMessages
  • getVars
  • markNewsfeedMessageAsRead
  • pauseState
  • registerDevice
  • resumeState
  • sendMessage
  • setDeviceAttributes
  • setTrafficSourceInfo
  • setUserAttributes
  • startCampaign
  • start
  • stop
  • track
  • unblock

Actions exempt from billing:

  • deleteUser
  • pauseSession
  • resumeSession
  • heartbeat
  • exportData
  • exportReport
  • exportUser
  • exportUsers

User Operations FAQ

Q: I am sending the same attribute values as the one already in the system (either by SDK, API or CSV upload). Does that still count as a user operation, considering that the profile does not change?
A: Yes, those updates with the same values will still be counted as user operations.

Q: I am sending empty or null values for attributes to update user profiles (by SDK, API or CSV Upload). Do those calls still generate user operations?
A: Yes, those calls still count for user operations.

Q: I need to use a server-side CDP integration for data collection, how much will that affect my User Operations count?
A: It depends on the percentage of User Operations based on app lifecycle tracking (events, states, attributes captured by your Mobile, Web or other app). User operations based on application tracking are on average 7 times less when batched. User Operations for sending messages, uploading CSV files, etc. will not be affected by the choice of tracking approach.
So for example, if you have 10% of your total User Operations driven by the app tracking, your overall User Operations would be about 60% more with a server-side CDP tracking compared with Leanplum SDK tracking.

Q: What if a message is sent to 3 different devices, which are already merged to the same User Profile at the time of sending the message?
A: While 3 messages are sent, only 1 User Operation is recorded for the message Sent event, since it is updating the same profile.

Tracking your Usage

Billing usage statistics can be tracked regularly by using the Billing Dashboard. Here is where to find it in the Leanplum menu:

By default you are shown the total billing statistics for all apps under your account. If you need a drill-down into each app, you can use the app selector on the top right corner of the dashboard.

On the billing dashboard you can:

1. Track your usage statistics for the current month.

You can find your current Monthly Active Users, Emails and User Operations on the top of the dashboard.


Monthly Active Users - Estimate vs. Actual

On the top of the dashboard you can find the estimated Monthly Active Users so far for the current month. This is an estimation, as it is based on daily unique users rather than monthly unique users. The final and billable count of unique users for the calendar month is calculated within 2-3 days after the month ends, and visualized in the historical statistics table below.

Update latency for the current month

The statistics have a 48-hour delay, but are updated daily. So on January 28th you can see all statistics until January 26th, then on January 29th - statistics updated until January 27th.

2. Get an overview of historical data

Find out the officially recognized numbers for each month of your billing in the historical table.

3. Download the data in a CSV file

You can download the full statistics by clicking the Download CSV button, or just a month of data by using the download button provided on each row.

Did this page help you?