Update: brainCloud 4.0 brings new billing plans, and additional usage categories for RTT and Hosting features. For more information, check out the announcement.
A foundational goal of brainCloud is to ensure that it is a good value to our customers, and in balance with our costs to provide the service.
We recognize that the needs and behaviour of every app is different - and thus we rejected one-size-fits-all per DAU and per MAU -based pricing.
brainCloud instead focuses on what we call API Counts - which in their simplest form correspond to requests sent to our brainCloud servers.
For example: If your app calls Authenticate() to login, then ReadEntity() to get some data about the user, and later posts a score to the leaderboards via PostLeaderboardScore() -- that would be an 3 API Counts.
brainCloud's monetization model is simply that we sell API Counts. You sign up for a base subscription which gives you a certain feature-set and base allotment of API Calls for free, and we charge you for usage over top of that.
The benefits of this are readily apparent. We are able to keep base pricing low, but still cover our costs for apps whose utilization is higher.
What about cloud code scripts?
Cloud code scripts are special. Processing API calls from a server-side script costs us less than processing them as individual requests from the client (reduced parsing and network traffic) - and thus we reflect that in how we count them.
Calling a cloud code script is recorded as 1 API Count. But then you get 3 API calls within that script for free. Afterward, every additional API call is charged at just 1/2 a count. You can also call a cloud code script from a cloud code script; however, that will not factor towards the previous scripts free count of API calls.
So - for example, let's say you have some processing in your app that requires executing 7 API calls. Done directly from your app that equates to an API Count of 7. But if you implement that same functionality in a script, it will cost you 1 for the script itself, then the first 3 API calls are free, and the last 4 API calls are 1/2 each - for a total of 3! And if that script were to call itself, that would also add 3 additional API calls.
Any other special API Counting rules?
brainCloud applies additional counts for interactions into and out-of the brainCloud system. Each of the following add additional API counts:
- Push notifications
- Email sends
- Outgoing web service calls
- Incoming server-to-server calls
- Data stream events
- Bulk operations (at a ration of 10 operations = 1 API count)
- Scheduled cloud code jobs
Note - there are also special API Counts associated with our new RTT services. For more information, see our RTT Pricing article.
What sort of API usage costs should I expect?
It really depends upon the type of app. There are apps on the service that are using brainCloud for authentication, cloud data, push notifications and in-app purchases, and are averaging as low as 7 API calls per DAU. That means they're able to handle ~28K users per day at the $30 plan level.
The average API/DAU ratio on the system averages ~40 API calls per DAU.
What about data transfers and storage?
brainCloud doesn't charge for the data transferred to/and from regular API calls - but we do charge for transferring (uploading and downloading) custom files to/from brainCloud. And we charge a monthly file storage fee as well.
The free file storage and transfer limits vary from plan to plan. For more information, check out the brainCloud Pricing Page.
What about server utilization?
brainCloud's core feature set is serverless - so you aren't charged for server time for accessing core api features from your apps.
Release 4 does bring special plans with the ability for brainCloud to host relay servers and custom room servers on your behalf. The cost of hosting these servers is marked up from the cost of the cloud provider, plus an additional fee per hour.
For more information, see the brainCloud 4 Billing Plans announcement.
Your feedback is important to us. Please rate this response below. Thanks!