What is an SDK License?
An SDK license — SDK meaning Software Development Kit — is what allows a software developer to purchase and/or use an SDK legally.
Software vendors that want their product to be easily integrated into other software products need a good way to ensure that the code they provide developers is protected. Licensing SDKs is a bit more complex than licensing another type of software product, so SDKs require a smart and comprehensive licensing model that provides the right kind of protection and monetization system.
But before we dive into the various types of SDK licenses, let’s back up a bit:
What does SDK Mean?
SDK stands for Software Development Kit. An SDK is basically a pre-written code that contains all the tools a developer needs to use existing software to help them build a new application.
An SDK generally includes a compiler, a debugger, and APIs (application programming interfaces). It could also contain:
- Testing and analysis tools
- Network protocols
- Development environments
What is an SDK Example?
Let’s say you’re a software developer building a social playground app that allows parents and caregivers to rate playgrounds in the neighborhood. Users will be able to add playgrounds to the app and rate them according to safety, cleanliness, accessibility, and fun, and will be able to indicate each playground’s features: what ages the equipment is appropriate for, what equipment it includes, and so on. You want the app to include a map that will show where each playground is located, but developing your own map feature would be incredibly difficult, time-consuming, and expensive. What’s more, you’d have to constantly update it to reflect changes such as new roads being built, new traffic arrangements, and the like.
So what’s a developer to do?
Well, one easy and elegant solution is to use Google’s Maps SDK. Google has already put in all the work creating a robust map program that is frequently updated. Additionally, many people use Google Maps’ navigation feature to find places they’ve never been before or to avoid traffic. By using the Maps SDK to build the map feature in your app, you would save yourself a lot of time and be able to integrate all the great features of Google Maps into your app. Users would be able to move seamlessly between your app and Google Maps if they decided to visit a new playground based on the reviews, and wanted help getting there.
Why should you create SDKs?
You’ve heard the old adage: “Give a man a fish, you’ll feed him for a day; teach a man to fish, you’ll feed him for a lifetime.” What if you taught the man to fish, and then sold him the bait, lines, nets, and all the other equipment he needed to create his own fishing business — and he became a loyal customer for life? The man feeds himself, and his business helps feed you, too.
The newly minted fisherman is your software developer client, and the fishing equipment is your SDK. According to Glenn Solomon, Managing Partner of GGV Capital, developer-driven software is the next trillion-dollar software wave. Even the lowest-tech companies are learning that creating an excellent app is a great way to grow their business — but they don’t want to reinvent the wheel. SDKs allow developers to build great apps with minimal investment of time, effort, and funds.
So if you have a great product that may make those developers’ lives easier, developing and distributing SDKs is how you can get in on this rapidly growing industry.
Now let’s say you have a company that has developed navigation software that’s even better than Google’s. You want developers to be able to add your maps into their apps, so you need to offer them an SDK.
But you don’t want to give away your company’s hard work for free. To make the software you’ve developed profitable, you need to sell the right to use your SDK to developers. In other words, you need a way to issue SDK licenses and charge users for them.
Types of SDK Licensing
How would an SDK license management system work?
Basically, you would use similar technology to that used to license and protect other types of software. The SDK license would be a certain code that would give the developer access to your SDK and allow them to use it in a legal and authorized manner. That’s how all software licenses work.
The key difference between SDK licensing and most other types of software licensing is that SDKs actually have two users: the developer who is building the app, and the end-user who is downloading and using the app. This difference can influence how you might choose to monetize your SDK.
The license code can be delivered to the user in a number of different ways, depending on your needs and those of your customers.
Hardware-based licenses: USB keys and dongles
Some software vendors choose to protect their SDKs using physical hardware such as USB keys and dongles. The hardware contains the code that activates the SDK for the developer, so they need to have the hardware plugged into their device whenever they want to use the SDK. The advantages of this method include security and lack of reliance on an internet connection. The disadvantages are that it’s quite rigid, as only a person in possession of the physical device can use it, and only one device with the key plugged in can be used to access the SDK.
In addition, this method can’t be used to track the usage of end-users. You’d use this model if you wanted to charge the developers for the use of your SDK without tying it to the number of end users who download and use the product developed with it.
Other software vendors find it more convenient to protect their SDKs using online licenses that can be downloaded to the client’s device. The major advantage of this model is that it’s much more flexible, and includes a variety of options that aren’t available when using hardware-based licenses:
Single-use SDK licenses
These licenses can only be used by one user. You may choose to tie the license to the specific device, or to a specific user who has signed in with specific credentials or simply per use — by charging the client for every time the SDK is installed.
Concurrent or floating licenses
This model is especially flexible: the client can purchase a certain number of licenses that can be used at the same time. So for example, if a developer has 5 team members working on the part of the app that involves your SDK but only 2 of them need to be working on it at once, they can purchase 2 concurrent licenses. When a team member needs to use your SDK, they download a license from a remote license server, and they “return” it when they’re done using it. If a third team member requests a license while both of the purchased licenses are in use, they need to wait until one of the licenses has been returned to the server.
Charging per end-use
Instead of charging the developer for their own use of your SDK, you may choose to charge them according to how many of their end-users make use of the code they developed with your SDK. This means that how much the developer pays for using your SDK would depend on the success of their own product. This model may be more attractive for developers with a lower budget or higher risk aversion.
The right model varies widely from developer to developer and from SDK to SDK. You might even want to offer multiple options to best suit the needs of different clients.
SDK License Example
Returning to our navigation software example, the software developer has a few options for licensing their SDK.
Google’s Maps SDK, for example, charges per end-use. Maps SDK for Android is free for all uses, but if a developer uses Dynamic Street View, they are charged according to a sliding scale: $14 per 1000 instantiations of a panorama object until 100,000 instantiations, then $11.20 per 1000 for the next 400,000. For higher-volume use, developers are asked to contact Google’s Sales department.
How will you monetize your SDK? That depends on your client profile, your market, your competition, and a variety of other factors. If Google’s Maps SDK is free, but Dynamic Street View is charged per instantiation, you’ll need to adopt an SDK licensing model that is competitive. For example:
- Use the same model, but charge less
- Use a different model that better addresses the needs of a certain niche
- Offer value that Google doesn’t, and make that clear to your clients
Thales Sentinel Can Help You Develop the Perfect SDK Licensing Model
Determining how to license and sell your SDK can be a serious challenge, and implementing the licensing model can be even more of a challenge. Sentinel LDK (License Development Kit) delivers a comprehensive, out-of-the-box software monetization solution that allows you to protect your SDK, maximize your revenue, simplify operational processes, and enhance the user experience. Thales Sentinel can help you figure out which licensing model will best suit your needs and those of your clients, and then implement that model seamlessly so you can start increasing revenue and reaping the benefits of your company’s hard work.
Generate New Revenue Streams While Embracing Flexible Licensing Like Herta - Case Study
HERTA Security Imagine a software technology that could automatically identify individuals that pose a threat to safety and security – by scanning crowds of people on the streets, or in places like airports, stadiums, or train stations. Imagine a marketing world where you...