CodeGym articles often talk about the financial side of programming: we write about how a young developer can find his or her first joband talk about promising niches for Java coders. These articles have generally considered just one source of income for a Java programmer — employment (or "working for the man"), preferably for a good salary. But there is another way: you can create your own software and make money from it. Of course, doing this is more difficult than just learning Java through the CodeGym course, gaining experience, preparing a cool resume, setting up a LinkedIn page, and finding a regular job at some company. But if you're successful, the financial return from selling your own software can be far more substantial. So, today we're going to talk about how you can make money on your own software products and we'll share relevant insights from experienced programmers.
Plan ahead to monetize your softwareWe'll start with a basic tip from Josef Mandelbaum, an experienced developer and head of IT company Perion. He recommends thinking about monetizing your products from the very beginning. "Although many people who develop software and mobile apps often intend to make money on their products, the monetization strategy is secondary to them, while the product itself is at the forefront, which, generally speaking, is correct. However, the monetization strategy plays a key role in a software product's financial success, so you should think about it from the very beginning," the expert notes. There are various ways to monetize your own software, and we'll talk about them in this article. They can be combined, modified, or tried in turns, selecting the method that best suits the software product and the developer's objectives. Some methods are best suited for mobile apps, while others are more effective for desktop applications.
Inline advertisingInline advertising is one of the most popular monetization methods, both in mobile apps and in desktop software. Advertisements are placed somewhere on the program's main screen or are shown to the user when switching from one screen to another (advertising inserts). Such ads typically bring in some kind of revenue for every thousand impressions or for each click on a banner. The revenue amount can vary greatly depending on which advertising network is used, what type of advertising is shown, and what the target audience is. Of course, a very large number of users would have to view an ad to bring in any real money. As many experts note, there are a multitude of ways to place advertising in a software product. For example, advertising can be shown while the program loads or before it is launched., An advertising banner can be placed on the side of the interface or in an upper or lower panel, depending on the type of program and its design. The main thing is to make the advertisement as relevant as possible and to annoy users as little as possible.
Freemium modelThe freemium or shareware distribution method is the second most popular way to monetize software today. Distributing your software under the freemium model means that everyone can download and install the program or app for free, but the free version includes only a certain set of basic functions, while the remaining features are available only in the paid version. This approach is currently particularly popular in the gaming industry (and not only there), where it has proven to be highly effective in the mobile gaming segment and in casual games for desktop platforms. Games generally make a features available to users by default, but paying users can get some advantages, such as special weapons, a new level, power boosts, etc. Freemium is good because it lets developers distribute their software to a wide audience — who doesn't like free stuff? That said, it is often difficult to convert users of the free version to paid subscribers. Experts say that another shortcoming of the Freemium model is that developers really need to create the program for this model from the start, because they must consider which features will be free and which features will be part of a paid subscription. This is not so easy, since the basic version must include the main functionality that makes the program or app useful, but it must simultaneously include functions unavailable to non-paying users.
Paid softwareSelling your program or app for a small fixed amount with all the built-in functionality without any restrictions is another obvious, simple and fairly popular way to monetize software. But many experienced programmers say that this method is gradually losing ground relative to the other methods. The fact is that with the appearance of a huge number of free apps and programs, fewer and fewer users are willing to shell out money for paid software. Developers lament that consumers, who happily spend five bucks on coffee, are often unwilling to spend just one dollar on an app. This is not surprising: if nearly every app or program has a free option, then why pay? Accordingly, distributing software according to an exclusively paid model is recommended either for companies with solid market position and extensive marketing resources, or for people developing niche products that have no alternatives or have only alternatives that are also paid software.
Payment for installing other programs (pay per install)Getting paid for installing third-party programs is another way for developer to earn money while distributing their own software for free. This approach is especially common among programs created for desktop systems. In this method, the original program's installer integrates the installer for the third-party software, which is installed by default along with the product the user actually needs. This is what's going on when you're installing a free program downloaded from the Internet and something else tries to install itself on your computer, for example, a browser or, another popular option, a browser extension. You can usually avoid installing the third-party program if you notice it on one of the installation screens and deselect the checkbox providing consent to install it. Using this monetization method may be a good idea, but keep in mind that usually only real software installations are paid. In other words, you only get paid when the user does not deselect the checkbox (most often, this happens when they simply don't notice it) and allows the program to be installed. The most common option today is to include installers for browser extensions. For example, this is the case with the infamous Yandex.Bar, which is notorious among Russian speakers users due to the fact that it is installed covertly and getting rid of it is more difficult than getting rid of a computer virus. Extension creators are willing to pay for each installation of their product, because it not only increases their user base, but also makes it possible to collect information about the user's browsing habits, which can then be used or sold.
Affiliate marketingYou can earn money through affiliate marketing, i.e. by promoting a partner's goods or services for a percentage of purchases made by users who click on an advertising link. Websites make money with this method more often than not, but it is also suitable for apps and desktop software. Special-purpose apps can advertise products or services of interest to their users. For example, free educational software can promote paid courses on the same topic, a fitness app can advertise an online sporting goods store, etc. Experienced developers know that affiliate marketing can be a very attractive way to monetize software, but it sometimes creates problems and limitations. In most cases, the software must be tailored for this monetization method in advance, because integrating affiliate marketing into existing software can be difficult or completely impossible without significant changes in the functionality and/or interface.
DonationsFinally, you can simply provide thankful users with the ability to make a small donation to show their gratitude for the existence of your wonderful program that also happens to be free. Sometimes this method is highly effective and generates good income, and sometimes it does not. Of course, a lot depends on the type of program or app, the number of users, and the quality of the software. But people creating all sorts of niche products with a small but very loyal user base can usually make money this way.
ConclusionsAs you can see, you can monetize your own software in many different ways. Of course, doing this is far from easy, and most programs and apps produced by inexperienced developers don't bring in any meaningful amount of money. That said, a super high-quality and in-demand product with the right monetization system can take off, providing its creator with an income that will eliminate the need to think about ever working for someone else again. In order to successfully monetize your software, as in everything else, you need to practice: don't give up if you fail. Keep fighting to reach your goal. That's what I wish for anyone who reads this article!