When integrating the remove.bg API with user-generated content, how to control cost?
There are many different ways one can utilize the remove.bg API. One of these use cases is user-generated content.
User-generated content use cases
Example of user-generated content use cases include:
Online stores with product customization tools, that allow users to upload their own images and place them on products
Messengers, social media apps, platforms
Design tools and image editing or compositing software
Marketing / PR campaigns with interactive content
Augmented Reality (AR) / Virtual Reality (VR) applications with user-generated content
All of these user-generated content use cases have one thing in common: Users provide the images that are processed. This enables many highly innovative products and integrations, but comes with a risk: If users decide which and how many images to process, they ultimately decide how many remove.bg credits you require and what budget you have to plan for.
Define the average user
To ensure a positive return-on-investment (ROI) for a user-generated content application you should define the behaviour of an average user. Depending on your application, the use case and how (prominently) you integrate remove.bg, usage might be very different. The core question you have to find an answer for is: How many images does an average user process?
You can find this out via user research in advance or start with an assumption and verify and adapt it as you go.
Once you know how many images an average user processes, you can base your cost and ROI calculations on that number.
For instance: If you expect 3 images per user on average for an online store, you can calculate the cost per user and set that in relation to your conversion rate (how many users purchase a product after processing images?) and profit margin to calculate the ROI.
Control and monitor costs
If your calculations and your users usage patterns result in a positive ROI, there's no reason to be cautious about scaling your product: More users process more images and therefore raise costs, but the increase in revenue (or other metrics you optimize for) should cover them.
To prevent abuse of your product, we recommend the following:
Keep your API key confidential: Do not bundle it with client-side software (such as mobile apps), but keep it in a confidential environment such as your server.
Limit requests per user: You should always proxy requests from (untrusted) users through your server, which also allows you to keep track of how many images each individual user processes. For instance, you could use the User ID / App Installation ID or IP address to identify users and limit each user to N times the average users rate (e.g. if the average user is expected to process 3 images, you could set a limit at 9 images). This prevents a single user from spending an unproportional amount of credits.
Monitor usage: You can keep track of your credit usage in your account settings:
There are both transaction logs and charts that allow you to easily review historical usage and identify patterns. You can also implement your own user-based tracking on your end to identify patterns such as heavy users, that negatively impact your ROI calculations, if necessary.
Use preview images if possible: If you can use preview images instead of full-size images you can save 75% of your credit spending. For instance, you could process an image in the lower resolution preview size first, and only if the user confirms the result, reprocess it in full resolution if necessary.