Let’s start this SDK Licensing and Pricing Guide with some background. Software Development Kits are becoming more and more popular, and it’s easy to see why. As software products themselves become more popular and advanced, developers see a growing interest in not having to reinvent the wheel. Selling libraries, APIs, and documentation to help developers speed up the process is, therefore, a great solution. They are not only are they helpful, but they can also be very profitable to sell.
For Software Development Kits (SDKs), there are some unique considerations you need to keep in mind when it comes to software licensing. Getting it wrong could mean that far too many will have access to the SDK. Although it is a bit more complex to sell and protect SDKs from unauthorized users, we will also cover how you can turn that challenge into an opportunity today.
We have made the following YouTube video on this topic that you might want to check out:
Challenges with SDK Licensing
The reason why SDKs have unique licensing requirements is because of end users. SDK licensing is where you distribute a component such as a library that will later be a part of another commercial solution. To keep it simple, the image below illustrates the purpose of an SDK. Let’s say that “Company SDK” in the image is the company that develops and sells the SDK. That is then the company that implements a software licensing system to restrict who has access to the SDK. The customers of Company SDK are called Customer A and Customer B, and they each get one license key so they can access the SDK.
It’s pretty straightforward so far, right? The two customers integrate the SDK into their own software products that they sell to their own customers. These customers are called end users because they are the final customers in the chain.
So what is then the difference between licensing an SDK, compared to a desktop application, for example? Well, because the customer of Company SDK is not the end user of the SDK itself, all of the end users of Customer A will share Customer A’s license key and all the information stored within. The same is true for Customer B. This is of course not ideal since the the intention is to only allow the customer, and not all of the end users, to access the SDK. Desktop applications will usually not run into the same problem, because their end users are most likely their own customers.
Opportunity: Pricing Model Efficiency
This scenario poses both challenges and opportunities. In order to protect your SDK, the software licensing system has to ensure that end users cannot access the SDK. The positive aspect is that you have quite a lot of freedom to implement a very effective pricing model that charges for the actual value that customers receive.
An effective way to price an SDK could be to charge customers per end user, or per installation of the SDK. That way, you ensure that the more value your customers get, the more they have to pay. Customer A in the example has a lot more end users and will pay a high price as a result. They are probably fine with the high price because all of the end users are giving Company A a pretty nice revenue stream. Company B will pay a lower price because they have fewer end users.
As a final remark, I would like to highlight the fact that not all SDKs are alike. The SDK is required to have an internet connection to keep track of the end users or installations. That means that these pricing models are not possible to implement in an offline setting.
We at Cryptolens offer you another solution for offline protection which involves storing the application’s identifier inside the license file. For more information on that approach, please check out our full technical implementation guide. You can of course also charge per installation or end user even with our software license management tool.
Thank you for reading, Stay Smart!